5月 26

DEFCON 18 CTF Forensics 100(f100) writeup

問題文: Find the key
超訳:キーをみつけて。

問題ファイル

問題ファイルが何かを確認。
pentest@pubuntu:~/ctf/forensic100$ file f100_6db079ca91c4860f.bin
f100_6db079ca91c4860f.bin: x86 boot sector; partition 1: ID=0x7, starthead 0, startsector 31,
31558 sectors, extended partition table (last)\011, code offset 0x0
x86 boot sectorでだそうです。
ファイルの先頭を確認します。
pentest@pubuntu:~/ctf/forensic100$ hexdump -C f100_6db079ca91c4860f.bin | head
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001c0 01 01 07 00 df fa 1f 00 00 00 46 7b 00 00 00 00 |..........F{....|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00003e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
00003e10 00 00 00 00 00 f8 00 00 3f 00 ff 00 1f 00 00 00 |........?.......|

Continue reading

Category: 未分類 | DEFCON 18 CTF Forensics 100(f100) writeup はコメントを受け付けていません
5月 26

DEFCON 18 CTF Binary l33tness 200(b200) writeup

このwriteupは、一緒に頑張ってくれたykwsmから提供してもらいました。

問題: what treasure did pirates get?

問題ファイル

問題ファイルが何かを確認。
$ file b200_d00d7ddebd7034560.bin
b200_d00d7ddebd7034560.bin: ELF 32-bit LSB shared object, Intel 80386,
version 1 (SYSV), dynamically linked, stripped
実行してみる。
pentest@pubuntu:~/ctf/binary200$ ./b200_d00d7ddebd7034560.bin
Segmentation fault

おちる。

hexdumpの結果を見ると、Haiku-OSでコンパイルされたバイナリとわかる。
00001530 01 00 00 00 00 01 00 00 02 00 02 00 00 47 43 43 |.............GCC|
00001540 3a 20 28 47 4e 55 29 20 32 2e 39 35 2e 33 2d 68 |: (GNU) 2.95.3-h|
00001550 61 69 6b 75 2d 30 39 30 36 32 39 00 00 47 43 43 |aiku-090629..GCC|
00001560 3a 20 28 47 4e 55 29 20 32 2e 39 35 2e 33 2d 68 |: (GNU) 2.95.3-h|
00001570 61 69 6b 75 2d 30 39 30 36 32 39 00 00 47 43 43 |aiku-090629..GCC|
00001580 3a 20 28 47 4e 55 29 20 32 2e 39 35 2e 33 2d 68 |: (GNU) 2.95.3-h|
00001590 61 69 6b 75 2d 30 39 30 36 32 39 00 00 47 43 43 |aiku-090629..GCC|
000015a0 3a 20 28 47 4e 55 29 20 32 2e 39 35 2e 33 2d 68 |: (GNU) 2.95.3-h|
000015b0 61 69 6b 75 2d 30 39 30 36 32 39 00 00 47 43 43 |aiku-090629..GCC|
000015c0 3a 20 28 47 4e 55 29 20 32 2e 39 35 2e 33 2d 68 |: (GNU) 2.95.3-h|
000015d0 61 69 6b 75 2d 30 39 30 36 32 39 00 00 2e 73 68 |aiku-090629...sh|
000015e0 73 74 72 74 61 62 00 2e 68 61 73 68 00 2e 64 79 |strtab..hash..dy|
000015f0 6e 73 79 6d 00 2e 64 79 6e 73 74 72 00 2e 72 65 |nsym..dynstr..re|
00001600 6c 2e 64 79 6e 00 2e 72 65 6c 2e 70 6c 74 00 2e |l.dyn..rel.plt..|
00001610 69 6e 69 74 00 2e 74 65 78 74 00 2e 66 69 6e 69 |init..text..fini|
00001620 00 2e 72 6f 64 61 74 61 00 2e 65 68 5f 66 72 61 |..rodata..eh_fra|
00001630 6d 65 00 2e 63 74 6f 72 73 00 2e 64 74 6f 72 73 |me..ctors..dtors|
00001640 00 2e 64 79 6e 61 6d 69 63 00 2e 67 6f 74 00 2e |..dynamic..got..|
00001650 64 61 74 61 00 2e 62 73 73 00 2e 63 6f 6d 6d 65 |data..bss..comme|
00001660 6e 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |nt..............|
ここでHaiku-OSのVMイメージをダウンロードし、その上で実行。
Continue reading

Category: 未分類 | DEFCON 18 CTF Binary l33tness 200(b200) writeup はコメントを受け付けていません
5月 26

DEFCON 18 CTF Crypto Badness 100(c100) writeup

問題文: Decrypt please
Ocmln. up.’g.bjf abanfoco odrgne er yd. ypcjt d.p. /,.nnw urp yd. mroy lapy=v
Ydco y.qy ,ao ,pcyy.b gocbi a ol.jcan t.fxrapew br bry .pirbrmcjw frg aoodayv
WdcbyV Yd. t.f frg ap. nrrtcbi urp co yd. bam.oat. ru ydco t.fxrapev WzdcbyV

超訳:どうぞ、復号してください。暗号部分略。

とりあえず、問題を眺めますw
短い単語に着目しながら色々考えてみます。

文字を置き換えるだけの暗号の場合、短い単語だと
「it」「do」「us」「we」「to」「me」などなど
当たりをつけていきやすいからです。

基本中の基本
ROT系を試してみたりもしました。

そこでふと、それを否定するようなものを見つけました。
gocbi a ol.jcan
この部分です。
1文字の部分。
1文字なのに「a」ですね。

原文が英語だとするとこの時点で少なくとも「a」は置き換わっていない。
と推測されます。

暗号文の中に記号がかなり混入していることを考えると
何かの配列に置き換えてるのでは?とぼんやり考えました。
そこでGoogleで「キーボード」「配列」で検索し
キー配列 -Wikipedia
に辿り着きました。

上記ページのココを見ると色々なキーボードが並んでいます。

そこでQWERTY系の配列以外のもので「a」の位置が同じものを探すと
Dvorak配列がそれに該当しました。

試しに、2文字の単語を置き換えてみます。

「er yd.」は「do the」になりました。
ということでこの配列に従って暗号文をDvorak配列からQWERTY配列に置き換えました。
置き換え結果は以下の通りです。
Simple frequency analysis should do the trick here [well, for the most part].
This text was written using a special keyboard, no not ergonomic, you asshat.
<hint> The key you are looking for is the namesake of this keyboard. </hint>

注目すべきはhintの部分。
超訳すると
「あなたが探しているキーはこのキーボードの同名の人です。」

暗号文を復号するまでもなく答えは既に見ていたようです。

というわけで答えは
「dvorak」

Category: 未分類 | DEFCON 18 CTF Crypto Badness 100(c100) writeup はコメントを受け付けていません
5月 25

DEFCON 18 CTF Binary L33tness 100(b100) writeup

問題文: Find the key
超訳:キーをみつけて。

問題ファイル

問題ファイルが何かを確認。
pentest@pubuntu:~/ctf/binary100$ ls
b100_4c5cd364e89fd34.bin
pentest@pubuntu:~/ctf/binary100$ file b100_4c5cd364e89fd34.bin
b100_4c5cd364e89fd34.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

Linuxバイナリなので、実行してみます。
pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin
Please supply a keypentest@pubuntu:~/ctf/binary100$
「キーをお願いします。」と言われます。
引数に何か与えるパターンっぽいですね。

適当に色々試してみる。
pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin a
I hope you got it! Good luck
&0iE.m5 J
]{>=5tC!B

pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin aaaa
I hope you got it! Good luck
&0iE.m5 J
]{>=5tC!B

pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin b
I hope you got it! Good luck
ۓ{%ԥN^!xJ ¶_nä

pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin bbbbbbbbbbbbb
I hope you got it! Good luck
ۓ{%ԥN^!xJ ¶_nä
文字数があまり関係ない?
ということで分析もせず、色々記号をためしてみました。
pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin #
Please supply a keypentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin ###
Please supply a keypentest@pubuntu:~/ctf/binary100$
あら?何も入力しなかったのときと同じ挙動ですね。

というわけで色々試しているうちに下記のような挙動。
「””」って文字列長ゼロってことでしょうか。
pentest@pubuntu:~/ctf/binary100$ ./b100_4c5cd364e89fd34.bin ""
I hope you got it! Good luck
M.+Q
The real key is: bob's yer mom
pentest@pubuntu:~/ctf/binary100$

ということで正解は
「bob’s yer mom」
でした。

Category: 未分類 | DEFCON 18 CTF Binary L33tness 100(b100) writeup はコメントを受け付けていません
5月 25

DEFCON 18 CTF Crypto Badness 300(c300) writeup

問題文: Would you like to play a game
超訳:あなたはゲームをしたいですか?

問題ファイル

とりあえず、問題ファイルが何かという確認。
pentest@pubuntu:~/ctf/crypto300$ ls
c300_f75bec6f545034716.gz
pentest@pubuntu:~/ctf/crypto300$ file c300_f75bec6f545034716.gz
c300_f75bec6f545034716.gz: gzip compressed data, from Unix, last modified: Sun May 23 05:00:16 2010
pentest@pubuntu:~/ctf/crypto300$ gunzip -d c300_f75bec6f545034716.gz
pentest@pubuntu:~/ctf/crypto300$ ls
c300_f75bec6f545034716
pentest@pubuntu:~/ctf/crypto300$ file c300_f75bec6f545034716
c300_f75bec6f545034716: POSIX tar archive (GNU)
pentest@pubuntu:~/ctf/crypto300$ tar xvf c300_f75bec6f545034716
c300_f75bec6f545034716.xls
pentest@pubuntu:~/ctf/crypto300$ file c300_f75bec6f545034716.xls
c300_f75bec6f545034716.xls: CDF V2 Document, Little Endian, Os: Windows, Version 5.1, Code page: 1252, Name of Creating Application: Microsoft Excel, Create Time/Date: Wed Jul 26 11:18:57 2006, Last Saved Time/Date: Wed May 26 19:41:29 2010, Security: 1

エクセルファイルのようです。
Continue reading

Category: 未分類 | DEFCON 18 CTF Crypto Badness 300(c300) writeup はコメントを受け付けていません
5月 25

DEFCON 18 CTF Trivial Pursuits (t100) writeup

書き残すほどでも、解説するほどでもないかもしれませんが
とりあえず書いておきます。

問題文: What common linux command was quoted in the movie spiderman?
超訳:映画スパイダーマンからの引用が使われている一般的なlinuxコマンドは何?

スパイダーマンからの引用といえば
ベンおじさんの名言
“with great power comes great responsibility”
「大きな力には、大いなる責任が伴う」的な感じでしょうか。

spider-Man Wikiperia

で、この名言が表示されるコマンドを調べてみます。

with great power comes great responsibility linux command

でgoogleで検索すると

sudo – Wikipedia

がヒットしました。
ユーザーがアクセスを拒否されたときに表示されるようです。

また、こちらによると
初回起動時にでも出るそうです。

ちなみにこの問題、手動ブルートフォースでも解けますね。
common linux commandですからw
というわけで答えは
「sudo」
でした。

Category: 未分類 | DEFCON 18 CTF Trivial Pursuits (t100) writeup はコメントを受け付けていません