HashPump
様々なハッシュアルゴリズムについて、Length Extension Attackを行うためのツールである。 CRC32, MD5, SHA1, SHA256, SHA512に対応している。
使い方
hash(UNKNOWN ~ 初期既知文字列) = 既知ハッシュ
となることが分かっているとする。付与したい文字列をstrとして、
hash(UNKNOWN ~ 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列)
を求めるには、次のようなコマンドを実行する。
$ hashpump -s (既知ハッシュ) -d (data) -k (UNKNOWNの長さ) -a (追加文字列) 出力1行目: hash(UNKNOWN ~ 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列) 出力2行目: 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列
md5に対して攻撃を行う例。
$ hashpump -s 13c786aa2625fe2597aaeef121ff3a68 -d a -k 7 -a aa 8a483d9649f8cad04d0241ab18ae8f4e a\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00aa
実際にはUNKNOWNの長さは分からないことが多いので、様々な数字を試して特定することになる。
インストール方法
$ git clone https://github.com/bwall/HashPump $ cd HashPump $ make $ sudo make install
make installしなくとも、生成されたHashPumpコマンドを叩けば利用することが出来る。
その他
- 既知データの長さが0の場合は入力欄が与えられるが、そこにEOFを入れれば良い。