D-Link DCS 5222LB IPカメラを持っています。 IPカメラをブルートフォースで攻撃しようとしています。カメラは基本的なHTTP認証を使用します。次のコマンドを使用します。
hydra -l admin -P passlist.txt -t 3 http://IP_address
問題は、3分の差でこのコマンドを実行すると、hydraが正しいパスワードを提供し、それ以外の場合は間違ったパスワードを提供することです。
私はネットワークパケットを調べて、Formメソッドを使用しているかどうかを確認しましたが、パスワードが正しいか間違っていて、Hydraがどちらが正常な応答であるかを知らない場合、カメラサーバーが同じ応答を返すことがわかりました。
私のヒドラに(http-post-formを使用せずに)正しい応答と間違った応答の違いを伝える方法はありますか?
私は問題を理解しました。 Hydraは、401を失敗応答、200を「成功」応答と見なします。また、403を成功の応答と見なします。私のIPカメラは、ヒドラがブルートフォースを狙っていることを識別するのに十分スマートです。最初は、間違ったパスワードの場合は401を返し、正しいパスワードの場合は200を返します。私がすぐに再試行すると、何か怪しいことがここで起こっていることがわかり、401ではなく403で応答します(Hydraは403を成功応答として受け取ります)。 3分以上待つと再び401で応答し始めます。
まず、wget -S
またはcurl -i
(またはパケットインスペクション)でWWW-Authenticate:
ヘッダー付きのHTTP 401を返すことを確認して、本当に基本認証を使用していることを確認する必要があります。 hydra
は使いにくいので、当て推量が少ないほど設定が優れています。通常、インターセプトプロキシを介して、成功したログインと失敗したログインの両方をキャプチャして確認します。
次に、最近の公式(thc) hydra
を使用していますか? -t
オプションは同時実行用であり、いかなるタイプの時間制限もありません。最も重要なのは、プレーンな "http://"がサポートされていない 、これには明示的に「http-get://」を使用する必要があります。 GUIを使用している場合、おそらくそれは2番目の推測であり、実際のhydra
に代替の引数を提供しています。
返信コンテンツ内で一致する「成功」文字列を必要とするhttp-form*
モジュールとは異なり、http-get
モジュールは、HTTP 2xx、3xx、403、または404コードで成功すると想定します。
ターゲットデバイスがカメラであることを考えると、単一のタスクがおそらく最善であり、信頼できる結果を得るには、それを遅くする必要さえあるかもしれません(hydra
オプション-W
および-c
を参照)。 。