ハッカー・プログラミング大全 攻撃編
データハウスの分厚いシリーズ新作が出るらしい。
ハッカー・プログラミング大全 攻撃編
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ページ