ハッカー・プログラミング大全 攻撃編

データハウスの分厚いシリーズ新作が出るらしい。

ハッカー・プログラミング大全 攻撃編
 ISBN4-88718-867-6
 C0036 \4200
 定価(本体4200円+税)

3月23日発売予定。
楽しみ。

1章◇Backdoor Programming

簡易バックドアの作成
 バックドアとは
 侵入経路の確保を行うプログラム
 バックドアの仕組み
 簡易バックドアの仕様
 プロセスの起動
 パイプ
 スレッド
 簡易バックドアの作成
 最後に

アクティブウィンドウの監視
 アクティブウィンドウタイトルの取得
 「Internet Explorer」のURL
 Internet Explorerアクセス履歴の取得

クリップボードデータの監視
 クリップボード関連の関数
 クリップボード監視の流れ
 クリップボード監視プログラムの作成

キーストロークの監視
 キーロガーとは
 キー入力を取得する関数
 シンプルなキーロガーの作成

グローバルフック
 フックとは
 グローバルフックの利用
 グローバルフックを利用したアクティブウィンドウの監視
 アクティブウィンドウ監視DLLの作成
 アクティブウィンドウ監視プログラムの作成
 グローバルフックを利用したキーストロークの監視
 キーストローク監視プログラムの作成
 グローバルフックの仕組みと注意

スクリーンダンプ
 スクリーンダンプとは
 画面キャプチャの流れ
 画面キャプチャソフトの作成
 スクリーンダンプソフトの作成
 一歩進んだスクリーンダンプ

netstatコマンドの偽装
 netstatとは
 中継型netstatコマンド
 中継型netstatプログラムの作成
 最後に

コードインジェクション
 プロセスとは
 コードインジェクションとは
 プロセスの列挙
 DLLをプロセスへ注入する
 スレッドをプロセスへ注入する
 コードインジェクションの可能性

デバイスドライバを利用したキーストロークの監視
 デバイスドライバとは
 使用ツール
 キーボードドライバの確認
 キー入力監視の一連の流れ
 プログラムの実行結果
 デバイスドライバの面白さ


2章◇Shellcode & Exploit Programming

Stack Buffer Overflow
 バッファオーバーフローとは
 root権限を与えるプログラム
 セキュリティホールが存在するプログラム
 スタック
 実行すべきマシン語(shellcode)の作成
 exploitの作成
 リターンアドレスが判明している場合のexploitの作成
 大文字へ変換するターゲットプログラム
 バッファ領域が足りないターゲットプログラム

Heap Buffer Overflow
 ヒープ(Heap)領域
 ヒープ上のオーバーフロー
 ターゲットプログラムの作成
 ターゲットプログラムの解析
 一行のexploit
 ファイル差し替えでのroot権限奪取
 関数ポインタの上書き
 ソフトウェアの危険性

フォーマット文字列の脆弱性
 フォーマット文字とは
 問題の提起
 データの書き込み
 引数から受け取れる文字列の上限
 0xffffffffを書き込む方法
 shellcodeの実行
 フォーマット文字列の脆弱性

Remote Shellcode Coding
 リモート環境で有効なshellcode
 /bin/shを外部に公開する
 リモート用shellcodeの作成
 ターゲットプログラム
 exploitの作成

Windows Shellcode Programming
 Windows環境でのShellcodeとは
 kernel32.dllベースアドレスの取得
 Kernel32.dllアドレス取得に関する別のアプローチ
 DLLのエクスポート関数取得
 「Hello World!」プログラム
 任意のファイルのダウンロード
 任意のプログラムの実行
 shellcodeの作成
 NULL文字を持たないshellcodeの作成
 shellcodeの確認
 最後に


3章◇Packet filtering & API hooking

パケットモニタリング
 パケットモニタとは
 パケットモニタの方法
 WinPcapとは
 WinPcapの主要関数
 パケットモニタプログラムの作成
 Winsock2でのパケットモニタリング
 Winsockの初期化
 ネットワークの設定
 パケットの取得

パケットフィルタリング
 パケットフィルタリングとは
 すべてのパケットを破棄するプログラム
 特定パケットのフィルタリング

デバイスドライバを利用したモニタリングとフィルタリング
 デバイスドライバの必要性
 「Packet Filtering API」と「Filter-Hook Driver」
 PacketFilterExtensionPtr関数
 フィルタリングの流れ
 ユーザーモードアプリケーション側の処理
 カーネルモードドライバ側の処理
 プログラムの実行
 最後に

仲介DLLを利用したAPIフック
 仲介DLLを作成してフックを行う方法
 仲介DLLの仕組み
 APIフックの実演
 仲介DLL生成ツール
 仲介DLLによるAPIフックの利用法

インポートセクションを利用したAPIフック
 2つのAPIフック方法の比較
 インポートセクションを操作してAPIをフック
 モジュールの探索
 プロセス内でのAPIフック
 全プロセスに対するAPIフックの仕組み
 フックDLLの作成
 呼び出しもとプログラムの作成

Kernel API Hooking Tutorial
 カーネルモードでのAPIフック
 ネイティブAPIの存在
 SystemServiceDescriptorTable構造体
 APIフックドライバの作成
 最後に


付録◇Appendix

Borland C++ Compiler」
 「Borland C++ Compiler」とは
 「Borland C++ Compiler 5.5.1」のダウンロード
 「Borland C++ Compiler 5.5.1」のインストール
 「Borland C++ Compiler 5.6.4」のダウンロード
 「Borland C++ Compiler 5.6.4」のインストール
 設定

「Visual C++ Toolkit 2003」
 「Visual C++ Toolkit 2003」とは
 「Visual C++ Toolkit 2003」のダウンロード
 「Visual C++ Toolkit 2003」のインストール

「Platform SDK
 「Platform SDK」とは
 「Platform SDK」のダウンロード
 「Platform SDK」のインストール

NASM(The Netwide Assembler)
 NASMとは
 ダウンロード
 インストール

GoLink
 ダウンロード
 インストール

OllyDbg
 OllyDbgとは
 ダウンロード
 インストール
 日本語化

参考資料
 書籍
 WEBページ