●本書は、純粋なコンピュータセキュリティの技術解説書です。全448ページ、CD-ROM付き。データハウス刊、4,200円(+税)にて、3月23日に全国書店で発売されます。
●C/C++言語やアセンブリ言語の基礎的な知識を前提として、コンピュータセキュリティ技術の本質的な部分について解説を行っていきます。
●本書では、現在もっとも有名なセキュリティホールのひとつであるバッファオーバーフロー(buffer over-flow)をベースにスタックバッファオーバーフロー、ヒープバッファオーバーフロー、そして、リモート環境での攻撃手法やLinuxとWindowsで動作するshellcodeの作成法などを具体的に解説していきます。
●コンピュータセキュリティプログラミングとしては、バックドア、キーロガー、パケットスニッファ、APIフックといった技術について、サンプルプログラムを例になるべく幅広い内容を取り上げています。また、デバイスドライバを利用したカーネルレベルでのプログラミングについても触れていきます。
●本当の意味での「Computer Hacking」を純粋に解説した一冊であり、多少のプログラミング経験を持つ方ならば誰でも読み進めることができる内容となっています。単純にコンピュータやセキュリティ技術に興味のある方、またこれからセキュリティを学ぼうとする方に読んでもらいたい一冊となっています。
●内容など詳細については、上記リンクを参考にしてください、目次は制作の関係上、一部異なる箇所もありますのでご了承ください。
●内容や各種情報は随時、追加していきます。サイト掲載情報は予告なく変更、削除する場合がありますのでご了承ください。
ハッカー・プログラミング大全 攻撃編
■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 Programming
リモート環境で有効な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の作成
呼び出し元プログラムの作成
◆Kener API Hooking Tutorial
カーネルモードでのAPIフック
ネイティブAPIの存在
SystemServiceDescriptorTable構造体
APIフックドライバの作成
APIフックの実用性
■4章 Appendix(付録)
◆「Borland C++ Compiler」
「Borland C++ Compiler」とは
「Borland C++ Compiler5.5.1」のダウンロード
「Borland C++ Compiler5.5.1」のインストール
「Borland C++ Compiler5.6.4」のダウンロード
「Borland C++ Compiler5.6.4」のインストール
設定
◆「Visual C++ toolkit2003」
「Visual C++ toolkit2003」とは
「Visual C++ toolkit2003」のダウンロード
「Visual C++ toolkit2003」のインストール
◆「Platform SDK」
「Platform SDK」とは
「Platform SDK」のダウンロード
「Platform SDK」のインストール
◆NASM (The Netwide Assembler)
NASMとは
◆GoLink
ダウンロード
インストール
◆OllyDbg
OllyDbgとは
ダウンロード
インストール
日本語化
◆参考資料
書籍 WEBページ
|