web-dev-qa-db-ja.com

ファジングWindowsアプリケーションの学習を開始したいのですが、どこから始めればよいですか?

私は私の理学士号を取得しました。コンピュータサイエンスの分野で、基本的なアセンブリ言語に精通しています。 Windowsアプリケーションの脆弱性を見つける方法について学び始めたいと思います。バッファオーバーフロー、解放後使用など。私はパス、つまり、基本を学習するための資料を探し、次に、より高度なソースから学ぶことを求めています。どんな助けでもありがたいです。

4
Moe

『Windows Stack Exploitation:Bypass Protection』のアプローチとテクニックは、単純明快で根拠があります。

この本の例では Sulley を使用していますが、 FuzzLabs をWindowsアプリのファズテストスイートとして紹介することもお勧めします。最も高度なファズテストスイートは Driller で、2016年8月のDARPAサイバーグランドチャレンジでリリースされると思います-しかし、多くの 他の有効な手法 があります。

pwndbg でqemu-userフレームワークを使用すると、クラシックLinux環境でのWindows実行可能ファイルの迅速なプロトタイピングと実行が可能になります。 binary.ninja フレームワークは、次世代の搾取開発として多くの人が話題にしている商用ソリューションです。ただし、binjaはバイナリ分析手法を使用したエクスプロイト開発に向けられており(まだ非常に有効です)、リバースエンジニアリングによる悪意のあるコードの特定やソフトウェアの脆弱性ガイドなどの古い本をお勧めします。

2
atdre

このフォーラムで特定の書籍またはコースをここにリスト/宣伝できるかどうかはわかりません。しかし、インターネットのWindowsアプリケーションの脆弱性とファジングを検索すると、多くのチュートリアルが見つかるはずです。何に焦点を当てるべきかについての提案について、あなたは理解していますか:

  • スタックとヒープがプログラムのアドレス空間にどのように割り当てられていますか?
  • 命令ポインター(EIP)、スタックポインター(ESP)などの役割は何ですか。
  • 呼び出し規約は何ですか?
  • DLLリンクは実行時にどのように発生しますか?
  • Windowsのプロセス間通信(IPC)とは何ですか?名前付きパイプとは何ですか?
  • ユーザーとネットワークの両方からの入力を処理するために、典型的なWindowsアプリケーションで呼び出されるWin32 APIはどれですか。
  • デバッガーを使用して実行中のプログラム/プロセスのコンテキストを検査する方法デバッガーの動作方法。
  • 突然変異ベースのファザーと世代ベースのファザーの概念。

    これらはすべて、始めるのに役立ちます。基本的な概念を理解すれば、オンラインで入手できる資料をたどることは難しくありません。一般に、同じ概念が他のOSにも適用されます。しかし、具体的にはWindowsを要求したので、Windowsについてのみ言及しました。少なくともこれらの概念は、Windowsエクスプロイトを理解するのに役立ちますが、それらもあなたに役立つことを願っています。

0
wei

Peachは、あらゆるアプリケーションやプロトコルについてファズする機能を提供する1つのデファクトファザーです。 http://www.peachfuzzer.com/products/Peach-platform/ から始めることをお勧めします

0
C.J. Steele