Password
破解部分密碼已知的 zip 文件
我有一個zip文件,因為我忘記了密碼,所以無法打開。我很確定這個密碼的某些部分,但我不記得我添加到它的變體。我嘗試了 fcrackzip,但我看不出如何表示我知道部分密碼。總結一下:
- 我知道密碼的某些部分,例如“ hello ”、“ world ”和“ shittypass ”。
- 這些部分可以按任何順序排列,並不是所有的都可以使用。
- 可能會出現一些額外的小部分,例如 3 到 5 個小寫字母。
你知道有什麼軟體可以做到嗎?
方法概要:
- 使用 util like
crunch
創建自定義字典文件。- 使用該自定義字典執行
fcrackzip
。問題:
- 多達 3 個字元串與 3 到 5 個小寫字母混合在一起,可以生成超過一萬億個可能的密碼。僅生成該字典將需要一段時間。
crunch
允許使用基於字元的萬用字元,但它對自定義字元串的處理不夠靈活。為了解決這個問題,grep
似乎也需要,其中任何一個都會增加所需的時間,即幾小時,也許幾天sed
……sort
像這樣的東西可能會起作用:
crunch 3 9 abcdefghijklmnopqrstuvwxyz123 | \ grep '[123]' | # at least one number per dict entry egrep -v '([123]).*\1' | # remove repeated numbers sed 's/1/hello/;s/2/world/;s/3/shittypass/' | # replace numbers with strings sort -u | \ fcrackzip -D -p /dev/stdin foo.zip
具有較小問題集的測試案例(一個或兩個字元串,最多兩個小寫字母,任意順序):
echo foo > bar.txt # file to archive zip -P xhellobworld baz bar.txt # archive with password time crunch 2 4 abcdefghijklmnopqrstuvwxyz12 | \ grep '[12]' | egrep -v '([12]).*\1' | \ sed 's/1/hello/;s/2/world/' | \ sort -n | fcrackzip -u -D -p /dev/stdin baz.zip
輸出:
Crunch will now generate the following amount of data: 3163440 bytes 3 MB 0 GB 0 TB 0 PB Crunch will now generate the following number of lines: 637392 PASSWORD FOUND!!!!: pw == xhellobworld real 0m5.942s user 0m2.240s sys 0m1.040s