沈传宁谈安全:无线网络接入(WPA2)密码的破解过程

发表时间:2022-05-09 22:04

一、关于这篇文章的说明

WIFI基本上是目前企业、家庭、公共场合广泛使用的互联网接入方式,出于安全的考虑,很多无线局域网的接入都设置了接入密码,目前很多无线接入点都使用WPA2进行加密。这种加密相比过去WEP安全性要高很多,对WPA2的破解基本还是靠暴力破解,本文就是对无线局域网介入密码暴力破解的过程说明。通过这个实操过程,是让大家了解,很多攻击并不是需要多高的技术,只是简单的敲几行命令而已,同时也通过这个案例,告诉大家设置一个好的口令是多么重要。类似这样的文章网上已经很多了,本来想转一个就可以,不过考虑到版权问题,并且很多文章也写得不够详细,最后还是决定自己做一次,把过程记录下来,形成这个实操的文章。

破解工具:Aircrack-ng,一个包含多个小工具的无线网密码破解套件。其中破解中会使用到:

airmon-ng airodump-ng aireplay-ng aircrack-ng

本文案例中使用manjaro linux 20.04,Aircrack-ng也有windows版本,不过从安装、使用的角度上来说,还是linux来得更方便。Aircrack-ng内置在渗透测试最常用的kali Linux中,不过绝大部分Linux都很容易从软件库中安装。如果想学习渗透,Linux还是要玩玩的,话说现在Linux生态已经不错了,基本日常可用。


二、软件安装:

   Manjaro Linux中安装aircrack-ng还是很容易的,一条命令就搞定。

Sudo pacman -S aircrack-ng


可以看到,因为我已经安装过了,所以系统问是否重新安装。不同的linux安装命令不同,例如ubunt应该就是 sudo apt-get install aircrack-ng(估计的,没装ubuntu,所以不知道是否能安装上。)

安装好以后,就可以开始进行破解了。下面的命令如果执行出错,可以看看是否网卡兼容,部分无线网卡可能由于驱动或兼容性问题无法使用,这个只能靠换网卡解决,或者买个外置的无线网卡解决。

三、破解过程

破解的过程分为五个步骤,分别是1)网卡设置 2)无线网络探测 3)嗅探抓包 4)攻击 5)密码破解

1)网卡设置

为了进行抓包,首先要把网卡设置为混杂模式,什么是混杂模式不解释,请百度。

首先查看无线网卡的名称,使用命令:

Ifconfig

可以看到我这台计算的无线网卡名称是 wlp3s0,很多系统一般都是wlan0之类的。总之先找到无线网卡的名称。

然后把无线网卡设置为监听模式,使用如下命令

Sudo airmon-ng start wlp3s0

如果成功了,用Ifconfig可以看到无线网卡已经开始监听模式了,名称变为 wlp3s0mon


如果没成功,或者为了确保网卡监听模式正常工作,可以重启一下网卡。

sudo ifconfig wlp3s0mon down

sudo iwconfig wlp3s0mon mode monitor

sudo ifconfig wlp3s0mon up

这样,网卡就设置好了。

2)无线网络探测

使用命令探测目前周边的无线局域网

Sudo airodump-ng wlp3s0mon


可以看到周边的一些WIFI的名称(SSID),我把其中一些给涂抹了一下,避免泄漏信息。选择从上往下数的第四个无线网进行破解(红框中的)。从探测信息中可以知道,无线路由器的MAC地址,当前使用的频道(CH)是 1,还有就是SSID了。

3)嗅探抓包

需要使用嗅探器抓取一段会话报文用于后期的破解。使用命令如下:

sudo airodump-ng --ivs --bssid E4:F3:E8:D6:E5:1E -w nisp -c 1 wlp3s0mon

--ivs 抓取报文的存储格式

--bssid 路由器的MAC地址,这个在上面的探测中已经找到

-w 抓取的报文输出存储的文件名称,软件自动对存储报文的文件名进行编号,我们这里使用了nisp,生成文件应该是nisp-01.ivs,第二次再抓就生成nisp-02.ivs依次类推。

-c 1 频道,刚才探测中路由器使用的频道


然后看到抓包的结果了,保持这个不动,再开一个终端,进行下一步攻击

4)攻击

这个步骤是为了获取一次完整的WPA2握手验证的过程,因此需要把一个合法连接到这个路由器的客户端给强制断开,让这个客户端重新连接路由器,然后获取这次握手验证的过程。这个步骤软件会发送一种称之为“deauth”的数据包将指定的终端强制断开。

新开一个shell,原来的抓包的shell保留,让他一直抓包。

在新的shell中执行以下命令

sudo aireplay-ng -0 1 -a E4:F3:E8:D6:E5:1E -c 48:FD:A3:F9:1B:C8 wlp3s0mon

-0 采用deauth攻击模式,后面跟上攻击次数,这里我设置为1,可以根据实际情况设置更多,一般发几个包就可以断掉了,不用太多。如果你设置太多,就变成拒绝服务攻击了,不停的将终端强制断开。 -a 路由器的mac地址 -c 被攻击的客户端mac地址

命令执行后如下图

如果执行成功,抓包的shell上面会出现一个变化,如下图

可以看到右上角多了一个WPA handshake(红框内),这就说明攻击成功,抓到了握手验证的会话报文。如果没出现,就继续执行上面的命令。我第二次执行后就成功了。

这时候可以CTRL+C终止抓包过程了。

5)密码破解

最后就是使用软件进行口令的暴力破解了。破解需要使用口令字典,至于字典怎么来?可以网上下载现成的密码字典,也可以使用字典生成软件生成。破解效率跟字典好坏相关性很大。不过这不属于今天要介绍的内容。

执行以下命令:

sudo aircrack-ng -w /home/shencn/下载/password/birthday1950-2030.txt nisp-01.ivs

-w 破解用字典文件,这里我使用了一个自己用字典生成器生成的生日类密码字典,包括8位生日和6位生日,生日时间从1950.01.01-2030.12.31。例如1970年1月1日生日,字典中生成两个密码:19700101和700101,基本覆盖了目前使用生日,纪念日做密码的所有组合。

最后nisp-01.ivs是刚才抓包生成的文件。

这样的密码破解完成,用时43秒。也就是说,如果你用生日、纪念日作为密码,43秒就破解出来。

这是跑完后的截图,没跑出密码,如果跑出来了,在KEY NOT FOUND这里就会出现破解出来的密码了。显示为:KEY FOUND :XXXXXXXX。

通过这个实战破解过程,我们可以看出,破解其实并不是太复杂的一件事,简单掌握几个Linux命令,会使用密码字段就可以做到。入侵、破解很多时候只是技能,不是技术,会干这个也不是真正的专家。一个稍微懂Linux的经过半天培训,就能把无线网络破解学会了。如果想在网络安全、渗透测试这条道路一直走下去,成为真正的专家。那么这些技能前期可以稍微玩玩,但要想走好,还需要真正学习掌握更多的知识,例如无线网的工作原理、TCP/IP协议、WPA2工作过程等知识都需要好好学习,在其他领域也一样。持续学习,持续成长。

本文是“成为优秀渗透测试工程师”系列文章之一。


CISP
CISP-PTE
CISSP
ITIL4
NISP
如需更多了解请致电 18410890065