2016年12月11日

CTF Writeup SECCON2016 オンライン予選

 久しぶりにSECCONオンライン予選にじっくりと参戦してみました。exploit 100の問題が手元の仮想環境でEIPを奪うところまではできたのですが、その先で詰まってしまい久しぶりに徹夜をするも解けず・・・。おかげで他の問題にもほとんどとりかかれず、問題だけダウンロードしておくことも忘れてしまいました・・・。
準備不足もありコテンパンにやられてしまいましたが、楽しかったです。 取り急ぎ、私が解いた問題だけWriteupを記載します。

Binary 100 Anti-Debugging

 問題ファイルは、PEフォーマットのプログラムです。まずは仮想環境で実行してみると、パスワードを入力するように言われます。
IDAで問題ファイルを見てみると、素直にパスワード「I have a pen.」が見えるのですが、その後に解析環境で動作していないかチェックするルーチンが延々と続きます。(解析環境であることを検知すると、もちろんそこでプログラムが終了します)
デバッガでコツコツやるのは面倒なので、IDAでざっとコードを読んでみたところ、解析環境であることを検知したら素直に終了するだけの処理のようです。(解析環境検知ルーチンの途中で暗号化されたフラグをデコードするような処理があると(時間的に)面倒なことになるとドキドキしていたので、ホッとしました)
フラグを表示するためには、デバッガでプログラムを起動してパスワードを入力した後、アドレス 0x00401663 に強制ジャンプすればフラグが表示されます。

 フラグ: SECCON{check_Ascii85}

Forensic 100 Memory Analysis

  問題ファイルのメモリイメージをvolatilityで解析する問題です。次の手順でプラグインを使って解析を進めます。


(1)imageinfo
 プロファイルとして「WinXPSP2x86」を利用すればよいことが分かります。

(2)connections
 PID 1080のIEが,153.127.200.178:80 にアクセスしていることが分かります。しかし、この段階ではアクセスしたURLまでは特定できません。

(3)pstree
 IE(PID 1080)の親プロセスは,PID 1776のsvchost.exeであることが分かります。これは怪しいですね。

.... 0x81f65da0:svchost.exe      1776    672      2     23 2016-12-06 05:27:10 UTC+0000
..... 0x8225bda0:IEXPLORE.EXE    380   1776     22    385 2016-12-06 05:27:19 UTC+0000
...... 0x8229f7e8:IEXPLORE.EXE   1080    380     19    397 2016-12-06 05:27:21 UTC+0000
            

(4)filescan
 hostsファイルを探せというヒントが出されているため探します。hostsファイルはメモリイメージの 0x000000000217b748 にあることが分かります。

(5)dumpfiles
 hostsファイルを抽出し内容を確認すると「crattack.tistory.com」が、不審IPアドレス 153.127.200.178 に紐づけられていることが分かります。 なお、上記ホスト名をフラグとしてサブミットしても不正解だったため、153.127.200.178にアクセスし、バーチャルホスト名として「crattack.tistory.com」を指定すればフラグが表示されると推測し試してみましたがフラグは表示されませんでした。

(6)memdump
 PID 1080のIEのプロセスメモリを抽出し、プロセスメモリ内の文字列をstringsコマンドで抽出すると、次のURLにアクセスしていることが分かります。
 http://crattack.tistory.com/entry/Data-Science-import-pandas-as-pd

(7)netcatで不審サイトにアクセスするとフラグが表示されました。
C:\WORK>nc 153.127.200.178 80
    GET /entry/Data-Science-import-pandas-as-pd HTTP/1.0
    Host: crattack.tistory.com

    HTTP/1.1 200 OK
    Server: nginx/1.10.0 (Ubuntu)
    Date: Sat, 10 Dec 2016 09:58:46 GMT
    Content-Type: application/octet-stream
    Content-Length: 36
    Last-Modified: Tue, 06 Dec 2016 07:11:29 GMT
    Connection: close
    ETag: "584664a1-24"
    Accept-Ranges: bytes

    SECCON{_h3110_w3_h4ve_fun_w4rg4m3_}
            

 フラグ:SECCON{_h3110_w3_h4ve_fun_w4rg4m3_}

以上です。
posted by やまと at 16:17| Comment(327) | CTF