问题描述
如何配置 John the Ripper 以仅从单词列表生成损坏的(巨型)回文以破解密码哈希? (我用谷歌搜索过,但只找到了 "how to avoid palindromes")
解决方法
在 john/john.conf
中(例如 9 和 10 个字母的回文) - 在末尾附加以下规则:
# End of john.conf file.
# Keep this comment,and blank line above it,to make sure a john-local.conf
# that does not end with \n is properly loaded.
[List.Rules:palindromes]
f
f D5
然后使用您的词表和新创建的“回文”规则运行 john
:
$ john --wordlist=wordlist.lst --rules:palindromes hashfile.hash
rule f
简单地将自身的反射附加到词表中的当前词,例如P4ss! -> P4ss!!ss4P
rule f D5
不仅反映单词,而且删除 5th 个字符,例如P4ss! -> P4ss!ss4P
我还没有找到“删除中间字符”的方法,所以到目前为止,必须将规则调整为所需的回文长度,例如f D4
表示 7 的长度,f D6
表示 11 的长度等
编辑:可变长度的可能解决方案(尚未测试):
f
Mr[6
M
= 记住当前单词,r
= 反转整个单词,[
= 删除第一个字符,6
= 将保存到内存中的单词添加到当前单词前
使用这种方法,回文还可以“由内而外”(单词列表中的单词位于生成的回文末尾而不是开头)
f
Mr[6
Mr]4
M
= 记住当前单词,r
= 反转整个单词,]
= 删除最后一个字符,4
= 将保存到内存中的单词附加到当前单词中