欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Kali 从初学者到银手镯(二):开启 WPS 的无线网络渗透测试

最编程 2024-03-23 14:36:21
...

很多无线路由器都支持WPS(Wifi Protection Setup)功能,它是一种可以让用户无需密码直接连接Wifi的技术。本来这种技术的初衷是让用户更加方便的连接网络,但是因为它有严重的安全漏洞,所以反而让用户的网络更加不安全。因此在这里推荐大家使用路由器的时候没事就把WPS功能关掉。

准备工作

开启WPS功能

因为要进行渗透测试,所以首先我先把自己路由器的WPS功能开启,当然测试结束之后别忘了关闭WPS功能。

开启WPS功能

Kali Linux

使用前一篇文章介绍的方法安装好Kali虚拟机或者U盘系统,然后就可以准备开始了。

Kali系统

使用到的工具

当然这里使用到的工具并不是只有Kali能用,其他Linux发行版也可以使用。但是还是推荐Kali,因为很多渗透测试工具都是按照安防论文的理论来实现的,很多都已经不再维护了。而Kali收集了很多尚在维护的工具分支,如果你使用其他发行版的话,可能其软件仓库中的版本还是原来的旧版本。

本文比较简单,涉及到的工具有两个,reaver和aircrack-ng。

无线网卡

我用的是台式机安装的Kali虚拟机系统,自然是没有无线功能的,所以需要一块无线网卡。值得称道的是现在Linux驱动非常完善了,我原来买的360无线网卡可以直接驱动成功。

连接方法也十分简单,电脑插上无线网卡,然后在VMware软件右下角找到无线网卡的图标,点击并选择连接到虚拟机,这样就大功告成了。整个系统可能会卡几秒钟,之后就正常了。


连接无线网卡

连接成功后,在Kali虚拟机中应该可以看到Wifi图标了,用lsusb命令还可以查看到无线网卡的厂商和具体型号,可以看到我的无线网卡具体型号是MT7601U。


查看USB无线网卡

将无线网卡设置为监听模式

首先输入sudo airmon-ng命令查看一下当前系统中的无线网卡,在Kali中这个接口名默认应该是wlan0。

无线网卡

然后输入下面的命令关闭可能影响网卡监听的程序,然后开启监听模式。开启完毕之后,再次输入sudo airmon-ng,应该就会看到这次接口名变成了wlan0mon,这样就说明成功开启了监听模式,可以进行下一步了。

sudo airmon-ng check kill
sudo airmon-ng start wlan0

扫描网络

输入下面的命令开始扫描附近的无线网络。

sudo wash -i wlan0mon

稍后应该就会显示出附近开启了WPS的所有网络了,dBm是信号大小,值越小说明信号越强,按Ctrl+C即可中断命令。如果想要查看所有网络的话,可以添加-a参数,它会列出所有网络(包括了未开启WPS功能的网络)。

这时候就要记下来网络的BSSID(网络Mac地址)以及ESSID(网络名称),准备好下一步的工作了。

image.png

尝试PIN

好了,下面就可以开始正式的工作了,其实说起来原理也很简单,WPS PIN是一个8位数字密码,所以其实我们要做的就是不断的尝试,最终找到这个PIN。总共需要尝试的次数有一亿次,看起来这个数字非常大,但是在安全领域,一亿次算是一个非常小的次数了,很多加密算法要攻破甚至需要全世界所有计算机同时计算几百年。

当然要搞定WPS的PIN并不需要这么长时间,最多10来个小时就可以了,平均用时可能也就4-5个小时左右。而且一旦知道了PIN,获得WIFI密码仅需要数秒即可搞定。之后只要PIN码没有发生变化,就算WIFI密码被修改,也可以很轻松的搞定。

reaver命令行介绍

接下来就要轮到本文的主角登场了,这就是reaver,专门用于破解WPS Wifi网络的工具。输入-h参数即可查看帮助信息,这里简单列出一些我们要使用的参数。

  • -i,开启了监听模式的网络接口名
  • -b,要探测的Wifi的BSSID
  • -c,成功破解之后运行的命令
  • -5,使用5G信道
  • -v,显示具体信息,-vv或者-vvv可以显示更加详细的信息
  • -q,仅显示关键信息
  • -p,要使用的PIN
  • -d,尝试PIN之间的间隔时间(默认1)
  • -l,如果路由器锁定尝试PIN,等待的时间(默认60)
  • -g,最大尝试次数,到达次数之后命令会停止
  • -x,10次意外失败之后的等待时间(默认0)
  • -t,接收超时周期(默认10)
  • -F,忽略帧校验错误

详细参数参考reaver的帮助,并不难懂。

开始破解

了解了reaver命令行的用法之后,就可以正式开始了。很多时候一次可能并不能成功,需要尝试多次。

因为是测试,所以我干脆直接指定了PIN的值。为了更详细的了解命令运行过程,可以开启2级或者3级输出看看reaver工具到底干了啥。

sudo reaver -i wlan0mon -b BC:D1:77:76:39:06 -p 81103355 -vv

如果出现了下面的bad FCS,可以在添加-F参数忽略帧校验错误,然后再次尝试。

出现错误

如果一切正常的话,应该会在几分钟内通过PIN解开WIFI的密码。如果不知道PIN密码的话,也可以通过几个小时的尝试来试出PIN进而得知WIFI密码。因此我们在日常使用的时候,一定要记得关掉WPS功能,它是很多漏洞的根源。