Windows」カテゴリーアーカイブ

Windows8.1でVMWarePlayer6.0でOWASPでBurbSuiteで……

思った以上にハマったのでメモしておきます。備忘録レベルです。

はじまりは、Webセキュリティを攻撃者の立場から勉強しようと思い、脆弱性の残されたWebアプリケーション(Webサーバ)をローカルでたてて実験しようと考えたことからでした。調べてみると、OWASP Broken Web Applicationsという、脆弱性の残されたWebサーバとWebアプリがVM仮想イメージで配布されていることを知りました。Windows8.1のホストOSから、VMWarePlayer6.0を使ってゲストOSとして呼び出す手順が妥当と判断しました。また、脆弱性診断のためローカルプロキシツールであるBurbSuite(FreeEdition)を使用することとしました。

各種ダウンロード/インストール

VMwareWorkstation10はインストーラに内包されるネットワーク設定ツールを抽出するために必要のため、インストールする必要はありません。今回はなくてもいいですが、VMwareのネットワークをツールを使ってわかりやすく学びたければ、少し重いですがダウンロードしておきましょう。

VMwarePlayer6.0
普通にインストールしてください。
VMwareWorkstation10 評価版
別項で説明。
Java Runtime Environment
私のPCにはJavaがインストールされていませんでした……。インストール後はPATHを通しておいてください。
BurbSuite FreeEdition
jarをどこかに配置してください。
OWASP Broken Web Applications
どこかに配置します。(C:\vm)

VMwareWorkstation10の使い方(なくてもいい)

PlayerシリーズにはVMwareのネットワーク設定ツールが含まれていないため、必要の場合は、Workstaionのインストーラに含まれるツールを抽出してやります。コマンドラインで同じフォルダに移動して、下記コマンドを実行します。

./VMware-workstation-full-10.0.1-1379776.exe -e work

後は、workフォルダにあるcore.cabを解凍して、下記ファイルを「C:\Program Files (x86)\VMware\VMware Player」に移動します。もうWorkstationは用済みのため削除していただいて構いません。

  1. vmnetcfg.exe
  2. _vmnetcfglib.dll→vmnetcfglib.dllにリネーム

VMwareのネットワークを設定

「コントロールパネル>ネットワークの状態とタスクの表示>アダプターの設定の変更」で下記画面を開くと、VMnet1とVMnet8ができています。

ネットワークアダプターの設定

ネットワークアダプターの設定

VMwareではVMを起動するときにネットワークアダプタの設定をBridge/HostOnly/NATから選択できます。それぞれの違いは下記のとおりです。今回はNATを選びますがHostOnlyでも良いです。セキュリティ脆弱のあるアプリをあげるので、念のためBridgeはやらないほうが無難です。

ネットワークの接続形態を理解するために、ここの図が非常にわかりやすかったです。

設定 使用する仮想アダプタ 用途
Bridge VMnet0 ゲストOSをホストOSのつながるルータへ接続したい場合。(今回は非推奨。)
HostOnly VMnet1 ゲストOSとホストOSをHUB(L2SW)で接続したい場合。
NAT VMnet8 ゲストOSとホストOSとNATルータ(L3SW)で接続したい場合。
仮想マシン設定の編集

仮想マシン設定の編集

NAT接続にした前提で話を進めます。ゲストOSからインターネットに接続するためには設定が必要となります。(まあ、やらなくてもいいですが。)設定のイメージについてはここの図が非常にわかりやすかったです。ちなみに、VMnet8をvmnetcfg.exeで見てみると下記の通り。DHCPサーバ機能も兼ねているので、DHCPの設定を見てみると.128からIPアドレスが配布されるように初期設定されていました。

仮想ネットワークエディタ

仮想ネットワークエディタ

DHCP設定

DHCP設定

Windows8.1側では、インターネット接続をしているアダプタの設定画面を開いて、インターネット接続をVMnet8と共有します。(こういう設定をICSと呼ぶらしいです。)

インターネット接続の共有

インターネット接続の共有

あとは、VMnet8アダプタのIPアドレス設定を確認します。(ゲストOSのeth0にVMnet8(DHCP)から配布されるIPアドレス/ネットマスクに従ったIPアドレスが設定されていれば問題ありません。)このあたりのイメージは先程も紹介したこちらの記事にある画像がわかりやすいですのでぜひ参照してください。ちなみに、DHCPでIPアドレスは.128から配布される設定となっているので.1固定にしておけばゲストOSとIPアドレスが被りません。

VMnet8のIPアドレスを確認

VMnet8のIPアドレスを確認

後は、VMwarePlayerでOWASP仮想イメージを実行するだけです。root/owaspbwaでログインできると思います。Windows8.1側とLinux側で相互にpingが通り、Linuxからgoogle.com(インターネット)にpingが通り、ホストOSのブラウザから「http://192.168.137.129/」(IPアドレスはifconfigで確認)につながれば設定完了です。長い道のりでした。

BurbSuiteの設定

BurbSuiteの配置されたフォルダにコマンドラインで移動して、下記コマンドを実行します。パス等の関係なのか、バッチファイルではうまく行きませんでした。動かない場合は、きちんとコマンドラインでフォルダに移動してから実行してみてください。

java -jar burpsuite_free_v1.5.jar

Proxy>OptionsよりIP:Portを確認します。ループバックアドレスである「127.0.0.1:8080」で待ち受けていることを確認できました。(わざわざ確認するまでもないですが。)つまり、試験するブラウザにプロキシを設定します。

ループバックアドレスの確認

ループバックアドレスの確認

ブラウザへのプロキシ設定

試験対象のページ以外へのアクセスはループさせたくありません。そういう、プロキシ適用有無のルールを記述する方法があります。下記ファイルをどこかに配置してください。

function FindProxyForURL(url, host)
{
	if(isInNet(host, "192.168.137.0", "255.255.255.0")){
		return "PROXY 127.0.0.1:8080";
	}
	else return "DIRECT";
}

Firefoxの場合は下記のように設定します。バックスラッシュとスラッシュ問題もあるようなのでいろいろ試してみてください。

プロキシの設定

プロキシの設定

最終確認

試験ページ(http://192.168.137.129/)にアクセスした時はBurbSuiteがリクエストを捉えてくれて、それ以外のページにアクセスした時は素通りしてくれるようになることを確認して全ての工程が完了です。自分、お疲れ様でした。

おまけ

できない! つながらない! というときはWindows側アダプタの停止→開始や、Linux側アダプタのdown→upを試してください。

ifconfig eth0 down
ifconfig eth0 up

参考URL

非常に多くのサイトを参考にしました。感謝。

WindowsのLINEアプリで既読となるタイミング

まわりでかなりの割合が使っていたため、時代の波に取り残されまいと始めたLINEですが、目の前にPCという最高の入力デバイスがあるにも関わらずスマホでペチペチ入力するのは面倒臭い。そのため、デスクに座っているときはWindowsデスクトップ版のアプリを使っています。

こちらが相手の発言に「既読」を付けるのは、会話ウィンドウをアクティブにしたときだということが友人との検証で明らかとなったのでメモしておきます。逆に言うと、会話通知がありタスクバーでピコピコしているときは既読がついていません。返事を保留しても安心して作業を進められますね。(既読をつけると「返信しなくてはならない」という強迫観念に駆られるチキンにも安心仕様。)

それと、PCでアプリを起動しているときはスマホに通知がいかないようにする設定が非常に便利のためオススメです。「PC版利用時にはスマートフォン側に通知が行かないようにする」にチェックを付けます。

LINE設定画面

LINE設定画面

他にも、「表示名を変更」する機能も便利です。HNやニックネームでLINEに登録している人が非常に多く「誰やねん」となりかねないので登録/整理しておくべきでしょう。Gmailのアドレス帳と2重管理になっているのがストレッサーですがしょうがないです。

ちなみに、PC版ではCtrl+Alt+Rで自分の発言が「既読」になったか表示することができます。

WindowsUpdateV6で0x80072EFDが出て先に進まない事象の解決

社内NWや学内NWなどではプロキシ経由でインターネットに接続していることがよく有ります。InternetExplorerに対してのプロキシ設定だけでは、WindowsUpdate専用のプログラムに反映されず、エラーコード「0x80072EFD」が出てしまうため、手動で反映させてやる必要があります。少し手間取ったのでメモしておきます。ちなみに、その時のOSはWindowsXP ServicePack2でした。。。

コマンドプロンプトで下記コマンドを打ち込みます。これによって、InternetExplorerの設定がWindowsUpdateの方にも反映されます。プロセスを再起動する必要が有ります。

proxycfg -u
net stop wuauserv
net start wuauserv
exit

大規模NWともなってくると、自動構成スクリプトが使われていることが普通にあるかと思います。その場合、何故かうまくいかないような気がします。そのため、自動構成スクリプトの中身を見て、WindowsUpdateに適用される社外向けのプロキシサーバのIPアドレスとポート番号を指定します。(下記xxx.xxx.xxx.xxx:yyyyの部分に指定します。)

proxycfg -p xxx.xxx.xxx.xxx:yyyy
net stop wuauserv
net start wuauserv
exit

私物PCはWindows8.1なのであくまで下記画面はイメージですが参考までに。

LANの設定画面

LANの設定画面

話は少しズレてしまいますが、同事象を調べている時についでで見つけた事象も紹介しておきます。下記URLを信頼済みリストに追加しておかなければ、同じエラーが出ることがあるそうです。

  • http://update.microsoft.com
  • https://update.microsoft.com
  • http://*.windowsupdate.microsoft.com
  • https://*.windowsupdate.microsoft.com
  • http://download.windowsupdate.com

参考

ファイル名を指定して実行で「sendto」が使えない?

Windows7以前であれば、Windows+Rのファイル名を指定して実行から「sendto」で、右クリック時に表示される「送る」に表示するプログラムのショートカットを配置したフォルダにアクセスできたような気がするのですが、Windows8だとエラーが出てできませんでした。

場所が利用できません
C:\Users\[username]\Sendto にアクセスできません。
アクセスが拒否されました。

調べてみると、「shell:sendto」でいけるようですね。同じ要領で、「shell:startup」もできました。後者は、スタートアッププログラムのショートカットを登録するフォルダですね。

Windows7だとshell:のプレフィックスなしでできていたような気がするのですが、気のせいでしょうか。

Windowsだと全角英字ですら大文字小文字の区別がない

「a.txt」と「A.txt」が区別されないのは知っていましたが、まさか、「a.txt」と「A.txt」まで区別されないとは思ってもいませんでした。別に不満なわけではないですが、LinuxでzipにしたファイルをWindowsで解凍する時に不具合が起きるという事象に出くわしたので注意が必要そうです。

チェックボックスをキーボードで操作

ウェブブラウザでのユーザ情報の登録画面などでは、しばしばマウスで項目を選択→入力→マウスで選択→……が面倒くさく、キーボードのTabキーのみでやってしまいたい時がある。そんなとき、チェックボックスの操作だけがわからず、ずっと今までチェックボックスだけマウスで操作していた。今回、何を思ったか調べてみたので、知らない人もいるかなとメモ。

チェックボックス上にTabキーでフォーカスを持って行き、スペースキーでON/OFFの切り替え。

むしろ、なんで今まで調べなかったし、知らなかったんだろう。常識の範囲内だろうに。