--- lang: ja --- CTFに使えるツールインストールParty🎉 === CTFで使えるツールはたくさんあるけど何一つSleuthKit以外何一つ教えてねえなと思ったのとDJうさだがモチベ高くて結構OSKに来るし教えるのも上手いからこれもう僕班長じゃないですね...みたいな感じになってアレだったのでツール教えるマンになります。 これが終わったらまた僕は班長じゃないのでは?みたいな立ち位置に戻りそう(真面目にやって) # Forensics用使えるツール ツールがいい感じに仕えて最高なのは主にForensicsだよね ## exiftool ### 概要 --- イグジフとかエグジフって読みます。(エグジフのが正しそう) exiftoolは画像の[メタデータ](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF)を見る&書き換える為のツールで、これを使えばとある写真が何のデバイスを使って北緯東経何度で海抜何mのところでどっちの方角を向いて撮ったとかなんか全部わかる。Youtuberの家特定に使えそうだよね。 exifdataの書き換えはvimっぽくできるはずなので頑張ろうね ### install --- brewでいけます(最強) ``` $ brew install exiftool ``` ### option --- 自分で調べるか ``` $ exiftool -h ``` とかで出てきそうだけどちゃんとします。というかoptionは大抵-h(help)で出てくるからそこは覚えてよね... #### exifdataを見る ``` $ exiftool filename ``` #### exifdata全削除 神経質人間がネットに画像をアップロードする前にやったりしてる ``` $ exiftool -all= ./filename ``` ちなみにexifdataが残ってるオリジナルのやつはfilename_originかfilename_originalみたいなやつが勝手に複製されてそっちに残る ## The Sleuth Kit 本当にこれ書くか迷ったけどqiitaとかすぐ消えるし(偏見)残しておこうかなという感じ 前にみんなで入れたとは思うけど万が一PCさんがお亡くなりになったときのことも考えて... icatとかflsの説明はしたよね!インストールの部分だけ書いてぶっ飛ばします。こいつはインストールが結構大変なので... ### install --- 1. **まずはJavaをインストール** --- ``` $ brew cask install Java ``` caskっていうのはアプリケーションと紐づけるって意味です。 brew caskはHomebrewの拡張機能で...モニャモニャ ここら辺の話は本当に知っててもらいたいんだけどここでやると脱線 of 脱線なので今回はやりません。僕の班長としての威厳を失わないために来週やります(思いつき) 2. **Javaのバージョンチェック** --- ``` $ /usr/libexec/java_home -V ``` これで ``` $ Matching Java Virtual Machines (1): 12.0.1, x86_64: "OpenJDK 12.0.1" /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home ``` こんな感じのが出てくる。12.0.1がバージョンだねー 3. **パスを通す(大事)** --- パスの話とか割としたような気もするんだけど詳しくはしてない気もしてきたので、詳しい話はさっきのと一緒に来週やります(威厳を取り戻せ) 皆さん**もちろん**bashを使っていると思うので、bash_profileにパスを追加していこう。 ちなみに編集するときのエディタはなんでもいいけど、こういう設定ファイルをなんとなくいじるだけの時はターミナル上で編集できるvimが楽かなぁという気がしないでもないです。(ターミナル上で編集可能なエディタは1つくらい使えるの持ってて欲しいな) ということで下記のものを.bash_profileに追加します。 ``` export PATH=$PATH:/Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home/bin export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home ``` この12.0.1のところはさっき確認したバージョンを記入してね〜 4. **.bash_profileを更新** --- 設定ファイルいじったらちゃんと更新しろよな sourceコマンドで更新出来るから.. ``` $ source ~/.bash_profile ``` 5. **The Sleuth Kitのinstall** --- コマンド入力大会だなぁ ``` $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ``` 長いのでコピペでいいです。 6. **.bash_profileにconfigを追記** --- 実際使うための細かい設定的なアレね .bash_profileに以下を追記します。 ``` export LDFLAGS="-L/usr/local/opt/libpq/lib" export CPPFLAGS="-I/usr/local/opt/libpq/include" export PKG_CONFIG_PATH="/usr/local/opt/libpq/lib/pkgconfig" ``` 7. **終了** --- ``` $ icat -V ``` と ``` $ fls -V ``` でバージョン確認していい感じに出てきたらもう使えます。長い道のりや。 ## binwalk ファイルの中に埋め込まれているファイルを発見するためのやつ。 Steganographyで使えそう。動画の中に画像ファイルが埋め込まれてたり、画像ファイルの中にzipファイルが埋め込まれていたりするのでForensicするならまず確認しようよねってやつ。 [本家wiki](https://github.com/ReFirmLabs/binwalk/wiki) ### install --- 1. **brewでいけるけどgitからモニャモニャを取ってくるところから** ``` $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ``` コピペでいいです。 2. **brew install** ``` $ brew install binwalk ``` ### 使い方 --- binwalkを使う対象がfilename.binだったら ``` $ binwalk filename.bin ``` jpegファイルとかの場合は ``` $ binwalk -e filename.jpeg ``` とかにしよう。ちなみにhelpは ``` $ binwalk ``` だけで出てきました。optionはここから確認してね ## Stepic もろSteganography用のツール binwalkと逆でファイルの中にファイルを埋め込むことができる。Steganographyは埋め込まれたファイルをどうにかする問題もあれば埋め込んでどうにかする問題もあるので使えるようにしておこう ### install --- 1. [Stepic公式](http://domnit.org/stepic/doc/)から stepic-0.3.tar.gzをダウンロード 2. **アーカイブファイルを作成** ``` $ tar stepic-0.3.tar.gz ``` ちなみ1で公式からダウンロードした時にデフォルトだとDownloadsディレクトリにstepic-0.3.tar.gzが入っているので任意のディレクトリに移動してからやるとかなんとかしてください。 3. **install** ``` $ cd stepic-0.3があるディレクトリ/stepic-0.3 $ sudo ./setup.py install ``` 4. **Imageをinstall** 動作にはImageが必要なのでinstall ``` $ pip3 install Image ``` 5. **Imageで起こるエラーを防御** このままだとエラーが起こるのでガードします。 ``` $ vim stepic [-] import [+] from PIL import Image ``` 6. **おしまい** ### 使い方 --- また今度書こー # General用 ## zipinfoコマンド ``` $ zipinfo filename.zip ``` でzipファイルのメタデータを出せる。 デフォルトであるコマンドのはず... ## PkCrack(Crypt?) 暗号の平文のかけらが分かっているときに暗号文を復元するためのツール。かけら、大事。 ### install --- 1. **brew** ``` $ brew install pkcrack ``` 2. **sourceを公式からダウンロード** [PkCrack公式](https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack.html) 3. **makeしたいのでアーカイブファイルとかを作る** ``` $ cd さっきダウンロードしたディレクトリ $ wget http://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-1.2.2.tar.gz $ tar xzvf pkcrack-1.2.2.tar.gz $ cd pkcrack-1.2.2/src $ make ``` 4. **makeでコケます** makeでコケるので色々編集する (vimでもなんでもok) - Makefile 2行目 ```c= CFLAGS=-04 -Wall ``` - exfunc.c 44行目 ```c= // #include <malloc.h> ``` - extract.c 71行目 ```c= // #include <malloc.h> ``` - main.c 83行目 ```c= // #include <malloc.h> ``` - readhead.c 58行目 ```c= // #include <malloc.h> ``` - zipdecrypt.c 87行目 ```c= // #include <malloc.h> ```