書籍詳細
- 定価
- 3,300円(本体3,000円+税)
- 頁
- 256頁
- 発売日
- 2018/10/16
- ISBN
- 978-4-274-22274-0
- 判型
- A5
- 発行元
- オーム社
- 書籍カテゴリ
目次
主要目次
第1章 不正アクセス概要
第2章 準備
第3章 基礎知識
第4章 シェルコード
第5章 バッファオーバーフロー
第6章 コントロールハイジャッキング
第7章 リモートコード実行
第8章 ファイアウォールの突破
付録 コントロールハイジャッキング関連の技術ほか
コードインジェクション/権限昇格/Pythonを用いたエクスプロイト/ダウンロードサービスファイル
各章の概要
第1章 不正アクセス概要
不正アクセス・セキュリティの現状についておさらいをします。
第2章 準備
本書で用いるKali Linux OS、仮想環境、gcc、gdbなどについて、本書に必要なポイントを押さえて解説します。
第3章 基礎知識
プログラムの動作原理、メモリの使われ方、アセンブリについて、本書に必要な事柄を解説します。
第4章 シェルコード
脆弱性を利用して標的ホスト内で実行可能なコードの作り方について解説します。
第5章 バッファオーバーフロー
ここでは、バッファオーバーフローによるメモリの書き換えを行います。
脆弱性を含むシリアル番号チェックプログラム(bypass)を用意し、スタックガードを外してコンパイルします。特殊な文字列をbypassプログラムに引数として入力することにより、bypassプログラム中のシリアル番号のチェックのコード部分が実行されないように戻り番地を書き換えます。なお、戻り番地の書き換えには、バッファオーバーフローを利用します。
第6章 コントロールハイジャッキング
ここでは、標的ホストのシェルを実行し、自由にアクセスできるようにします。
第5章のシリアル番号のチェックプログラム内のバッファ領域を大きくしたプログラム(bypass2)を用意し、スタックガードを外してコンパイルします。また、シェルを起動する実行コード(シェルコード)を作ります。そして、シェルコードを含むバイト列を引数としてbypass2プログラムに入力することにより、bypass2プログラム内の戻り番地を、入力したシェルコードが格納されている番地に書き換え、シェルコードを実行させます。また、書き換えは、バッファオーバーフローを利用します。なお、2つのターミナルを利用し、片方を標的ホスト、もう一方を攻撃者とします。
バッファオーバーフロー回避策も解説し、bypass2プログラムをセキュアにする例も解説します。
第7章 リモートコード実行
ここでは、標的ホストのリモートシェルにアクセスし、自由に操作できるようにします。
まず、ネットワーク越し(例として、1 つのKali Linux 内でIPアドレス指定)でもバッファオーバーフローを行え、シリアル番号のチェックを回避できることを確認します。このとき、サーバ側(標的ホスト)はスタックガードを外してコンパイルしたbypass_serverプログラム、クライアント(攻撃側)はbypass_clientプログラムを使い、それぞれタ—ミナルで実行します。
次に、TCP接続によって、攻撃者側から標的ホストのリモートシェルにアクセスするためのシェルコード(TCPバインドシェル)を作ります。
そしてbypass_clientプログラムからTCPバインドシェルを含むバイト列をbypass_serverプログラムに入力することにより、標的ホスト上でTCPバインドシェルを実行させ、攻撃者側から標的ホストのリモートシェルにアクセスします。なお、bypass_serverプログラム内の戻り番地を、TCPバインドシェルが格納されている番地に書き換えますが、これもバッファオーバーフローを利用します。
さらに、標的ホストと攻撃者を異なるコンピュータとし、同じように標的ホストのリモートシェルにアクセスします。
第8章 ファイアウォールの突破
ここでは、第7章と同様のプログラムを用いて、標的ホストの前に立ちはだかるファイアウォールを突破し、標的ホストのリモートシェルにアクセスし、自由に操作できるようにします。
具体的には、上記を実現するシェルコード(リバースTCPバインドシェル)を作ります。そして、標的ホストで稼働中のbypass_serverプログラムに、攻撃者側からbypass_clientプログラムを用いリバースTCPバインドシェルを含む文字列を入力します。この入力により、bypass_serverプログラム内の戻り番地を、リバースTCPバインドシェルが格納されている番地に書き換えます(バッファオーバーフロー利用)。
また、攻撃者は自身のコンピュータ上の特定のポート番号で、標的ホストに実行させたリバースTCPバインドシェルからの接続を待ち受けます。
なお、実行されたリバースTCPバインドシェルは、ファイアウォールの中から外へのアクセスの制限が緩いことを利用し、標的ホストから、攻撃者のコンピュータへ接続します。これにより、ファイアウォールを突破し、標的ホストを自由に操作できます。
付録
関連技術およびダウンロードサービスファイルの説明をしています。
ダウンロード
ここでは、本書で取り上げたサンプルプログラムを、圧縮ファイル(zip形式)で提供しています。圧縮ファイル(ohmv2.zip:約77KB)をダウンロードし、ご解凍してご利用ください。
- 本ファイルは、本書をお買い求めになった方のみご利用いただけます。ご利用にあたっては、本書の注意書き等をよくお読みください。また、本ファイルの著作権は、本書の著作者にあり、配布等は禁止します。
- 本ファイルを利用したことによる直接あるいは間接的な損害に関して、著作者およびオーム社はいっさいの責任を負いかねます。利用は利用者個人の責任において行ってください。また、ソフトウェアの動作・実行環境、操作についての質問には一切お答えすることはできません。
sha256: 28fdd60629a1818122c155b43235a6798657a2cb024f8bfddf0780a66423b3bf












