複数パートのブログ投稿にわけて、ステップバイステップのアプローチで、脆弱なアプリケーションにおけるスタックベースのバッファオーバーフローにせまっていきましょう。
Part 1:
x86のアセンブリコードのリンク
動画:Ollydbgの簡単な概要、exeファイルを開く、フレーム&列の説明、ステッピング、ブレークポイントの割り当て、一つをトリガーにする。
ファジングって何?
Part 2:
spike fuzzerの使い方
Spike scripting, fuzzed protocol
動画:Spikeを使用して、脆弱なアプリケーションをファジング
Part 3:
動画:脆弱性を実演する
スタックオーバーフローを理解する
Part 4:
オフセットを探り出す
コードをつかうための場所を見つける
動画:コードへのリダイレクト実行
Part 5:
動画:エクスプロイトにシェルコードを追加する
Part 1:
このチュートリアルでは、Windows XPのVMを使用することになります。このチュートリアルでは、5つの事項が必要になります。
1. Windowsの一部のバージョン。XPであればなお良い。Vistaまたは7を使用する場合には、アプリケーションの互換性設定を調整する必要があります。
2. Vulnserver、脆弱なアプリケーション: Vulnserver
3. Ollydbg、32ビットアセンブリデバッガ: Ollydbg 1.10
4. :Perlは、私は、ActiveStateのPerlをお勧めにActiveState Perlを
5. ブレークポイントのperlのスクリプトをダウンロード: Breakpoint.pl
Ollydbg Intro Video:
Exploit Development: Part 1 Basic Ollydbg from Eph on Vimeo.
ビデオで使用される用語の説明:
- Step In, Step Out(F8):これをつかうと、他のセクションへの呼び出しあるいはジャンプが無くても、コードをウォークスルーすることができます。ステップが踏まれるときに、スタックやレジスタへの変更を通知できます
- CALL命令は、コードの実行を、メモリの別の部分にリダイレクトします
- Step into(F7):これは、ちょうど踏もうとしていたステップの代わりに、メモリアドレスの実行コードへたどります。
- Breakpoints:ブレークポイントを設定すると、特定のポイントでコードの実行を停止することができます
Notes:
- アニメーションを使用するとき、F8またはF7キーを繰り返し押すのに代わる方法があります。CTRL + F8またはCtrl + F7を使用すると、プロセスを自動で進められます。アニメーションを停止したい場合はESCを押してください。
パート2に進む前に、アセンブリ言語の基礎を固めておくとよいでしょう。このテーマにおいては、非常に多くの書籍、サイト、およびフリーの情報源があり、私があれこれ教えるつもりはありません。
始めるのに役立ついくつかのリンクは以下のとおりです:
The Art of Assembly Language
Security Tube: Assembly Primer for Hackers
ファジングって何ですか?
ファジングとは、アプリケーションの欠陥を見つけるために、ランダムなデータ"fuzz"を使用して、プログラムの入力に対して自動テストを行うことです。我々がすぐにファジングに飛び込まない理由は、そのまえにエラーを検出する方法を理解しておく必要があるからです。
ファジングには主に2つ種類があります、 Mutation と Generationです。それについてはこちらで読むことができます: Analysis of Mutation and Generation-Based Fuzzing
パート2ではファジングのテクニックの練習として、vulnserverアプリケーションの脆弱性を特定していきましょう。
0 件のコメント:
コメントを投稿