重见天日,用hashcat来恢复rar密码
2023 Sep 07
See all posts
起因:我以前对文件加密一直喜欢用winrar,虽然知道GnuPG,但是太复杂,要么把密钥搞丢,要么把加密后的文件本身都搞丢了,而且GnuPG还可以多次反复加密也是一个坑,也不直观。
问题来了:某个2005年加密后的文件还在,但是密钥死活记不起来了,只记得当时还搞得挺复杂的,大小写字母,数字,标点都有。
哈,快20年了,尝试过好几次,结果都是——"每冒风驰行,未百步辄返"
:(
既然现在显卡这么厉害,和几年前几十年前不可同日而语,是不是应该再冲击一次了?于是就有了下文:
首先用rar2john.exe
对rar进行特征字符串生成,得到形如
zzzz.rar:$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************:0::::e:\code\zzzz.rar
从字符特征来看,2005年的时候肯定只有rar3,rar5出来是以后的事情,没毛病。
尝试:接下来就是漫长的字典碰撞
./hashcat.bin --cpu-affinity=1,2,3,4,5,6,7,8 -a 3 -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' ?l?l?d?d?d
./hashcat.bin -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' ?l?l?d?d?d
失败。
把自己常见的密码,比如字母肯定是那几组字母,数字肯定只是常见的那几个如年份吧,收集起来存为字典:
./hashcat.bin -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' -a 1 eg.dict eg.dict
./hashcat.bin -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' -a 6 eg.dict eg.dict ?d?d?d?d
依然失败,字典加规则
./hashcat.bin -a 3 -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' eg.hcmask --rule eg.rule
./hashcat.bin -a 0 -m 12500 --force '$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************' example.dict --rules-file eg.rule
失败。
黔驴技穷,字典还是太小,非常容易遗漏。
走投无路,先休息几天zzZZZ......
想来想去,还是找网上现成的字典靠谱——我等凡夫俗子应该不是天选之子,会设计出一个别人从来没有用过的古怪精灵的密码规则——那样不是给自己过不去吗?
于是马上动手再找,找到Probable-Wordlists,用迅雷把种子拖下来,嚯,字典都是几百M到几个G,靠谱。
然后重新跑。
一天又一天......
奇迹出现:
$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************
Session..........: hashcat
Status...........: Cracked
Hash.Name........: RAR3-hp
Hash.Target......: $RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz
Time.Started.....: Wed Sep 6 xx:xx:xx 2023, (1 hour, 34 mins)
Time.Estimated...: Wed Sep x xx:xx:xx 2023, (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (Top109Million-probable-v2.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 3969 H/s (99.18ms) @ Accel:1 Loops:16384 Thr:128 Vec:1
Speed.#2.........: 3947 H/s (97.57ms) @ Accel:1 Loops:16384 Thr:128 Vec:1
Speed.#*.........: 7916 H/s
Recovered........: 1/1 (100.00%) Digests
Progress.........: 44886016/109438614 (41.01%)
Rejected.........: 0/44886016 (0.00%)
Restore.Point....: 44871680/109438614 (41.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:245760-262144
Restore.Sub.#2...: Salt:0 Amplifier:0-1 Iteration:212992-229376
Candidate.Engine.: Device Generator
Candidates.#1....: ge$ticul4ti0n -> gatex5537
Candidates.#2....: gatex1994 -> gareggiate4
Hardware.Mon.#1..: Temp: 34c Util:100% Core:1328MHz Mem: 715MHz Bus:16
Hardware.Mon.#2..: Temp: 33c Util:100% Core:1328MHz Mem: 715MHz Bus:16
Started: Wed Sep 6 xx:xx:xx 2023
Stopped: Wed Sep x xx:xx:xx 2023
conclusion
软件伟大,算力伟大,字典伟大,闪闪发亮的一天
重见天日,用hashcat来恢复rar密码
2023 Sep 07 See all posts起因:我以前对文件加密一直喜欢用winrar,虽然知道GnuPG,但是太复杂,要么把密钥搞丢,要么把加密后的文件本身都搞丢了,而且GnuPG还可以多次反复加密也是一个坑,也不直观。
问题来了:某个2005年加密后的文件还在,但是密钥死活记不起来了,只记得当时还搞得挺复杂的,大小写字母,数字,标点都有。
哈,快20年了,尝试过好几次,结果都是——"每冒风驰行,未百步辄返" :(
既然现在显卡这么厉害,和几年前几十年前不可同日而语,是不是应该再冲击一次了?于是就有了下文:
首先用rar2john.exe 对rar进行特征字符串生成,得到形如
zzzz.rar:$RAR3$*0*zzzzzzz*zzzzzzzzzzzzzzzzz:************:0::::e:\code\zzzz.rar
从字符特征来看,2005年的时候肯定只有rar3,rar5出来是以后的事情,没毛病。
尝试:接下来就是漫长的字典碰撞
失败。
把自己常见的密码,比如字母肯定是那几组字母,数字肯定只是常见的那几个如年份吧,收集起来存为字典: 依然失败,字典加规则失败。
黔驴技穷,字典还是太小,非常容易遗漏。
走投无路,先休息几天zzZZZ......
想来想去,还是找网上现成的字典靠谱——我等凡夫俗子应该不是天选之子,会设计出一个别人从来没有用过的古怪精灵的密码规则——那样不是给自己过不去吗?
于是马上动手再找,找到Probable-Wordlists,用迅雷把种子拖下来,嚯,字典都是几百M到几个G,靠谱。
然后重新跑。
一天又一天......
奇迹出现:
conclusion
软件伟大,算力伟大,字典伟大,闪闪发亮的一天