目录 前言:为什么选择Linux服务器 当下,破解WiFi密码主要有两种主流方法:握手包破解和WPS破解。然而,WPS破解仅适用于无线路由器,而在陌生街道或办公场所,手机热点的信号通常比无线路由器更强。因此,握手包破解更为普适。作为最快的密码恢复工具之一,hashcat支持GPU加速计算,相关测试表明,利用GPU计算密码的速度是同等级别CPU计算速度的几百倍。这种速度无需多言。然而,作为一名经济拮据的学生,购买一款适用于hashcat的显卡并不现实。幸运的是,最近我参与了一个深度学习项目,接触到了云服务器领域。实际测试发现,云服务器既便宜又快速。我使用的是AutoDL平台,这并非推销,但确实非常实惠。在这个前提下,我的好朋友将他的手机热点设为目标,让我进行破解,于是我产生了兴趣,不多说废话,直接开始。
一、握手包的抓取 关于握手包的抓取,我在kali系统中使用aircrack进行了抓取,这里不再详述,大家可以参考这位博主的博客。按照流程进行基本上没有问题。这是我抓取到的握手包。
二、握手包格式转换cap to hc22000 现在很多关于hashcat的博客都提到将cap格式转换为hccap格式,但实际上这种格式已经不适用于现在的hashcat版本。在hashcat 6.0版本之后,-m 2500和-m 16800已经更改为-m 22000。因此,现在握手包转换后的格式是hc22000。可以在hashcat官网上进行格式转换,转换路径如下。转换结果如下。
三、Linux服务器的环境配置 在云服务器平台上,我创建了一个用于hashcat计算的实例,配备了一张普通的2080ti显卡,但比我的笔记本上的GTX1650要好得多。可以使用uname -a命令查看服务器的系统,我使用的是Ubuntu。由于服务器上的apt版本较低,所以为了成功安装hashcat,必须更新apt和sudo的列表,否则会报错,通常是”unable to locate package”的错误。基本步骤如下:
第一步:apt更新
apt-get update
第二步:sudo版本更新
sudo apt-get upgrade
第三步:安装hashcat
apt install hashcat
配置好服务器环境后,可以调用hashcat中的命令来查看您的显卡及其对应的驱动是否支持hash计算。输入以下命令来查看服务器配置,这里可以看到我的显卡是2080ti,显存为11GB,设备编号为#1。在计算时,如果不指定,hashcat会优先选择GPU进行计算。
hashcat -I
四、利用hashcat进行哈希破解 hashcat的使用相对简单,在这里简单介绍一下。
-m:破解模式,握手包现在是22000,之前是2500。
-a:破解方法。
-o:结果输出路径。
–custom-charset1:自定义字符集,这里可以自定义4种范围。
–increment-min:最小位数。
–increment-max:最大位数。
这里只列出了一些常用的方法,方便我以后查阅。关于hashcat的用法,有位大佬写了非常全面的指南,链接如下。
个人认为这位大佬写得非常好,hashcat不仅仅适用于握手包破解,还在其他密码破解方面非常强大。在这里,我输入以下命令进行hash破解。
hashcat -a 3 -m 22000 29955_1649255867.hc22000 -o result.txt –custom-charset1 chegakun0123456789 ?1?1?1?1?1?1?1?1
-a 3代表组合破解,-m 22000代表握手包破解模式,-o表示结果输出路径,–custom-charset1相当于自定义了一个组合,因为我有先验知识,我的好朋友告诉我他的密码是8位数字和字母的组合,我猜测字母是他的姓名中的字母。?1?1?1?1?1?1?1?1表示八位数,每位数的范围在–custom-charset1集合中。根据需要,我们还可以创建更多的组合集,如–custom-charset2、3、4等。
在云服务器上运行的结果如下,这是运行中的结果。在运行过程中,可以通过在终端输入命令”s”来实时查看破解状态。从我开始撰写这篇博客到现在,hash计算已经运行了大约两个小时,尝试了约60亿个密码,总密码数为18的8次方,即110亿个。仔细想想…不对劲,hashcat不是声称每秒钟可以尝试1.4亿个密码吗?我已经运行了两个小时,才尝试了60亿个左右。果然,卖家和买家之间总是存在一定的差距。关于速度这个问题,看来还需要深入研究一下,下次我会租用更好的显卡来尝试。
总结 感谢您阅读完这篇博客,这是我的第一篇博客。如果您觉得对您有帮助,可以点个赞或转发。我写这篇博客的原因之一是为了整理自己的学习过程,方便以后查阅;另一方面,也是为了留下一个纪念。下一步,我希望改进的地方是如何提升hash计算的速度,另外,将训练日志记录到一个日志文件中,而不是在终端输出,因为终端有时会刷掉。这也是我在学习yolov5时得到的经验。破解进程已经进行了大约55%,我会为服务器设定一个定时关机,明天等待结果,今晚早点休息。