ログイン
編集不可のページディスカッション情報添付ファイル
"CTF/Toolkit/HashPump"の差分

MMA
5と6のリビジョン間の差分
2015-01-23 17:19:03時点のリビジョン5
サイズ: 2035
編集者: nomeaning
コメント:
2015-01-26 16:54:22時点のリビジョン6
サイズ: 2089
編集者: nomeaning
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
## page was renamed from CTF/inside/Toolkit/HashPump

HashPump

様々なハッシュアルゴリズムについて、Length Extension Attackを行うためのツールである。 CRC32, MD5, SHA1, SHA256, SHA512に対応している。

使い方

hash(UNKNOWN ~ 初期既知文字列) = 既知ハッシュ

となることが分かっているとする。付与したい文字列をstrとして、

hash(UNKNOWN ~ 初期既知文字列 ~ 何らかの文字列 ~ 追加文字列)

を求めるには、次のようなコマンドを実行する。

$ hashpump -s (既知ハッシュ) -d (既知初期文字列) -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を入れれば良い。
  • 標準入出力 or 引数でしかデータが渡せないため、ヌル文字('\0')をデータに含めることが出来ない。

CTF/Toolkit/HashPump (最終更新日時 2015-01-29 19:00:41 更新者 nomeaning)