
Genera un favicon que resulte en cualquier hash objetivo en Shodan
Genera un favicon que resulte en cualquier hash objetivo en Shodan
Esta herramienta implementa un método de fuerza bruta para generar cualquier preimagen para el algoritmo http.favicon.hash de Shodan. Puedes, por ejemplo, hacer que tu sitio aparezca al buscar un hash específico de tu elección:
Lee más sobre el método y la implementación en mi publicación de blog aquí:
"How I got a Shodan Favicon Hash = 1337"
Primero, instala Rust, el lenguaje de programación con el que está hecho este proyecto, para compilarlo desde el código fuente. Luego estos comandos lo convierten en un ejecutable optimizado:
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
Toma cualquier archivo .ico existente y pásalo como primer argumento. Opcionalmente, elige un hash objetivo diferente al predeterminado 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`
El archivo output.b64 será la forma codificada que, mediante MurmurHash3, produce tu hash objetivo, pero también puedes decodificarlo en un archivo .ico normal. Luego se puede usar verify.py para comprobar si el hash es realmente correcto:
$ base64 -di "output.b64" > output.ico
$ ./verify.py output.ico
31337