
Shodan上で任意のターゲットハッシュを生成するfaviconを作成する
Shodan 上で任意のターゲットハッシュを生成する favicon を作成する
このツールは、Shodan http.favicon.hash アルゴリズムに対する任意のプリイメージを生成するブルートフォース手法を実装しています。たとえば、自分で選んだ特定のハッシュで検索したときに自分のサイトが表示されるようにすることができます:
手法と実装の詳細については、こちらのブログ記事をご覧ください:
"How I got a Shodan Favicon Hash = 1337"
まず、このプロジェクトの作成に使用されているプログラミング言語である Rust をインストールして、ソースからビルドします。次に、以下のコマンドで最適化された実行ファイルを作成します:
git clone https://github.com/JorianWoltjer/shodan-favicon-preimage.git && cd shodan-favicon-preimage
cargo build --release
./target/release/shodan-favicon-preimage --help
Usage: shodan-favicon-preimage [OPTIONS] <INPUT> [TARGET]
Arguments:
<INPUT> File to compute hash on
[TARGET] The target hash to find (32 bits) [default: 1337]
Options:
-o, --output <OUTPUT> Output file to store the base64 encoded content [default: output.b64]
-h, --help Print help
既存の .ico ファイルを用意し、最初の引数として渡します。必要に応じて、デフォルトの 1337 以外のターゲットハッシュを指定することもできます:
$ shodan-favicon-preimage favicon.ico 31337
Aligning input...
State: 2363324422 @ 20948 bytes
Starting search...
SUCCESS: Found hash=31337 for input 4107189463 ("17zO9A==\n")
Wrote result to "output.b64"
Decode it using `base64 -di "output.b64" > output.ico`
output.b64 ファイルは、MurmurHash3 でターゲットハッシュになるエンコード形式ですが、通常の .ico ファイルにデコードすることもできます。その後、verify.py を使用してハッシュが実際に正しいかどうかを確認できます:
$ base64 -di "output.b64" > output.ico
$ ./verify.py output.ico
31337