如何使用hashcat破解zip压缩包密码?
作者:FancyPig | 发布时间: | 更新时间:
前言
前几天受邀参加了四川省某公安的线上比武,当然,拿到第一是必然的了😊
不过这都不重要,重要的是里面有一些题还是蛮有趣的,我们这几天会陆续给大家做个分享。
相关阅读
说到对文件的密码暴力破解我们其实之前有讲过
data-postsbox="{"id":5494,"title":"【视频教程】如何高效、优雅地破解密码?hydra、Hashcat你值得拥有!","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2021/12/20211218022439993.png","cover_video":"","views":5287,"comment_count":167,"category":"cybersecurity","is_forum_post":false}">{"id":5494,"title":"【视频教程】如何高效、优雅地破解密码?hydra、Hashcat你值得拥有!","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2021/12/20211218022439993.png","cover_video":"","views":5287,"comment_count":167,"category":"cybersecurity","is_forum_post":false}
data-postsbox="{"id":6374,"title":"如何使用hashcat破解office文档密码?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":4404,"comment_count":2,"category":"knowledge","is_forum_post":false}">{"id":6374,"title":"如何使用hashcat破解office文档密码?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":4404,"comment_count":2,"category":"knowledge","is_forum_post":false}
data-postsbox="{"id":2210,"title":"Kali linux最新版 安装方法以及常见问题解答","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":6747,"comment_count":28,"category":"cybersecurity","is_forum_post":false}">{"id":2210,"title":"Kali linux最新版 安装方法以及常见问题解答","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":6747,"comment_count":28,"category":"cybersecurity","is_forum_post":false}
题目要求
给了一个名为crack.zip的压缩包,并提示我们,压缩包的密码是女朋友的生日
但它只记得女朋友是1999年的了,具体几月几号清不清楚了
举例:女朋友的生日假如是1月1日,那么密码就是19990101
需要破解的压缩包我们也分享上,看看你们能不能破解出来

视频讲解
图文教程
首先我们需要选择-a、-m参数对应的正确代码
-m的代码选择
-m的代码意味着哈希类型的选择
我们运行下面的命令
zip2john crack.zip
可以看到其hash值如下
$pkzip2$1*1*2*0*19*d*32deff4e*0*26*0*19*32de*7d0b*10dab058f7ecafa5ccc992654f3e2c013e11905d15601d5afd*$/pkzip2$
我们可以看到前面的提示是pkzip2,所以我们需要查阅其对应的代码,点击这里查询

这里可以看到我们的是PKZIP,所以下面的-m 代码要选择要么是17200、要么是17210,到时候试一下看就好了
-a的选择
攻击模式,-a的代码选择
| # | Mode | 解释 |
|---|---|---|
| 0 | Straight | 给定一个字典,hashcat会逐行读取字典中的内容,计算每行的hash值,与目标hash值相比较。 |
| 1 | Combination | 组合两个密码字典的内容 |
| 3 | Brute-force | 给定Mask字符集的各种各样的组合(对应的Mask字符集参考下面) |
| 6 | Hybrid Wordlist + Mask | 字典与Mask组合 |
| 7 | Hybrid Mask + Wordlist | Mask与字典组合 |
我们要破解的是生日的1999XXXX中的XXXX部分,因此,我们可以选择用第三者组合方式再配合Mask字符集,因此这里-a 3
Mask字符集变量的含义
| ? | Charset | 解释 |
|---|---|---|
| l | abcdefghijklmnopqrstuvwxyz | 代表小写字母 |
| u | ABCDEFGHIJKLMNOPQRSTUVWXYZ | 代表大写字母 |
| d | 0123456789 | 代表纯数字 |
| h | 0123456789abcdef | 代表数字、小写字母 |
| H | 0123456789ABCDEF | 代表数字、大写字母 |
| s | ! “#$%&'()*+,-./:;<=>?@[\]^_`~{|} | 代表特殊字符 |
| a | ?l?u?d?s | 代表大小写字母、数字以及特殊字符 |
| b | 0x00 – 0xff |
我们要破解的生日,前面的1999已经确定了,后面是4位纯数字,可以看到Mask字符集里代表纯数字的是?d
因此我们要爆破的应该这么写,--increment 1999?d?d?d?d
破解crack.zip
上面分解步骤合在一起就是完整的命令了
hashcat -a 3 -m 17210 '$pkzip2$1*1*2*0*19*d*32deff4e*0*26*0*19*32de*7d0b*10dab058f7ecafa5ccc992654f3e2c013e11905d15601d5afd*$/pkzip2$' --increment 1999?d?d?d?d -o output.txt

几乎是一秒就运行完了,我们可以看到结果,解压密码是1990213

我们可以试下

成功解压
