ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Kali Linux实时流量捕获实战:从监听模式到Wireshark分析

Kali Linux实时流量捕获实战:从监听模式到Wireshark分析 这个标题是我故意取的目的就是让你点进来看一眼Kali Linux实时截获流量到底是怎么一回事。不过丑话还是得说在前面——如果你真想拿这套技术去截获隔壁小姐姐的“上网隐私”趁早关掉页面因为哪怕你侥幸得手了换来的是法律风险而不是什么值得炫耀的“战果”。我写这篇文章只聊一件事在授权测试环境里Kali能怎样实时捕获和分析无线网络流量以及普通人如何反过来保护自己不被这类手段盯上。Kali Linux是专业的安全审计发行版里面预装了Wireshark、Aircrack-ng、Bettercap、Ettercap等一大堆工具确实具备“实时截获”局域网流量的能力。但这些能力天然带有双刃剑属性用对了是帮自己检查网络漏洞用错了就是非法侵犯公民个人信息。接下来我会从原理、实操到排查把完整的流程拆开讲清楚但请所有读者记住实验环境必须是你自己的设备或者你已经拿到书面授权的目标网络。1. 先说清楚边界这不是教你当黑客1.1 为什么我敢写标题里的“截获”因为“截获”在网络安全领域是一个非常标准的动作叫作流量捕获或流量嗅探。Kali Linux本质上是把一系列安全测试工具集中打包成的一个操作系统其中很多工具都工作在协议层目的就是让安全工程师能够观察网络里正在发生什么。你可能在视频网站上看过有人用一张无线网卡就能看到同一WiFi下其他设备的操作界面这种画面其实被剪辑过真正的技术点不在于“看到别人屏幕”而是捕获了对方设备发出的网络数据包。这里最核心的分水岭是授权如果你在自己的路由器下架一台Kali虚拟机抓自己手机、自己电脑的包这是正当的自我安全测试但如果你跑到别人的WiFi网络里抓别人的数据那就触犯了法律。所以上一段标题只能算一个钩子钩子背后真正的内容是Kali如何实时捕获网络中的明文数据包以及你如何识别和防范这种威胁。1.2 哪些场景可以合法使用这些技术我整理了一张表把常见场景、法律边界和注意事项列在一起这样你能快速判断自己正打算做的事是否越界。场景是否合法注意事项在自己的路由器上测试自家设备合法最好把其他设备临时断开避免误采隐私数据对所在企业网络做授权渗透测试合法必须有书面授权明确测试范围和时限参加CTF比赛、靶场练习合法使用隔离的虚拟网络或专用靶场平台在公共WiFi里观察陌生用户流量违法情节严重可能构成非法获取计算机信息系统数据罪破解邻居WiFi密码后进入内部网络违法再“无害”的目的也改变不了违法事实在安全圈里大家默认会说“没有授权就没有渗透测试”。这句话怎么强调都不过分。如果你是一名学生或者刚接触Kali的新手最好的练习场地是你自己搭建的虚拟靶场或者买一个几十块的旧路由器和几张旧手机卡在家里做出一个完全受控的实验环境。2. 实时截获背后的原理我用大白话给你讲透2.1 普通网卡和监听模式收音机模式大多数人的电脑网卡默认工作在“受控模式”下它只会接收发给它的数据帧其他设备之间的通信数据会被直接丢弃。这就像办公室里你只会看到写着你名字的快递别人的快递不会送到你桌上。但无线网卡有一种特别的工作状态叫监听模式也就是Monitor Mode。开启监听模式后无线网卡不会理会“这个数据包是发给谁的”它会像一个收音机一样把射程范围内所有无线信道上的数据帧都收下来。用网卡完成这个操作的工具最常用的是Aircrack-ng套件里的airmon-ng。打个比方普通模式是快递员只送你家门口的包裹监听模式是快递员把整条街的包裹都抱回自己仓库然后慢慢拆开看。拆开之后能不能看懂是另一回事但如果数据包本身没有加密那内容基本就是裸奔状态。2.2 你看到的数据到底是明文还是密文捕获到数据包只是第一步能不能“看懂”才最关键。早期的无线网络加密协议WEP已经名存实亡用Aircrack-ng几分钟就能破解只要拿到了WEP密钥流量里的内容在分析者眼里就是明文。现在主流家庭网络都用WPA2或WPA3。WPA2使用AES-CCMP加密大部分普通数据帧都是加密的没有密钥你很难还原出原始内容。但要注意WiFi加密只能保护无线链路这一段不能保护你上网时的应用层通信。如果某个网站还在用HTTP协议那么即使WiFi是WPA2加密的在路由器之后的数据交换仍然可能是明文。这种情况下只要攻击者想办法进入你的局域网一样能通过ARP欺骗截获你发往网关的明文HTTP流量。这也是为什么现在很多浏览器会强制HTTPS并且显示“不安全”提示。HTTPS在应用层之上套了一层TLS加密它能有效防止局域网里的嗅探者直接看到账号密码。但如果攻击者本身就在你的设备上安装了恶意根证书那就另当别论了这已经属于更深层次的攻防对抗。2.3 ARP欺骗为什么它总被拿来演示“截获”在同一个交换机网络或同一个WiFi网络中设备A给路由器发数据时靠的是ARP协议把IP地址解析成MAC地址。正常情况下A会发出“谁是192.168.1.1”的广播路由器回应自己的MAC地址。攻击者如果处在同一局域网可以伪造ARP回应告诉A说“路由器就是我的MAC地址”同时告诉真正的路由器“A的MAC地址其实是另一个”这样所有经过的流量都会先经过攻击者的网卡。攻击者再把数据包转发给真正的路由器整个过程有些像快递员把你的包裹先拿回自己家拆了一遍再送给收货人。Kali里实现ARP欺骗的历史工具有Ettercap现在更多人会选Bettercap。这类工具对抓取明文HTTP请求特别有效所以很多演示视频都喜欢拿它来抓“验证码”“用户名密码”。我必须再强调一遍这类操作只能在你自己的实验环境里进行否则就是在犯罪。3. 在授权环境里实操从Kali开机到抓包分析3.1 准备工作网卡选择与虚拟机老坑在动手之前先把环境准备好。Kali本身可以装在虚拟机里但如果你要做无线数据包捕获虚拟机会带来一个很麻烦的问题虚拟机里看到的无线网卡实际上是被宿主机虚拟化的USB网卡很多情况下不支持监听模式。我的建议是准备一块USB无线网卡并确认芯片方案。常见的是Atheros AR9271、Ralink RT3070、Realtek RTL8812AU这类支持监听模式且能注入数据包的芯片。RTL8812AU支持5GHz频段速度不错AR9271便宜稳定只是只有2.4GHz。在VMware或VirtualBox里把这些USB网卡直通给虚拟机不要用默认的NAT网卡。宿主机上也要先安装好对应的驱动然后在虚拟机里运行lsusb确认设备已经识别到。如果你只是练习数据包分析可以用有线连接抓取自己局域网里的流量那就不涉及无线网卡监听模式的问题对新手更友好。3.2 开启监听模式并抓一段WiFi流量登录Kali后先确认无线网卡名称iwconfig常见名称是wlan0。如果这步没有输出无线接口先检查USB网卡是否正确直通或者驱动是否加载。接着使用airmon-ng检查冲突进程并开启监听模式sudo airmon-ng check kill sudo airmon-ng start wlan0执行后网卡会从wlan0变成wlan0mon说明已经进入监听模式。再运行iwconfig确认一下。接下来扫描周围可见的WiFi网络sudo airodump-ng wlan0mon屏幕上会出现不断滚动的列表包括BSSID、信道、加密方式、信号强度等信息。这些都是广播信息本身并不违法。找到你想要测试的那个网络比如你自家路由器的BSSID然后锁定它的信道继续捕获sudo airodump-ng -c 6 --bssid XX:XX:XX:XX:XX:XX -w capture wlan0mon参数里的-c 6表示监听6信道--bssid指定目标AP的MAC地址-w capture会把抓到的数据包保存到文件capture-01.cap。这个时候如果你用另一台手机或电脑连上该WiFi并浏览一些普通网站Kali这边就会不断跑出新的数据帧。看到WPA handshake: XX:XX这种提示说明抓到了设备与AP之间的握手包。对于学习WPA2握手包解密这个数据已经够用了。3.3 用Wireshark把流量“翻译”给人看等抓了几分钟CtrlC停止airodump-ng。这时可以打开Wireshark直接读取.cap文件或者直接选择监听接口做实时抓包。Wireshark的主界面会列出所有数据包每一行都有源地址、目标地址、协议、长度和简单的描述。第一次打开肯定会觉得眼花缭乱所以过滤表达式就显得格外重要。如果你只想看HTTP明文请求http.request如果想看某个主机和外部服务器之间的所有流量ip.addr 192.168.1.100想看DNS查询dns在“统计”菜单里还有个“协议分级”功能能按协议类型对流量做汇总特别适合快速判断当前网络里主要跑的是HTTP还是HTTPS有没有大量异常UDP流量。如果抓到的包包含WPA2四次握手并且你正好知道WiFi密码那么在Wireshark里可以通过“编辑”-“首选项”-“Protocols”-“IEEE 802.11”来设置无线解密密钥。填对了WiFi密码后部分数据链路层载荷就能被解出然后你就能看到上层TCP、HTTP内容。这个功能对分析自家网络非常有用它可以帮你确认路由器配置里是否存在可疑的连接请求。3.4 进阶演示Bettercap嗅探HTTP明文凭据仅限自测Bettercap是一个比Ettercap更现代的网络攻击框架它的模块化设计让操作变得简单。安装方式sudo apt update sudo apt install bettercap sudo bettercap -iface eth0进入交互界面后先开启网络发现net.probe on net.show它会列出当前局域网里存活的主机包括IP、MAC和厂商信息。接下来要开启ARP欺骗模块把目标主机和网关的流量引导到自己网卡上set arp.spoof.targets 192.168.1.100 arp.spoof on等运行一会儿再开启HTTP嗅探模块net.sniff on这时如果目标主机访问某个老旧的HTTP网站并且输入了登录信息Bettercap就会在终端里打印出包含用户名和密码的表单数据。我再强调一次这只能在你自己控制的网络和设备上做实验比如你拉一台手机连接你自己架的测试路由器然后让Bettercap嗅探手机与路由器之间的流量。整个过程的目的不是去拿谁的账号而是让你直观明白明文HTTP到底有多危险。如果你在公共场合拿这套工具去嗅探别人那已经不是安全研究而是违法犯罪。4. 我在实际调试中踩过的坑整理成速查表实操遇到问题太正常了下面这几个坑是我自己在调试过程中反复碰到的整理出来能给你节省不少时间。4.1 监听模式一直启动失败现象执行sudo airmon-ng start wlan0后提示Failed to initialize monitor mode。原因多半是网卡芯片驱动不支持或者驱动冲突。解决思路也很直接先看芯片类型然后换驱动。你可以在Kali里运行lsusb找到类似ID 0bda:8812这样的输出RTL8812AU芯片需要安装realtek-rtl88xxau-dkms驱动sudo apt install realtek-rtl88xxau-dkms安装完重新插拔网卡再试一次。另外有些网卡对虚拟机USB直通支持不好优先用物理机或者换一个芯片型号。症状主要原因对应处理iwconfig没有无线接口USB直通失败 / 驱动未加载检查虚拟机USB设置重新安装驱动airmon-ng提示phy0接口不存在网卡被系统服务占用先执行airmon-ng check kill可以开启monitor但抓不到包无线网卡本身太旧换用支持monitor的芯片如AR9271、RTL8812AU开启监听后Kali无法正常联网无线网卡被占用正常现象测试完切换回managed模式即可4.2 能开监听但扫不到WiFi如果airodump-ng wlan0mon只能看到一堆乱码或者一个AP都扫不到先别急着骂网卡大概率是信道设置的问题。2.4GHz频段有13个信道5GHz频段数量更多默认情况下airodump会在所有信道间跳来跳去因此一个网络可能需要几秒钟才会出现一次。可以指定单一信道扫描试试例如-c 1。如果还是扫不到检查一下监听网卡是否真的支持你所在地区的频率。部分地区还有DFS信道普通网卡不一定能扫描到。另一个常见原因是你所在环境周围WiFi极少这种情况到商场、办公区再测试会好很多。需要提醒的是在公共场所扫描WiFi本身只是接收广播信息但要避免对其进行任何后续攻击行为。4.3 HTTPS流量解开后全是乱码Wireshark里看到HTTP流是明文但HTTPS流是加密乱码这是正常的。TLS协议本身就是为了防止中间人直接读取内容而设计的。想解密HTTPS首先需要拿到目标设备的私钥和证书信任链这在别人的设备上是不可能做到的。在测试自己控制的Web服务器时可以配置服务器使用自定义证书并让客户端信任你的根证书这样才能在Wireshark里通过TLS私钥解密。但如果你去公共网络尝试安装中间人证书那可能会直接触发HSTS策略浏览器会拒绝访问而且这种做法风险极高不建议新手去折腾。如果你是想保护自己与其研究怎么解密HTTPS不如先确保你访问的网站都强制HTTPS。浏览器地址栏带有“不安全”提示的页面千万不要输入任何密码。4.4 抓包文件巨大要怎样快速过滤抓了几分钟就可能生成几十MB的cap文件直接搜索会很卡。这时候建议用捕获过滤器而不是显示过滤器在开始抓包前就只保存你关心的流量。命令行的tcpdump可以这样用sudo tcpdump -i eth0 -w http.pcap tcp port 80Wireshark输入框顶部也能设捕获过滤器语法是BPF例如host 192.168.1.1 and tcp port 80这样只保存特定IP和端口的数据包。如果已经抓到了大文件可以在显示过滤器里用http、tcp.port 53快速缩小范围或者用“统计”-“对话”查看哪些IP之间的流量最大再按IP逐个过滤。这样查问题效率会高很多。5. 普通人如何防范“被截获”聊完Kali的操作再来看看真正的重点作为普通用户怎样在网络里避免被这些手段盯上。5.1 加密协议选型WPA2/WPA3比你想的更重要如果你家里还在用已经老掉牙的WEP加密那基本上等于把大门钥匙挂在门口。现在买的路由器最低都支持WPA2有条件就选WPA3或者至少用WPA2-PSK加AES加密不要选TKIP这类旧标准。设置密码时不要再用“12345678”这种八位纯数字。WPA2的弱密码可以通过抓握手包离线爆破密码足够长、足够随机才能扛住字典攻击。我给自家网络设置的密码会超过14位并且混合英文字母、数字和符号。这样做不是为了防熟人而是让自动化的攻击脚本直接放弃你。另外现在很多路由器支持“访客网络”功能你可以把智能家居、朋友手机放到隔离的访客WiFi里。这样即使访客网络里的设备被攻击也无法直接触及家里主网络的主机。5.2 公共WiFi的安全使用习惯在咖啡厅、机场连公共WiFi时你的流量会经过陌生人的路由器这是最容易遇到中间人攻击的场景。我能给你几个非常实用的习惯第一不要连接无密码的开放热点能选择就选择有WPA2加密的公共网络。第二不要随便输入手机验证码、支付密码等敏感信息。第三如果必须使用公共网络处理重要事务建议打开手机流量而不是连公共WiFi。第四在公共网络里我通常不打开任何网银、支付类App。5.3 定期给自己家做一次5分钟安全审计Kali不仅能用来抓包也能用来帮你检查自家网络有没有被蹭网或者被偷偷布置了可疑设备。最简单的方法是登录路由器管理后台查看连接设备列表发现有陌生MAC地址立刻踢掉并修改WiFi密码。更进一步你可以用Kali里的nmap扫描局域网内所有在线主机sudo nmap -sn 192.168.1.0/24这会把当前局域网下所有存活主机的IP和MAC扫出来。对比路由器后台设备列表如果出现差异说明可能有人偷偷接入你的网络。5.4 文末彩蛋一个应急检查脚本本来想直接在文章末尾卖个关子但我决定给看完的人一个可以复制的“彩蛋”一个简单的局域网设备审计清单脚本。你不需要Kali任意Linux设备上都能运行用来快速列出当前局域网里有哪些活跃主机。#!/bin/bash echo 局域网存活主机扫描 sudo nmap -sn 192.168.1.0/24 | grep Nmap scan report | awk {print $5} echo 当前ARP表 arp -a echo 本机无线连接信息 iwconfig 2/dev/null | grep -E ESSID|Mode|Frequency把这个脚本保存成lan_check.sh赋予执行权限后运行chmod x lan_check.sh ./lan_check.sh它并不能防止攻击但能让每隔一段时间就检视一次网络状态变成习惯。真正有效的防御是靠日常的谨慎和定期的自查。我在实际做安全测试时最深的一点体会是工具越强大越考验使用者的边界感。Kali本身只是一个工具包它能帮你发现网卡里的监听模式能帮你抓下一大堆数据包也能让你在授权范围内演练网络攻防但如果你越过那条红线技术会反过来给你带来难以承受的代价。这个“彩蛋”脚本也算是我留给所有准备投身网络安全方向朋友的一份礼物——用它守住自己的后门比什么抓包技巧都重要。
返回列表