
Сгенерировать favicon, который даёт любой целевой хеш в Shodan
Создайте favicon, который даёт любой целевой хеш в Shodan
Этот инструмент реализует метод полного перебора для генерации любого прообраза для алгоритма 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