SECCON BeginnersCTF 2018 Writeup 02
前回のエントリで書ききれなかったMISCのwriteup
MISC
[Warmup] plain mail
pcapが渡されるのでそこからフラグを探す。
タイトルどおり、SMTPのパケットが多い。
合計で3通メールが飛んでいる。
- 1通目
パス付きファイル送るよー2通目にパスかいてるよ!とのこと
220 67289bb1f069 ESMTP Exim 4.84_2 Fri, 27 Apr 2018 11:00:38 +0000 ehlo [172.19.0.3] 250-67289bb1f069 Hello client.4b [172.19.0.3] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail FROM:<me@4b.local> size=103 250 OK rcpt TO:<you@4b.local> 250 Accepted data 354 Enter message, ending with "." on a line by itself I will send secret information. First, I will send encrypted file. Second, I wll send you the password. . 250 OK id=1fC17G-00005T-T0 421 67289bb1f069 lost input connection
- 2通目
220 67289bb1f069 ESMTP Exim 4.84_2 Fri, 27 Apr 2018 11:00:40 +0000 ehlo [172.19.0.3] 250-67289bb1f069 Hello client.4b [172.19.0.3] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail FROM:<me@4b.local> size=658 250 OK rcpt TO:<you@4b.local> 250 Accepted data 354 Enter message, ending with "." on a line by itself Content-Type: multipart/mixed; boundary="===============0309142026791669022==" MIME-Version: 1.0 Content-Disposition: attachment; filename="encrypted.zip" --===============0309142026791669022== Content-Type: application/octet-stream; Name="encrypted.zip" MIME-Version: 1.0 Content-Transfer-Encoding: base64 UEsDBAoACQAAAOJVm0zEdBgeLQAAACEAAAAIABwAZmxhZy50eHRVVAkAA6f/4lqn/+JadXgLAAEE AAAAAAQAAAAASsSD0p8jUFIaCtIY0yp4JcP9Nha32VYd2BSwNTG83tIdZyU4x2VJTGyLcFquUEsH CMR0GB4tAAAAIQAAAFBLAQIeAwoACQAAAOJVm0zEdBgeLQAAACEAAAAIABgAAAAAAAEAAACkgQAA AABmbGFnLnR4dFVUBQADp//iWnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAE4AAAB/AAAAAAA= --===============0309142026791669022==-- . 250 OK id=1fC17I-00005a-Fw 421 67289bb1f069 lost input connection
encrypted.zipをbase64でエンコードして送ったよ!とのこと。
デコードしてzipファイルを取り出す。
# echo -n "UEsDBAoACQAAAOJVm0zEdBgeLQAAACEAAAAIABwAZmxhZy50eHRVVAkAA6f/4lqn/+JadXgLAAEEAAAAAAQAAAAASsSD0p8jUFIaCtIY0yp4JcP9Nha32VYd2BSwNTG83tIdZyU4x2VJTGyLcFquUEsHCMR0GB4tAAAAIQAAAFBLAQIeAwoACQAAAOJVm0zEdBgeLQAAACEAAAAIABgAAAAAAAEAAACkgQAAAABmbGFnLnR4dFVUBQADp//iWnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAE4AAAB/AAAAAAA=" | base64 -d > encrypted.zip
- 3通目
220 67289bb1f069 ESMTP Exim 4.84_2 Fri, 27 Apr 2018 11:00:42 +0000 ehlo [172.19.0.3] 250-67289bb1f069 Hello client.4b [172.19.0.3] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail FROM:<me@4b.local> size=13 250 OK rcpt TO:<you@4b.local> 250 Accepted data 354 Enter message, ending with "." on a line by itself _you_are_pro_ . 250 OK id=1fC17K-00005h-AC 421 67289bb1f069 lost input connection
ファイルのパスワードは_you_are_pro_
と判明
あとは展開してflag.txtを読めば終わり!
フラグは
ctf4b{email_with_encrypted_file}
[Warmup] Welcome
フラグは公式IRCチャンネルのトピックにありますと書いてあるので ルールのところに記載があるIRCへアクセスしてフラグゲット
フラグは
ctf4b{welcome_to_seccon_beginners_ctf}
てけいさんえくすとりーむず
アクセスすると300秒以内に計算を100問解くよう求められる。
適当に作ったpythonスクリプトで解く。ヘッダー部分の除去は力技
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('tekeisan-ekusutoriim.chall.beginners.seccon.jp',8690)) print s.recv(303) for i in range(1, 102): data = s.recv(256) print data q = data.split('\n') ans = str(eval(q[1].replace("=",""))) print ans s.sendall(ans+'\n')
100問といてフラグは
ctf4b{ekusutori-mu>tekeisann>bigina-zu>2018}
Find the messages
imgファイルからメッセージを探せ!とのこと
まずはimgファイルを調査。
# file disk.img disk.img: DOS/MBR boot sector; partition 1 : ID=0x83, start-CHS (0x0,32,33), end-CHS (0x8,40,32), startsector 2048, 129024 sectors
なんだかマウントできそうなのでマウント位置を確認。
# fdisk -l -u disk.img Disk disk.img: 64 MiB, 67108864 bytes, 131072 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xad4d4cf0 Device Boot Start End Sectors Size Id Type disk.img1 2048 131071 129024 63M 83 Linux
Startが2048なのでoffsetは2048*512とわかったところでマウント
mount -o loop,offset=1048576 disk.img /mnt
ディレクトリ構造はこんな感じ
./ ├── lost+found ├── message1 │ └── message_1_of_3.txt ├── message2 │ └── message_2_of_3.png └── message3
さっそくmessage_1_of_3.txtにとりかかる。
内容をみてみるとbase64でエンコードされてそうな文字列なのでデコードして1つ目ゲット!
# base64 -d message_1_of_3.txt ctf4b{y0u_t0uchedr
2つ目のファイルは拡張子がpngなのにfileコマンドで見るとdataになっている。
# file message_2_of_3.png message_2_of_3.png: data
hexdumpしてみるとpngフォーマットになっていない。
# hexdump message_2_of_3.png | head -n1 0000000 5858 5858 5858 5858 0000 0d00 4849 5244
なので89 50 4E 47 0D 0A 1A 0A
に書き換えて
pngファイルを開くと2つ目_a_part_0f_
をゲット!
3つ目はフォルダの中が空。
ファイルがない。
削除されているのかな?と思いFTK Imagerでimgファイルを読み込んでみるが
ファイルはなし。
けどなにやらmessage_3_of_3.pdf
なる文字列を発見
# foremost -t pdf disk.img # ls ./output/pdf/ 00018946.pdf
pdfファイルを開くと3つ目のキーワードdisk_image_for3nsics}
をゲット!
あわせてフラグは
ctf4b{y0u_t0uchedr_a_part_0f_disk_image_for3nsics}
これで今回解けた問題のwriteupは終了です。
1ヶ月程度サーバは生きているそうなのでその間に解けなかった問題にチャレンジしたいと思います!
特にPwn頑張ろう。。。