CTFで使える便利なツール類のリンク集など(適宜更新中)

昨日に引き続き、リンク集を投稿します。
やはりボリュームのある、(個人的に)CTFで使えそうなツールの説明やリンクなどをまとめます。
数が多いので、こちらも少しずつ追記していきます。

とりあえず、Forensic辺りから埋めていきます。

## CTF全般的に役に立ちそうなツール一覧

* [CTFで役立ちそうなツールの一覧 Windows編 - セキュリティこねこね](https://nekose9.hatenablog.com/entry/2019/01/13/090827)

## 基本的なもの

### Google先生

困ったらGoogle先生に聞いてみましょう。
Googleハッキングについてはこの記事の内容を超えるので割愛。

参考サイト

https://baitosakino-hashibirokou.com/gg_browse/

### manコマンド

コマンドの使い方を調べる時に。

### fileコマンド

ファイルの情報種類を調べる時に。

### stringsコマンド

バイナリの中の文字列を抽出する時に。
かなり初級レベルなCTFなら、これだけでもフラグ見付けられるかも。

### istringsコマンド

バイナリファイルからASCII文字列の他に日本語文字列も抽出できる。

* 参考：[文字列検出ツール "istrings" の使い方 - ppt download](https://slidesplayer.net/slide/11235363/)

## Binary
(工事中)

### バイナリエディタ

* [Stirling](https://www.vector.co.jp/soft/win95/util/se079072.html)
Windows用のバイナリエディタ

* [Bz](https://www.vector.co.jp/soft/win95/util/se032859.html)
こちらもWindows用。
大きなサイズ(4GBまで)のファイルの解析に対応

* [PowerWitch the Royal](https://www.vector.co.jp/soft/win95/util/se161737.html)
ビット反転機能あり

* [FileInsight](https://www.aldeid.com/wiki/FileInsight)
XORやPythonプラグインによる拡張可能

* [WinHex](https://www.x-ways.net/winhex/)
フォレンジック機能あり。
ダウンファイルを読み込み使用する。
すべてのファイルだけでなく、削除されたファイルの修復、ハードディスクから消えてしまったデータ、また壊れたファイルシステムを有するハードディスクデータを査察、編集可能。一部有料。

* [hexdumpコマンド](https://www.atmarkit.co.jp/ait/articles/1810/26/news039.html)


## ネットワーク
(工事中)
Wireshark
Networkminor

## Web

### Fiddler

定番その１。私の場合は、BurpとFiddlerで多段プロキシを組んで使ってます。
HTTP通信の内容確認、書き換えなどできる。

### Burp Suite

 定番その２のローカルプロキシツール。WEBの脆弱性診断でも利用する。通信内容を確認、改ざんしたり、同じ内容の通信を送信したり等、色々できる。
Intruderタブでは簡単にブルートフォースアタックなどができる
Repeater、通信のインターセプト、拡張機能(Pythonやjavaで自作も可能)もあり、通信を調べるのに重宝する。

### FoxyProxy

手軽にプロキシ設定が変えられる、便利なアドオン。
FireFox、Chromeの拡張機能から導入できる。

参考

https://qiita.com/nilfigo/items/c8b5e8321e63531640a9

## Forensic

以下のURLで例示付きでまとめられてて分かりやすいです。

* [Forensics入門（CTF）](https://qiita.com/knqyf263/items/6ebf06e27be7c48aab2e)

使い方ならこっちの方がいいかも。

* [フォレンジック - Hope-net Wiki](http://www.hope-net.jp/pukiwiki/index.php?%E3%83%95%E3%82%A9%E3%83%AC%E3%83%B3%E3%82%B8%E3%83%83%E3%82%AF#v0b52475)

- 7Zip : 多数のアーカイブ形式に対応し、さらにステガノグラフィのような部分的に圧縮形式のバイナリになっているファイルも、その部分を認識し開けることが多い。とりあえず、突っ込んでみるのもあり。

### Volatility

Volatilityについては、以下の記事でチートシートを投稿しました。

* [Volatility Framework チートシート(自分用メモ) - Qiita](https://qiita.com/LOGE/items/9e62b0cef8c84625db4a)

### foremost
バイナリファイルの中からファイルを探しだして復元します。

### Scalpel
http://www.digitalforensicssolutions.com/Scalpel/
バイナリファイルからファイルを取り出して復元します。

### exiftool
画像のExif情報を確認するのに使用。

### binwalk
中に埋め込まれてるファイルを取り出すことが出来ます。

### Stepic
Steganography用のツール。
PNGなどの画像に文字やファイルを隠したり、JPEGを隠したり出来る。
CTFの問題作るときに使ってみようかな？

* [Stepic - Python image steganography](http://domnit.org/stepic/doc/)

### Steghide
こちらもSteganography用のツール。

* [Steghide](http://steghide.sourceforge.net/)

### ZXing
QRコードとかバーコードを読むためのライブラリ。
なお、以下のサイトでは、画像をアップロードすると読み取りを行ってくれます。

* [ZXing Decoder Online](https://zxing.org/w/decode.jspx)

### zipinfo/zipdetails
zipのメタ情報。
ここにflagが隠されていることもある。

* [【 zipinfo 】コマンド――ZIPファイル内の情報を表示する：Linux基本コマンドTips（241） - ＠IT](https://www.atmarkit.co.jp/ait/articles/1809/14/news041.html)

### PkCrack
zipに対する既知平文攻撃を実行するツール。
使い方、インストールは以下が分かりやすい。

* [SECCON 2015 Online CTF Writeup · GitHub](https://gist.github.com/gion-xy/dd468f240d959f03f18e)
* [パスワードクラッキングツール pkcrack](https://kaworu.jpn.org/kaworu/2012-12-07-1.php)
* [既知平文攻撃でパスワード付きzipを復号 |](https://n-lab.site/?p=102)

### TestDisk
パーティション情報を修復するソフトウェアです。

* [TestDiskの使い方 – パーティションの修復方法 | データ復旧大図鑑 – 自分で解決！ファイル復元](https://jisaku-pc.net/hddhukyuu/archives/6731)

### PhotoRec
ハードディスク上のパーティションを検査、可能な限りファイルを復元することができるデータリカバリ用ソフト。

* [オープンソースで無料のファイル復元ソフト「PhotoRec」 - GIGAZINE](https://gigazine.net/news/20070720_photorec/)

### Autopsy
Sleuth KitをGUIで扱うためのソフトウェア。
メモリダンプファイルからファイルを読み出せる。
削除されたファイルも読み出せる。

### The Sleuth Kit
The Sleuth Kitファイルシステム周りの調査を対象としたコマンド群。

#### fls
ディスクイメージ内のファイルとディレクトリの名前を列挙するコマンド。

#### icat
inode番号を指定するとそのファイルを出力するコマンド。


## pwn

* [Pwn入門 - Qiita](https://qiita.com/GmS944y/items/2973b380d8268b797242)

## 数学

### wxMaxima
数式処理ソフトウェアです。
100乗根などの計算が大変なものも簡単に求められるらしいです。

* [maxima入門](http://maxima.combinators.net/gamen.html)

### bcコマンド
非常に大きな桁数の小数の計算ができます。

* [bc - コマンド (プログラム) の説明 - Linux コマンド集 一覧表](https://kazmax.zpp.jp/cmd/b/bc.1.html)

### factorコマンド
素因数分解ができます。

* [Linuxコマンド【 factor 】素因数分解を実行 - Linux入門 - Webkaru](https://webkaru.net/linux/factor-command/)

## Linux

* 検索フォームがあるので、コマンドをド忘れした時に便利。：[Linux入門 - コマンドリファレンス - Webkaru](https://webkaru.net/linux/command-reference/)

## Android

Android問題を解く方には余計なお世話かもしれませんが、解く前にやることも記載しておきます。
解凍した時のファイル構成等は参考URLをご覧ください。

### apkの中身を見れるようにする
unzipかapktoolで配布されたapkの中身を見れるようにする。

```cmd:
unzip test.apk
apktool d test.apk
```

### dexファイルをjavaで見れるようにする

dexファイルにdex2jarを使うと、配布されたアプリで使われているclassファイルが出てくる。
それをjadを用いて見れるようにする。

基本的にMainActivity.classをjadで見て、後は必要に応じてjadを使う。

```cmd:
dex2jar classes.dex
jad ./***/***/MainActivity.class
```


* [Apktool](https://ibotpeaches.github.io/Apktool/)

* [dex2jar](https://sourceforge.net/projects/dex2jar/)

* [jad](http://kataware.hatenablog.jp/entry/2017/06/01/221749)

* [Android Emulator](https://developer.android.com/studio/run/emulator?hl=ja)

* 参考：[CTF Android問に強くなる - ごちうさ民の覚え書き](http://kataware.hatenablog.jp/entry/2017/06/01/221749)