CTF初心者によるCpawCTF Lv1のWriteUp
Cpaw CTF Lv1のWriteUpを書こうかな。なんて。
- Q1.[Misc] Test Problem
- Q6.[Crypto] Classical Cipher
- Q7.[Reversing] Can you execute ?
- Q8.[Misc] Can you open this file ?
- Q10.[Forensics] River
- Q11.[Network]pcap
- Q12.[Crypto]HashHashHash!
- Q14.[PPC]並べ替えろ!
- まとめ
Q1.[Misc] Test Problem
この問題の答え(FLAG)は、cpaw{this_is_Cpaw_CTF} です。
下の入力欄にFLAGを入力してSubmitボタンを押して、答えを送信しましょう!
コピペです。
Q7.[Reversing] Can you execute ?
exec_meという拡張子不明のファイルをダウンロードして解析するんですが
このファイルがウイルスだったりするのでVirtualBoxなり使って仮想OS上で開きましょう。
fileコマンド
拡張子がわからないファイルはfileコマンドを使って調べるようです。
toor@toor-VirtualBox:~/ダウンロード$ file exec_me exec_me: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=663a3e0e5a079fddd0de92474688cd6812d3b550, not stripped toor@toor-VirtualBox:~/ダウンロード$ ./exec_me bash: ./exec_me: 許可がありません toor@toor-VirtualBox:~/ダウンロード$ sudo ./exec_me [sudo] toor のパスワード: sudo: ./exec_me: コマンドが見つかりません toor@toor-VirtualBox:~/ダウンロード$ ^C toor@toor-VirtualBox:~/ダウンロード$
exec_meはELFという形式のようです。
▼ELFとは
Executable and Linkable Format - Wikipedia
実行は./exec_meですが許可がないということなのでsudoしてみましたがダメです。
ELF 実行方法でググるといろいろでてきます。
バイナリレベルでの調査に使用するLinuxコマンドメモ
中を見ようと思いobjdumpやstrings、あとcatコマンド使ってみましたがダメでした。
catは文字化け、ofbjdumpやstringsではフラグらしきものは見つからず
toor@toor-VirtualBox:~/ダウンロード$ objdump -s exec_me | head exec_me: ファイル形式 elf64-x86-64 セクション .interp の内容: 400238 2f6c6962 36342f6c 642d6c69 6e75782d /lib64/ld-linux- 400248 7838362d 36342e73 6f2e3200 x86-64.so.2. セクション .note.ABI-tag の内容: 400254 04000000 10000000 01000000 474e5500 ............GNU. 400264 00000000 02000000 06000000 18000000 ................ セクション .note.gnu.build-id の内容:
writeupでヒントを探したところどうやら実行権限が与えられていなかったから実行できなかったようです。
lsにlオプションを付けて詳細を表示してみます。
toor@toor-VirtualBox:~/ダウンロード$ ls -l 合計 113988 -rw-rw-r-- 1 toor toor 0 10月 26 2017 IMG_5743.HEIC -rw-rw-r-- 1 toor toor 83638506 8月 21 2017 atom-amd64.deb -rw-rw-r-- 1 toor toor 8556 6月 11 08:00 exec_me -rwxrwxr-x 1 toor toor 7077355 9月 16 2017 geckodriver -rw-rw-r-- 1 toor toor 2259579 9月 23 2017 geckodriver-v0.19.0-linux64.tar.gz -rw-rw-r-- 1 toor toor 27136 6月 11 08:21 open_me
rは読み込み可、wは書き込み可、xが実行権限。
exec_meにはxがありません、権限を与えましょう。
権限の変更はchmodコマンドで行います。
プラスで追加、マイナスで破棄です。
toor@toor-VirtualBox:~/ダウンロード$ chmod +x exec_me toor@toor-VirtualBox:~/ダウンロード$ ./exec_me
Q8.[Misc] Can you open this file ?
Q7同様fileコマンドで調べます。
toor@toor-VirtualBox:~/ダウンロード$ file open_me open_me: Composite Document File V2 Document, Little Endian, Os: Windows, Version 10.0, Code page: 932, Author: v, Template: Normal.dotm, Last Saved By: v, Revision Number: 1, Name of Creating Application: Microsoft Office Word, Total Editing Time: 28:00, Create Time/Date: Mon Oct 12 04:27:00 2015, Last Saved Time/Date: Mon Oct 12 04:55:00 2015, Number of Pages: 1, Number of Words: 3, Number of Characters: 23, Security: 0
2行目にMicrosoft Office Wordの文字が...!
UbuntuにはLibule officeがもともと入っているのでこれを使います。
toor@toor-VirtualBox:~/ダウンロード$ libreoffice open_me
Q9.[Web] HTML Page
F12でブラウザのデベロッパツールを起動させます。
ページに表示されている部分以外にも、ページをより良くみせるためのデータが含まれています。
と書かれているようにbody以外を見てみましょう。
Q10.[Forensics] River
これは面白かったです(笑)
写真にはExifと言って日時や緯度経度、何で撮影したのかという情報が記録されています。
ここからriver.jpgの場所を探します。
▼Exif情報を読み取れるサイト
EXIF確認君 - 画像情報解析ツール
Googleマップも表示されるので便利です。
Q11.[Network]pcap
pcapファイルとはパケットキャプチャファイル?ですかね。
wiresharkを使って開くようです。
「Wireshark」ネットワークプロトコルアナライザー - 窓の杜ライブラリ
おめぇwiresharkはすでにインストールされてっぞぉって出たんで驚きですね。
すでにインストール済みだったのを忘れていました。
network10.pcapをwiresharkで開けば答えが書かれています。
Q12.[Crypto]HashHashHash!
ハッシュは過去にも記事で扱いましたがハッシュ化すると元の文字列は解読できません。
しかし、レインボーテーブルを使えば別です。
それがブラウザ上でできちゃうんだからすごい話ですよね。
e4c6bced9edff99746401bd077afa92860f83de3 she-1とかでググると出てきます。
これだけフラグがすごく短いです(笑)
Q14.[PPC]並べ替えろ!
そのままですね。
僕はpythonで書きました。
num = [15,1,93,52,66,31,87,0,42,77,46,24,99,10,19,36,27,4,58,76,2,81,50,102,33,94,20,14,80,82,49,41,12,143,121,7,111,100,60,55,108,34,150,103,109,130,25,54,57,159,136,110,3,167,119,72,18,151,105,171,160,144,85,201,193,188,190,146,210,211,63,207] num.sort(reverse=True) ''.join(map(str,num))
sortで降順、引数でreverseを指定すると昇順にできます。
mapを使わずstr(num)にすると”,”で区切られてしまいます。
sortedってのもあるようですがわからないのでmapにしちゃいました。
まあ説明はできないけどなんでなのかはわかります。
もっときれいな書き方があると思います。
まとめ
このへんは比較的簡単でしたね。
いや、拡張子がわからないファイルの調べ方とか権限の付与とかは初めてだったんでわからなかったです。
wiresharkは使い方わからなかったんですけど開くだけでOKなので苦戦はしなかったですね。
Lv1は1問10ポイントなのに対してLv2は100ポイントなので難しそうです。
まだ1問目しか解いてません。
Lv2も終わったら記事にしようかなと思います。
以上!