admin 管理员组

文章数量: 887021

WPA加密简介


WPA实现了大部分的IEEE802.11i标准,是在802.11i完备之前替代WEP的过渡方案。WPA的设计可以用在所有的无线网卡上,但未必能用在第一代的无线接入点上。WPA2实现了完整的标准,但不能在某些古老的网卡上运行。这两者都提供优良的安全能力。本节将对WPA加密做一个简单的介绍。


什么是WPA加密


Wi-Fi联盟给出的WPA定义为:WPA=802.1x+EAP+TKIP+MIC。其中,802.1x是指IEEE的802.1x身份认证标准:EAP(ExtensibleAuthentication Protocol)是一种扩展身份认证协议。这两者就是新添加
的用户级身份认证方案。TKIP(TemporalKeyIntegrity Protocol)是一种密钥管理协议:MIC(MessageIntegrity Code,消息完整性编码)是用来对消息进行完整性检查的,用来防止攻击者拦截、篡改,甚至重发数据封包。
WPA2是WPA的第二个版本,是对WPA在安全方面的改进版本。与第一版的WPA相比,主要改进的是所采用的加密标准,从WPA的TKIP/MIC改为AES-CCMP。所以,可以认为WPA2的加密方式为:WPA2=IEEE 802.11i=IEEE 802.11x/EAP+AES-CCMP。其中,两个版本的区别如图

 WPA2采用了加密性能更好、安全性更高的加密技术AES-CCMP(Advanced Encryption Standard-Counter mode withCipher-block chaining Message authentication code Protocol,高级加密标准-计算器模式密码区块链接消息身份验证代码协议),取代了原WPA中的TKIP/MIC加密协议。因为WPA中的TKIP虽然针对WEP的弱点做了重大的改进,但仍保留了RC4算法和基本架构。也就是说,TKIP亦存在着RC4本身所隐含的弱点。
CCMP采用的是AES(Advanced Encryption Standard,高级加密标准)加密模块,AES既可以实现数据的机密性,又可以实现数据的完整性。

WPA加密工作原理


WPA包括暂时密钥完整性协议(Temporal Key Integrity Protocol,TKIP)和802.1x机制。TKIP与802.1x一起为移动客户机提供了动态密钥加密和相互认证功能。WPA通过定期为每台客户机生成唯一的加密密钥来阻止黑客入侵。
TKIP为WEP引入了新的算法,这些算法包括扩展的48位初始化向量与相关的序列规则、数据包密钥构建、密钥生成与分发功能和信息完整性码(也被称为Michael码)。
在应用中,WPA可以与利用802.1x和EAP(一种验证机制)的认证服务器(如远程认证拨入用户服务)连接。这台认证服务器用于保存用户证书。这种功能可以实现有效的认证控制,以及与己有信息系统的集成。由于WPA具有运行“预共享的密钥模式”的能力,SOHO环境中的WPA部署并不需要认证服务器。与WEP类似,一部客户机的预先共享的密钥必须与接入点中保存的预先共享密钥相匹配。接入点使用通行字进行认证,如果通行字相符合,客户机被允许访问接入点。该连接过程又被称为四次握手,其通信过程如图

WPA弥补了WEP的安全问题


简单地说,WPA就是WEP加密方式的升级版。WPA作为一种大大提高无线网络的数据保护和接入控制的增强安全性级别,的确能够解决WEP加密所不能解决的问题。下面将以表格的形式列出WPA2针对WEP不足的改进,如表 

设置WPA加密模式


通过前面的介绍,用户对WPA模式有了更多的了解,并且可知这种加密方法更能保护用户无线网络中数据的安全。所以,本节将介绍如何设置WPA加密模式。


 WPA认证类型


WPA用户认证是使用802.1x和扩展认证协议(ExtensibleAuthentication Protocol,EAP)来实现的。WPA考虑到不同的用户和不同的应用安全需要。例如,企业用户需要很高的安全保护(企业级),否则可能会泄露非常重要的商业机密;而家庭用户往往只是使用网络来浏览Interet、收发E-mail、打印和共享文件,这些用户对安全的要求相对较低。为了满足用户的不同安全要求,WPA中规定了两种应用模式。如下所述。

企业模式:通过使用认证服务器和复杂的安全认证机制,来保护无线网络通信安全。


家庭模式(包括小型办公室):在AP(或者无线路由器)以及连接无线网络的无线终端上输入共享密钥,以保护无线链路的通信安全。

根据这两种不同的应用模式,WPA的认证也分别有两种不同的方式。对应大型企业的应用,常采用802.1x+EAP的方式,用户提供认证所需的凭证。但对于一些中小型的企业网络或者家庭用户,WPA也提供一种简化的模式,它不需要专门的认证服务器。这种模式叫做“WPA预共享密钥(WPA-PSK)”,它仅要求在每个WLAN节点(AP、无线路由器和网卡等)预先输入一个密钥即可实现。
在无线路由器的WPA加密方式中,默认提供了3种认证类型,分别是自动、WPA-PSK和WPA2-PSK。实际上这3种认证类型基本没区别,由于WPA加密包括WPA和WPA2两个标准,所以认证类型也有两个标准WPA-PSK和WPA2-PSK。 

加密算法


在无线路由器的WPA加密模式中,默认提供了自动、TKIP和AES3种加密算法。如果用户不了解加密算法时,通常会选择“自动”选项。所以,下面将对TKIP和AES加密算法进行详细介绍,以帮助用户选择更安全的加密算法。


1.TKIP加密算法


TKIP(Temporal Key Integrity Protocol,暂时密钥集成协议)负贵处理无线安全问题的加密部分,TKIP是包裹在已有WEP密码外围的一层“外壳”。这种加密方式在尽可能使用WEP算法的同时,消除了已知的WEP缺点。例如,WEP密码使用的密钥长度为40位和128位,40位的密钥是非常容易破解的,而且同一局域网内所有用户都共享一个密钥,如果一个用户丢失密钥将使整个网络不安全。而TKIP中密码使用的密钥长度为128位,这就解决了WEP密码使用的密钥长度过短的问题。
TIKIP另一个重要的特性就是变化每个数据包所使用的密钥,这就是它名称中“动态”的出处。密钥通过将多种因素混合在一起生成,包括基本密钥(即TKIP中所谓的成对瞬时密钥)、发射站的Mac地址以及,数据包的序列号。混合操作在设计上将对无线站和接入点的要求减少到最低程度,但仍具有足够的密码强度,使它不能被轻易破译。WEP的另一个缺点就是“重放攻击(replay attacks)”,而利用TKIP传送的每一个数据包都具有独有的48位序列号,由于48位序列号需要数千年时间才会出现重复,因此没有人可以重放来自无线连接的老数据包。由于序列号不正确,这些数据包将作为失序包被检测出来。

2.AES加密算法


AES(Advanced Encryption Standard,高级加密标准)是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。
总而言之,AES提供了比TKIP更加高级的加密技术,现在无线路由器都提供了这两种算法,不过更倾向于AES。TKIP安全性不如AES,而且在使用TKIP算法时,路由器的吞吐量会下降,并大大影响了路由器的性能。

设置AP为WPA加密模式


WPA是目前最常用的加密方式,属于WPA/WPA2简化版。WPA-PSK/WPA2-PSK不仅支持无线的各种协议,另外,配置相当简单,安全性也高。路由器进去直接改。

创建密码字典


由于目前要使用WPA加密的WiFi网络,只有通过暴力破解和字典法。暴力破解所耗时的时间,正常情况下是不容易算出来的。而字典法破解利用的字典往往是英文单词、数字、论坛D等组合。如果渗透测试人员有一本好字典的话,是可以将密码破解出来的。下面将介绍如何创建密码字典。


使用Crunch工具


Crunch是一种创建密码字典工具,该字典通常用于暴力破解。使用Crunch工具生成的密码可以发送到终端、文件或另一个程序。下面将介绍使用Crunch工具创建密码字典。
Crunch命令的语法格式如下所示。

crunch [minimum length] [maximum length] [character set] [options]
Crunch工具语法中各参数及常用选项含义如下所示。


minimum length:指定生成密码的最小长度。
maximum length:指定生成密码的最大长度。
character set:指定一个用于生成密码字典的字符集。
-b:指定写入文件最大的字节数。该大小可以指定KB、MB或GB,但是必须与-o START选项一起使用。
-c:指定密码个数(行数)。
-d:限制出现相同元素的个数(至少出现元素个数)。如-d 3就不会出现zzf ffffgggg之类的超过了3个相同的元素。
-e string:定义停止生成的密码字符串

-f:调用密码库文件。
-i:改变输出格式。
-1:该选项用于当-t选项指定@、%或^时,用来识别占位符的一些字符。
-m:与-p搭配使用。
-0:用于指定输出字典文件的位置
-p:定义密码元素。
指定读取的密码字典,-9:
-r:定义从某一个地方重新开始生成密码
-s:指定第一个密码。
-t:设置使用的特色格式。@表示小写字母;,表示大写字母;%表示数字;^表示符号。
-z:打包压缩格式。支持的格式有gzip、bzip2、lzma和7z。

实操1

使用Crunch工具,创建一个1~8位字符的密码。执行命令如下所示。

crunch 1 8 从以上输出的信息中,可以看到生成了一个1TB的字典,并且该字典中包含217180147158个密码。
注意:使用Crunch工具创建密码字典时,一定要准备足够的磁盘空间,否则会出现磁盘空间不足的问题。


实操2

使用Crunch工具创建1~6位字符的密码,并且使用abcdef作为字符集。执行命令如下所示。

crunch 1 6 abcdef

实操3 

使用Crunch工具创建一个名为password.txt的密码字典。其中,密码的最小长度为1,最大长度为8,并使用字符集为abcdef12345来生成密码字典。执行命令如下所示。

crunch 1 8 abcdef12345 -o password.txt 从以上输出信息中可以看到,生成了2001MB大小的文件,总共有235794768行。以上命令执行完成后,将在当前目录下生成一个名为password.txt的字典文件

实操4


在Kali Linux中,Crunch工具自带了一个库文件。在该文件中,包含常见的元素组合。如大小写字母+数字+常见符号。该文件默认保存在/usr/share/crunch/charset.lst,其内容如下所示

从以上输出信息中可以看到,有很多组密码的组合,以上显示的内容中,等于号(=)左边表示项目名称,右边表示密码字符集。当用户需要调用该密码库时,通过指定项目名即可实现。例如,使用该密码库中的mixalpha-numeric-all-space项目,来创建一个名为wordlist.txt密码字典,并且设置密码长度最小为1,最长为8。执行命令如下所示。 

从以上输出信息中可以看到,执行完以上命令后,将生成54816TB的密码字典。由于以上组合生成的密码较多,所以需要的时间也很长。

使用pwgen工具


pwgen工具可以生成难以记住的随机密码或容易记住的密码。该工具可以以交互式使用,也可以通过脚本以批模式使用它。在默认情况下,pwgen向标准输出发送许多密码。一般来说,用户不需要这种结果。但是,如果用户希望从中选择一个,手动输入一次性密码是非常有用的。下面将介绍使用pwgen工具生成密码的方法。
pwget工具在Kali Linux中,是默认没有安装的。所以,这里首先介绍安装pwgen工具的方法。由于Kali Linux软件源中提供了该软件包,因此可以直接执行如下命令安装: 

apt-get install pwgen pwgen工具的语法格式如下所示:
pwgen <options><password length> <number of passwords>
该工具常用的选项含义如下所示:
-1:每行输出一个密码。
-c:必须包含大写字母。
-n:必须包含数字。
-s:随机密码

实操1

使用 pwgen 工具创建密码。执行命令如下所示。 pwgen 从以上输出的信息可以看到,pwgen工具随机生成了很多个密码。如果用户想要为AP设置一个比较复杂的密码,可以从生成的密码中选择一个作为AP的密码。用户也可以将以上生成的密码,保存到一个文件中,作为一个密码字典文件。

实操2


为了提高密码的安全等级,使用pwgen工具生成一个包含特殊字符的密码(如感叹号和逗号等)。执行命令如下所示。

以上输出的信息就是新生成的一个密码。从该密码的组合中,可以看到包含一个特殊字符{。

创建彩虹表


彩虹表是一个庞大的,针对各种可能的字母组合预先计算好的哈希值的集合,不仅支持MD5算法,还支持各种算法。使用彩虹表可以快速的破解各类密码。在Kali Linux中,默认提供了一个工具RainbowCrack可以用来生成彩虹表。下面将介绍使用RainbowCrack工具来创建彩虹表。
RainbowCrack工具包括3个程序,分别是rtgen、rtsort和rcrack。这3个程序的作用分别如下所示。


rtgen:彩虹表生成工具,生成口令、散列值对照表。
rtsort:排序彩虹表,为rcrack提供输入。
rcrack:使用排好序的彩虹表进行口令破解。 

使用 rtgen 程序创建彩虹表,其语法格式如下所示。 rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index 或者 rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index -bench 以上语法中各选项及含义如下所示。 hash_algorithm :指定密码的加密算法,算法包括 1m md5 、sha1和 mysqlsha1 等。其中, 1m Windows 密码的加密算法。 charset :指定密码的字符集,一般包括大写字母、小写字母、数字和特殊字符。 plaintext_len_min :指定密码的最小长度。 plaintext_len_max :指定密码的最大长度。 table_index :指定彩虹表的索引。 chain_len :指定彩虹链的长度。 chain_num :指定彩虹链的个数 part_index :判断每一个彩虹链的起点是怎样产生的。 -bench :用户性能测试。 该工具可用的字符集如下所示 numeric= [0123456789] alpha= [ABCDEFGHIJKLMNOPQRSTUVWXYZ] alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] loweralpha = [abcdefghijklmnopqrstuvwxyz] loweralpha-numeric= [abcdefghijklmnopqrstuvwxyz0123456789] mixalpha= [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] mixalpha-numeric=[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] ascii-32-95=[!"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ] ascii-32-65-123-4=[ !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|} ] alpha-numeric-symbol32-space= [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&* ()-_+= `[]{}|\:;”‘<>,.?/ ] oracle-alpha-numeric-symbol3= [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$_]

实操1

使用 rtgen 工具来创建彩虹表。执行命令如下所示。 rtgen md5 loweralpha-numeric 1 7 0 1000 1000 0

从以上输出的信息中可以看到,生成了1000个彩虹表列。生成的彩虹表默认保存在/usr/share/rainbowcrack文件中,其文件名为md5 loweralpha-numeric#1-7 0 1000x10000.rt。该彩虹表使用的是md5算法加密的,使用的字符集为abcdefghijklmnopqrstuvwxyz 0123456789及其他信息。

实操2


下面演示一个破解哈希密码值的例子,本例中将字符串"1111"使用md5算法加密,得到的Hash值为b0baee9d279d34fa1dfd71aadb908c3f。具体操作步骤如下所述。


(1)创建一个md5算法加密的彩虹表,并且使用字符集numeric。执行命令如下所示。 
rtgen md5 numeric 5 5 0 100 200 0 从以上输出信息中可以看到,生成的彩虹表文件名为md5 numeric#5-5 0 100x200 0.rt。在以上命令中table index参数的值为0,如果破解不成功的话,可以尝试增加tableindex参数的值,直到table index=7时,方可成功破解md5("11111")。

(2)使用rtsort程序对生成的彩虹表进行排序。执行命令如下所示。
rtsort /usr/share/rainbowcrack/md5_numeric#5-5_0_100x200_7.rt

以上的输出信息表示,彩虹表md5 numeric#5-5 0100x200 7.rt已经成功进行排序。


(3)破解哈希值b0baee9d279d34fa1dfd71aadb908c3f的原始字符串。执行命令如下所示。 

rcrack /usr/share/rainbowcrack/md5_numeric#5-5_0_100x200_7.rt -h b0baee9d279d34fa1dfd71aadb908c3f

从以上输出的信息中可以看到,加密之前的密码为111,并且十六进制值为3131313131。如果没有破解成功的话,将显示如下所示的信息:

从以上信息的最后一行可以看到,提示了notfound(找不到对应的字符串)。


注意:使用彩虹表破解密码时,越是复杂的密码,需要的彩虹表就越大。现在主流的彩虹表都是10GB以上。所以,在某台主机上创建彩虹表时,一定要确定有足够的空间。 

破解WPA加密

当用户设置好一个AP为WPA加密模式时,就可以尝试进行破解了。尽管WPA加密方式不太容易被破解出来,但是用户若有一个很好的密码字典,还是可以破解出来的。使用WPA加密的WiFi网络,只能使用暴力破解(字典或PIN码)的方法来实现。本节将介绍如何破解WPA加密的无线网络。

破解wpa-psk

使用Aircrack-ng工具

Aircrack-ng是一个很好的WiFi网络破解工具。

下面将介绍如何使用该工具破解WPA加密的WiFi网络

实操

使用aircrack-ng破解WPA/WPA2无线网络。为了尽可能不被发现,在破解WiFi网络之前,将修改当前无线网卡的Mac地址,然后实施破解。具体操作步骤如下所述。

查看本机的无线网络接口。

airmon-ng

从输出的信息中可以看到,当前系统的无线网络接口名称为wlan0。如果要修改无线网卡的Mac地址,则需要先将无线网卡停止运行

停止无线网络接口。

airmon-ng stop wlan0

从输出的信息中可以看到,wan0接口的监听模式已被禁用。接下来,就可以修改该网卡的Mac地址。

修改无线网卡Mac地址为00:11:22:33:44:55,执行命令如下所示。

macchanger --mac 00:11:22:33:44:55 wlan0

从输出的信息中可以看到,无线网卡的Mac地址已经由原来的 Mac:00:c1:40:76:05:6c,修改为00:11:22:33:44:55

启用无线网络接口。

airmon-ng start wlan0

从以上输出的信息中可以看到,当前无线网卡已经被设置为监听模式,其监听接口为mon0。接下来,就可以使用airodump-ng工具来捕获握手包,并进行暴力破解

捕获数据包。

airodump-ng mon0

以上输出信息显示了当前无线网卡搜索到的所有AP。本例中选择ESSIDTestAP进行破解,其密码为daxueba!

捕获Test无线网络的数据包。

airodump-ng -c 1 -w wpa --bssid 8C:21:0A:44:09:F8 mon0

从输出的信息中可以看到,当前有一个客户端连接到了Test无线网络。在破解WPA加密的数据包中,不是看捕获的数据包有多少,而是必须要捕获到握手包才可以。当有新的客户端连接该WiFi网络时,即可捕获到握手包。捕获到握手包,显示信息如下所示。

从以上信息中可以看到,在右上角显示了已经捕获到握手包(加粗的部分)。如果捕获包的过程中,一直都没有捕获到握手包,可以使用aireplay-ng命令进行Deauth攻击,强制使客户端重新连接到WiFi网络,这时是要多开一个窗口的。aireplay-ng命令的语法格式如下所示。

aireplay-ng -0 1 -a APMAC地址 -c 客户端的MAC地址 mon0

以上各选项含义如下所示。
-0    1:表示使用Deauth攻击模式,后面的1指的是攻击次数。用户根据自己的情况,可以指定不同的值。这里的“1”是“一轮”,aireplay-ng会发送“一轮”解除认证数据包。确切地说,这里的“一轮”是指64个数据包,并且aireplay-ng在发送这些“解除认证”数据包的时候是在两个方向上都发。在上例中,从AP接入点(通过参数“-a  8C:21:0A:44:09:F8”指定)到客户端(通过参数“-c 00:C6:D2:A2:DA:36”指定)有“1轮”,反之亦然,从客户端到 AP接入点也有“1轮”(这里两个方向都发,是指分别以 AP接入点和客户端的名义,代替他们互向对方发)。
-a:指定AP的Mac地址。
-c:指定客户端的Mac地址。
注意:
当成功捕获到握手包后,生成的文件名为wpa-01.cap,而不是wpa.cap。这里的文件编号,和前面介绍的ivs包中的编号含义一样。这时候可能有人会问,ivs和cap文件有什么区别。其实很简单,如果只是为了破解的话,建议保存为ivs。这样的好处就是生成的文件小且效率高。如果是为了破解后同时对捕获的无线数据包进行分析的话,就选为cap,这样能及时作出分析,如内网IP地址和密码等。但是,有一个缺点就是文件比较大。若是在一个复杂的无线网络环境时,短短20分钟也有可能使得捕获的数据包大小超过200MB。


重新打开一个新的终端(不关闭airodump-ng抓包的界面),使用aireplay-ng命令对Test无线网络进行Deauth攻击。执行命令如下所示。 

aireplay-ng -0 10 -a 8C:21:0A:44:09:F8 -c 00:C6:D2:A2:DA:36 mon0 从以上命令及输出的结果可以看到,用户对目标AP发送了10次攻击。此时,返回到airodump-ng捕获包的界面,将看到在右上角出现WPA handshake的提示,这表示获得了包含WPA-PSK密码的四次握手数据包。如果还没有看到握手包,可以增加Deauth的发送数量,再一次对目标AP进行攻击。
现在就可以使用aircrack-ng命令破解密码了。其语法格式如下所示。
aircrack-ng -w dic 捕获的cap文件
以上语法中-w后面指定的是进行暴力攻击的密码字典。接下来开始破解密码,执行命令如下所示。 aircrack-ng -w ./dic/wordlist wpa-01.cap 当然这个密码字典文件./dic/wordlist大概率是破解不了的,还是要自己生成

从输出的信息中可以看到,无线路由器的密码已经成功破解。在KEY FOUND提示的右侧可以看到密码已被破解出,其密码为daxueba!,破解速度约为475.40k/s。

使用Wifite工具破解WPA加密(其实主要破解关键在密码字典)


Wifite是一款自动化WEP和WPA破解工具。

下面将介绍如何使用Wifite工具破解WPA加密的WiFi网络。

实操


 使用Wifite工具破解WPA加密的WiFi网络。具体操作步骤如下所述。


启动Wifite工具,并指定一个密码字典wordlist,txt。执行命令如下所示。

wifite -dict wordlist.txt 以上输出的信息显示了Wifite工具的基本信息。注意,在指定密码字典时,该文件名必须是一个*.txt文件。
停止扫描到的无线网络 CTRL C 这里选择破解Test无线网络,所以输入编号1 从输出的信息中可以看到,破解出Test(AP)WiFi网络的加密密码是daxueba!。

不指定字典破解WPA加密(用这个多一点)


通常情况下,不一定在任何时候都有合适的密码字典。这时候用户就可以边创建密码,边实施破解。在前面介绍了用户可以使用Crunch工具来创建密码字典。所以,下面通过借助管道(I)的方法,来介绍不指定密码字典实施破解WPA加密

实操


不指定密码字典破解WPA加密的WiFi网络。本例为了加快破解速度,将AP(Test)的密码设置为12345678。破解步骤如下所述。
开启监听模式。 airmon-ng start wlan0 捕获握手包。下面同样捕获 Test 的无线信号 airodump-ng -c 1 -w wlan --bssid 8C:21:0A:44:09:F8 wlan0mon 从以上输出信息中可以看到,已经捕获到握手包。 如果没有捕获到握手包,可以强制使客户端掉线并自动重新登录。

使用airodump-ng命令扫描附近的无线网络。运行以下命令:

airodump-ng <interface>

在这里,<interface>是你的无线网卡接口的名称,类似于wlan0

在扫描结果中,寻找目标(陌生)AP的BSSID(唯一的MAC地址)以及频道号。

锁定目标AP的BSSID并监视连接到该AP的客户端。运行以下命令:

airodump-ng --bssid <BSSID> --channel <channel> <interface>

<BSSID>是目标AP的BSSID,<channel>是目标AP的频道号,<interface>是你的无线网卡接口的名称。

执行上述命令后,将会显示连接到目标AP的客户端的详细信息,包括MAC地址、信号强度、数据流量等等。

aireplay-ng -0 9 -a AP的MAC -c 客户端的mac wlan0mon

参数解释:

  • -0:采用Deauth攻击模式,后面紧跟攻击次数,这里设置为9,大家可以根据实际情况设置
  • -a:后面跟AP的mac地址
  • -c:后面跟客户端的mac地址

破解WPA加密。下面指定一个长度为8位的密码,并且使用字符串"123456789"。执行命令如下所示。 crunch 1 8 123456789 | aircrack-ng wlan-01.cap -b 8C:21:0A:44:09:F8 -w - 从以下输出的信息中可以看到,密码已经找到,为12345678。整个破解过程使用了3分11秒。在以上命令中,管道(|)前面是创建密码的命令,后面是破解密码的命令。在aicrack-ng命令中,使用-b指定了AP的BSSID,-w表示指定密码字典,-表示使用标准输入。

WPA的安全措施


根据前面的介绍可以看出,如果有一个很好的密码字典,破解WPA加密的WiFi网络是一件轻而易举的事情。但是,可以采取一些措施,尽可能的保证用户网络的安全。在无线网络设备中有多项设置虽不能起到绝对阻止攻击的作用,但正确的设置可增加攻击者的攻击难度。下面将介绍几个应对WPA的安全措施。


(1)更改无线路由器默认设置
(2)禁止SSID广播。
(3)防止被扫描搜索。
(4)关闭WPA/QSS。
(5)启用Mac地址过滤。
(6)设置比较复杂的密码。

WPA 认证中握手的“卫生清理”


虽然为了内容上的清晰省略了下面的部分,使用aircrack-ng或Pyrit(在后面的内容中讨论)的使用者,通常会在处理pcap文件的时候遇到错误,比如文件中只有一个握手的数据包。这种情况通常都是因为程序处于一个“忙”的状态,或者说是“干扰”状态,导致程序无瑕顾及捕获数据包,或是及时将捕获到的数据包保存到文件中所致。造成程序忙的原因是在珍贵的“扩展认证协议”数据包之间,有太多其他操作造成的、干扰我们捕获和分析的垃圾数据包。在EAP数据包中包含有密钥。虽然Pyrit、aircrack-ng,以及其他破解工具,在这一方面都在努力做最好的自己垃圾数据排除设计,有时候它们还需要一点用户的人工干预以提升其处理能力。读者可以先将 Wireshark捕获到的文件打开,然后通过过滤功能找到代表“四次握手”过程的一组EAP数据包,随后使用一个“局域网上的EAP 协议”(EAPOL)的显示过滤器(displayflter ofeapol),把这些你认为是“四次握手数据包中共性的最好特征手工标注出来。另外,可以使用“wpaclean”程序或“pyritstript”程序以自动的方式来完成这个步骤。

引用《无线渗透》与《黑客大曝光》

本文标签: 彩虹 应对措施 模式 kali wpa