
Shodan에서 원하는 대상 해시를 생성하는 파비콘 생성
Shodan에서 원하는 대상 해시를 결과로 내는 favicon을 생성합니다
이 도구는 Shodan http.favicon.hash 알고리즘에 대한 임의의 preimage를 생성하는 무차별 대입 방식을 구현합니다. 예를 들어, 원하는 특정 해시를 검색했을 때 자신의 사이트가 나타나도록 만들 수 있습니다:
방법과 구현에 대한 자세한 내용은 제 블로그 글에서 확인하세요:
"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