网络监听是指监视网络状态,数据流程,以及网络上信息传输。通常要将网络设备设定成为监听设备,就可以截获网络上所传输的信息。这是渗透测试使用最好的方法。
网络监听原理
由于无线网络的信号是用广播的方式发送的,所以用户就可以在传输过程中节后到这些信息。但是要截获到所有信号,就需要将无线网卡设置成为监听模式。只有在这个模式下,无线网卡才可以接收到所有网卡的信息。
网卡的工作模式
无线网卡主要有四种工作模式,包括:管理模式(Managed)、自由模式(Ad-hoc)、混杂模式(Monitor)以及主模式(Master)。
-
管理模式(Managed):也被称为客户机模式,这是无线网卡的默认工作模式。在这种模式下,无线网卡可以搜索周围的无线网络,并连接到某个无线网络进行通信。
-
自由模式(Ad-hoc):在这种模式下,无线网卡可以直接与其它网卡进行点对点的通信,不通过接入点(AP)。这种模式用于无线设备之间的快速连接和数据共享。
-
混杂模式(Monitor):在这种模式下,无线网卡可以监听并尝试接收所有通过其射频覆盖区域的数据包,而不仅仅是定向发送给它的数据包。此模式主要用于网络监控和封包抓取。
-
主模式(Master):在这种模式下,无线网卡可以作为接入点(AP)进行工作,为其他设备提供网络接入服务。这种模式非常适合利用电脑或其他设备建立小型无线网络。
工作原理
无线局域网的拓扑结构,也就是说只有设备的网卡打开了混杂模式才可以接收所有广播的数据包
Aircrack-ng 工具
工具介绍
Aircrack-ng是一个套件,在这个套件中包括很多个小工具,主要功能是网络的侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。
包名称 | 描述 |
aircrack-ng | 破解WEP以及WPA(字典)秘钥 |
airdecap-ng | 通过已知秘嗅探钥来破解WEP和WPA嗅探数据 |
airmon-ng | 将网卡设置成监听模式 |
airodump-ng | 数据包嗅探,将无线网络数据输送到PCAP和IVS文件并显示网络信息 |
airtun-ng | 创建虚拟管道 |
airolib-ng | 保存,管理ESSID密码列表 |
packetforge-ng | 创建数据包注入用的加密包 |
Tools | 混合,转换工具 |
airbase-ng | 软件创建AP |
airdecloack-ng | 消除pcap文件中的WEP加密 |
airdriver-ng | 无线设备驱动管理工具 |
airolib-ng | 保存,管理ESSID密码列表,计算对应的秘钥 |
airserv-ng | 运行不同的进程访问无线网卡 |
buddy-ng | easside-ng的文件描述 |
easside-ng | 和AP接入点通信(无WEP) |
tkiptun-ng | WPA/TKIP攻击 |
wesside-ng | 自动破解WEP秘钥 |
airepaly-ng | 数据包注入工具 |
启动监听模式
要将网卡打开监听模式,就要使用工具包airmon-ng 这里介绍一下airmon-ng的基础语法
airmon-ng <start|stop> <interface> [channel]
这里start和stop是将监听模式打开或者关闭
interface是无线网卡接口的名称
channel是启动监听模式时所指定的信道
接下来我们来看一下实际情况:
在ifconfig-a中我们找到了刚刚插入的网卡名称 wlan0
这个时候我们要将这个网卡激活
ifconfig wlan0 up
这样我们刚刚插入的网卡就已经激活了,接下来我们将这个网卡设置成为混杂模式
输入上述的命令 注意wlan0是这个网卡的名称,应该通过ifconfig-a先查看自己网卡的名称
这里通过ifconfig来检查这个时候的网卡wlan0已经变为了wlan0mon即开启了监听模式
同样我们还可以通过查看iwconfig来查看网卡的状态
上面配置的详细解释
扫描网络范围
用户开启监听模式之后就可以捕获到网卡接受范围内的所有数据包。通过数据包就可以分析出附近的WiFi网络的范围。这里我们将介绍使用airodump和Kismet工具扫描网络的范围。
使用airodump-ng扫描
这个是之前介绍的Aircrack-ng中的一个小工具,通过查看的捕获的报文,可以扫描附近AP的SSID(包括隐藏的),BSSID,信道,客户端的MAC和数量
这里先介绍一下基本语法
airodump-ng [选项] <interface name>
通过选项有很多可以通过--help来查看,下面介绍几个常用的命令
-c 指定目标ap的工作信道
-i,--ivs 用来设置过滤的,使用之后保存用于破解IVS数据报文,而不是保存所有无线数据报文
-w 指定一个自己希望保存的文件名,用来保存有效的IVS数据报文
<interface name>是指定的接口名称
实例:
这里就是所有扫描的结果 用户可以通过按ctrl+c来结束进程
以下是详细解释
BSSID:基站的MAC地址,也就是无线路由器的物理地址。
PWR:信号的强度。这个一般是一个负数,数值越接近0代表信号越强。
Beacons:基站发送的信标帧的数量。无线网络中的这些信标帧用于告诉附近的设备它的存在。
#Data:从基站接收到的数据帧的数量。
#/s:每秒接收到的数据帧的数量。
CH:无线频道。
MB:表示无线网络的最大速率(Mbps)。
ENC,CIPHER和AUTH:这三者共同描述了无线网络使用的加密类型。例如,WPA2加密的网络的ENC会显示为WPA2,CIPHER会显示为CCMP,而AUTH则会显示为PSK。
ESSID:扩展服务集标识符,是无线网络的名称。
而下面还有块是airodump-ng
的客户端视图,这个视图显示的是与特定接入点相连或正在尝试连接的设备的信息:
BSSID:这是接入点(通常是无线路由器)的MAC地址。
STATION:这是客户端设备(如电脑、手机等设备)的MAC地址。
PWR:信号强度,即该客户端设备的信号强度。
Rate:数据的传输速率。这显示了从客户端到接入点(相应的BSSID)的当前数据帧的传输速率,以及从接入点到客户端的速率。
Lost:丢失的数据帧数。这是从最后一次接收到客户端数据帧开始计算的递增值。
Frames:这是从客户端收到的总数据帧的数目。
Notes:在某些情况下,此列可能包含有关客户端的其他信息。在大多数情况下,此列将为空。
Probes:探测请求。列出了客户端设备正在寻找的网络的名称。
一段时间后我们可以发现捕获了一个WiFi的握手包,这个握手包可以用来字典暴力破解WiFi密码也可以用来钓鱼获得WiFi密码。
使用Kismet扫描
Kismet是一个图形界面的无线扫描网络工具。Kismet工具不但可以附近可用的AP以及所使用的信道,还可以捕获网络中的数据包到一个文件夹中。(在这里我们不需要手动打开网卡的监听模式)下面介绍Kismet工具实时网络扫描。
首先开启Kismet工具,操作的代码是
kismet -c wlan0 --use-gpsd-gps
然后点开之后我们可以通过访问kismet在本地端口来查看扫描的情况,在这里我们访问ip+端口号
2501或者直接在浏览器中输入
http://localhost:2501/
完成账号密码注册之后就可以查看实时状况
然后我们可以查看设备的连接状况
总结
这个状态实时更新的可视化比airodump-ng更加人性化,但是airodump可以将握手包捕获,kismet将这些AP和client全部都列在一个表中,可以实时观看设备连接网络的信息,各有利弊。在我们进入无线网络渗透测试的时候这些扫描WiFi是我们的基础,我们需要在这里掌握至少两种扫描WiFi的方式。