
Erzeuge ein Favicon, das zu einem beliebigen Ziel-Hash auf Shodan führt
Generiere ein Favicon, das auf Shodan zu einem beliebigen Ziel-Hash führt
Dieses Tool implementiert eine Brute-Force-Methode zur Erzeugung eines beliebigen Preimage für den Shodan http.favicon.hash-Algorithmus. Du kannst zum Beispiel dafür sorgen, dass deine Website bei der Suche nach einem bestimmten Hash deiner Wahl angezeigt wird:
Mehr über die Methode und Implementierung erfährst du in meinem Blogbeitrag hier:
"How I got a Shodan Favicon Hash = 1337"
Zuerst installiere Rust, die Programmiersprache, in der dieses Projekt geschrieben ist, um es aus dem Quellcode zu bauen. Dann machen diese Befehle daraus eine optimierte ausführbare Datei:
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
Nimm eine beliebige vorhandene .ico-Datei und übergib sie als erstes Argument. Optional kannst du einen anderen Ziel-Hash als den Standardwert 1337 wählen:
$ 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`
Die Datei output.b64 ist die kodierte Form, die per MurmurHash3 zu deinem Ziel-Hash führt, aber du kannst sie auch in eine reguläre .ico-Datei dekodieren. Dann kann verify.py verwendet werden, um zu prüfen, ob der Hash tatsächlich korrekt ist:
$ base64 -di "output.b64" > output.ico
$ ./verify.py output.ico
31337