wivern ロゴ

サイバーセキュリティ研究所

サイバーセキュリティを中心に、軍事、防犯、サーバーの管理と監視、その他、最新技術を研究しています。


セキュリティコンテストチャレンジブック

CTFの実践的入門書

セキュリティコンテストチャレンジブック

[目次]
Part 0: イントロダクション
CTF とは / CTF への参加 / 気をつけること / 法律面 / CTF やってみよう

Part 1: バイナリ解析
[ステップ1] バイナリ解析とは
[ステップ2] バイナリ解析環境の構築
[ステップ3] バイナリ解析入門
[ステップ4] バイナリ解析に関するTIPS

Part 2: pwn
[ステップ1] pwn とは
[ステップ2] 下調べ
[ステップ3] 脆弱性を探す
[ステップ4] エクスプロイト
[ステップ5] pwn! pwn! pwn!

Part 3: ネットワーク
[ステップ1] CTF におけるネットワーク分野を知る
[ステップ2] プロトコルとパケット
[ステップ3] パケットの解析
[ステップ4] パケットの送受信

Part 4: Web 問題
[ステップ1] Web 問題の特徴
[ステップ2] 任意コード実行系の脆弱性
[ステップ3] 各種脆弱性の利用
[ステップ4] シェルをとった後の手法

Part 5: SQL インジェクション
[ステップ1] SQL インジェクションとは
[ステップ2] 攻撃その前に
[ステップ3] 攻撃してみよう
[ステップ4] 発展

[書評]
CTF の入門サイト CpawCTF の「〜CTFとは〜(http://sandbox.spica.bz/cpaw_ctf/about_ctf.html)」によると、
CTF は
(1)Crypto       暗号
(2)Web         Web
(3)Reversing      Reverse Engineering
(4)Pwn         Pwn
(5)Forensic      鑑識
(6)Network       ネットワーク
(7)PPC         Professional Programming and Coding
(8)Steganography    音声や画像などのデータに秘密のメッセージを埋め込む技術
(9)Recon        ネットストーキング
(10)Trivia       クイズ
(11)Misc
の11種類に分類されて出題されるとあります。

本書ではこの11種類から、CTFの主要エーマとも言える

Reversing
Pwn
Network
Web

が扱われています。

CTFの実践的な入門書としては、他に類書が少ないこともあって評価できる内容ですが、誤植の多さが気になります。
また、解説に終始して、問題サンプルがほとんどないのも残念でなりません。
最終章に( pwn の一環として?)SQL インジェクションが単独でとりあげられていて、CTF という枠を超えて参考になる内容でした。

サポートサイト
https://book.mynavi.jp/supportsite/detail/9784839956486.html

 Amazon  楽天ブックス

[読書メモ+正誤情報]
p.39 最終行
誤:「に詳しく書かれています。」
正:(不明)
[参考情報]
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3

p.52 10行目
誤:「レジスタ値の変更するときは、」
正:「レジスタ値を変更するときは、」

・Intelの命令セット・リファレンス
×:http://www.intel.co.jp/content/www/jp/ja/developer/download.html/
『IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル』
上巻:基本アーキテクチャ (資料番号 253665-013J) http://www.intel.co.jp/content/dam/www/public/ijkk/jp/ja/documents/developer/IA32_Arh_Dev_Man_Vol1_Online_i.pdf
中巻 A:命令セット・リファレンス A-M (資料番号 253666-013J) http://www.intel.co.jp/content/dam/www/public/ijkk/jp/ja/documents/developer/IA32_Arh_Dev_Man_Vol2A_i.pdf
中巻 B:命令セット・リファレンス N-Z (資料番号 253667-013J) http://www.intel.co.jp/content/dam/www/public/ijkk/jp/ja/documents/developer/IA32_Arh_Dev_Man_Vol2B_i.pdf
下巻:システム・プログラミング・ガイド(資料番号 253668-013J) http://www.intel.com/content/dam/www/public/ijkk/jp/ja/documents/developer/IA32_Arh_Dev_Man_Vol3_i.pdf

p.67 1行目
誤:「push s r c」
正:「push src」

p.67 9行目
誤:「減産」
正:「減算」

p.72 上から3つ目のリスト
誤:loc_1:
    xor ecx,ecx
正:  xor ecx,ecx
  loc_1:

p.74 8行目
誤:「実は、関数呼び出す際に、」
正:「実は、関数を呼び出す際に、」

p.74 Func1 リスト中
誤:「call Func」
正:「call Func2」

p.80 下から13行目
誤:「見かけたら無理をセずに、」
正:「見かけたら無理をせずに、」

p.82 上から17行目
誤:「4.1 脱ビギナーに向けたIDA Proの使い方」
正:「Column 脱ビギナーに向けたIDA Proの使い方」

p.84 上から11行目
「バイナリ問題を解くためのプログラミング技法」
配布されていない

checksec.sh
https://github.com/slimm609/checksec.sh

peda
https://github.com/longld/peda
https://github.com/zachriggle/peda

p.91 peda の便利コマンド
誤:「pdissassemble(pdisas)」
正:「pdissassemble(pdisas)」

rp++
https://github.com/0vercl0k/rp

socat
http://www.dest-unreach.org/socat/

pwntools
http://pwntools.com/

検証プログラムに入力を与える際に、p.99 では「python -c 'print("文字列")' | ./bof 」のように python を使うのに、p.104 では「echo -e '文字列'」 | ./bof2 」のように echo を使うのか?

Hopper : The OS X and Linux Disassembler
http://www.hopperapp.com/

p.117 下から2行目
誤:「ステップ4」
正:「ステップ5」

p.135 下から6行目
誤:「ソケット通信を利用いて」
正:「ソケット通信を利用して」

p.140 下から1行目と3行目
誤:「赤の太枠で囲われた部分」
正:「太枠で囲われた部分」

p.142 上から8行目
誤:「始まりおり」
正:「始まっており」

pcapfix( Windows版 )
https://f00l.de/pcapfix/
https://github.com/Rup0rt/pcapfix/tree/devel

editcap
https://www.wireshark.org/docs/man-pages/editcap.html

Wireshark
https://www.wireshark.org/

p.151 上から3行目
誤:「次の3点に着目をして」
正:「次の4点に着目をして」

p.151 上から12行目
誤:「Coversations」
正:「Conversations」

p.163 最下行
誤:「を使うことが    」
正:「を選択します。」

Scapy
http://www.secdev.org/projects/scapy/

※本書の記載ではバージョンは「2.3.1」だが、Kali Linux に入っているバージョンは、「2.2.0」になっている。

Kali Linux : mnt/hgfs/temp で、ホスト側(Windows7)の c:\temp と共有可能

p.174 上から3行目
誤:「ICMP」
正:「IP」

Network Miner
http://www.netresec.com/?page=NetworkMiner
有償版は、$700 USD。

p.210 コード例
誤:「$_POST[...]」
正:「$_GET[...]」

p.211 下から13行目
誤:「それをによって何が可能」
正:「それによって何が可能」

p.214 上から2行目と3行目
不要


記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「コンピュータウイルス製造入門」
←「徳丸浩のWebセキュリティ教室」


« 戻る