これらのツールについて聞いたことがありますが、私が理解しているところによると、さまざまなサービスで大量のランダムデータを送信し、それに対する反応を観察しています。
ファザーの目的は何ですか?ペンテスト中にどのように適用できますか?
ファザーの目的は何ですか?
ファザーは、適切に計画されていない入力を提供することにより、ターゲットソフトウェアから予期しない反応を引き出そうとします。これは、「創造的に作成された」データをソフトウェアへの入力としてスローすることによって行われます。電話番号をご希望ですか?ハ! 0x00の1,024文字を差し上げます。ランダムヘックス! Unicode!ゼロ幅フィールド!句読点のみ: "()-"
目標は、クリーンではないエラー応答を取得することです...余分なアクセス、バッファオーバーフローなど。不適切に処理された入力は、不要なメモリ範囲に拡張するか、他の反応。 SQLエラーが電話番号フィールドから戻ってきましたか? SQLインジェクション時間!
つまり、ファザーはすべての点で、欠陥を見つけるのに役立ちます。特に、これらの欠陥をポイントとして使用してエクスプロイトを起動するためのペンテストの際に役立ちます。
ファザーは(半)自動化されたツールで、攻撃者が悪用する可能性のあるソフトウェアの脆弱性を見つけるために使用されます。利点には以下が含まれますが、これらに限定されません。
位置的な欠点には、以下が含まれますが、これらに限定されません。
私が理解しているところによると、彼らはさまざまなサービスで大量のランダムデータを送信し、それに対する反応を観察しているだけです。
これは、「ランダム」の意味によっては、一部真実です。ファザーは、プログラムのメモリリークを特定する目的でそのように使用できますが、ペンテスト(プログラムをクラッシュさせる)にも役立ちます。ファザーでプログラムをクラッシュさせることができるなら、おそらくそれをハイジャックすることができます。
ペンテスターの観点から見ると、ファザーは入力検証エラーを識別するのに最も役立ちます。
多分それはあなたがソースコードを読むことができると仮定して、単純な FTP fuzzer で説明するのが最善です。
典型的なFTPファザーは、「ランダム」引数を使用して、cd
、put
などのさまざまなFTPコマンドを実行しようとする場合があります。多くの場合、ファザーは、長さが増加する文字列をブルートフォースで送信します。これは、悪用される可能性のあるバッファーオーバーフローエラーの識別に使用できます(ASLRや他の技術により、これは多少軽減されます)。
この点で、サーバーアプリケーションをデバッガーで実行しているときにファザーが最も役立つので、ファザーがクラッシュする方法/場所を正確に確認できます。次に、アプリケーションをハイジャックするためのシェルコードを作成できます。
ランダムデータを送信しないファザーは、ここではおそらくより便利です。 「ABBCCCDDDD ...」のようなパターンを送信すると、より高速な結果を得るためにバイナリ検索に似たものを使用できるため、オーバーフローに必要なバッファの正確なサイズを正確に示すのに役立ちます。
ネットワークサービスからの応答は、いくつかの明確に定義された広範なカテゴリの1つに分類されます。たとえば、HTTPサービスにランダムなデータを送信すると、多くのHTTP 400の結果と、おそらく他のいくつかのHTTP 4XXの結果が返されると予想されます。タイムアウトや別の応答など、ELSEが発生した場合は、その異常な結果に注目し、後でさらに調査する価値があります。