用Python做WiFi嗅探?5分钟上手黑客同款技能(附代码)
off999 2025-09-04 15:31 54 浏览 0 评论
本文是【Python网络安全】入门教学文章,建议收藏!适合安全学习者、网络审计员、Python进阶者阅读。
有没有想过,你的电脑其实可以像个“监听器”,实时捕捉周围WiFi的蛛丝马迹?
是的,哪怕你不是黑客,也能用Python把网络流量“看个通透”。
是不是已经有点坐不住了?直接开干!
1. 工具清单:配置前的准备动作
想嗅探网络数据,装备不能少:
- Python 3.8+(基本操作)
- Scapy库(网络数据包界的瑞士军刀)
- 无线网卡支持“监听模式”(monitor mode),推荐Alfa AWUS036NH
- Linux系统 + root权限
- 合法授权的网络环境(别乱来哈,违法成本高)
小提醒:开启监听模式会让WiFi断网,建议准备第二条网络线或者热点兜底。
在开始写代码之前,先把下面这些包装好:
确保你用的是 Python 3.8 及以上:
python3 --version
如果你还没安装 Python,可以去官网 https://www.python.org 下载对应系统的安装包。
安装核心依赖:Scapy + HTTP & TLS 支持包
pip install scapy
如果你还想解析 HTTP 或 TLS 流量,还可以安装以下模块(可选但推荐):
pip install scapy[http]
pip install scapy-ssl_tls
系统工具支持(必须配置监听模式)
Scapy 默认只支持 Linux / macOS 下使用无线网卡的监听模式(monitor mode)。在 Linux 下:
- 切换网卡为监听模式(使用 airmon-ng 工具):
sudo apt install aircrack-ng
sudo airmon-ng start wlan0
这会把你的无线网卡变成 wlan0mon 模式,方便 Scapy 抓包。
2. 捕获WiFi 802.11帧:窥探网络从这里开始
from scapy.all import sniff, Dot11
def show_packet(pkt):
if pkt.haslayer(Dot11):
print(f"[{pkt.time:.2f}] {pkt.addr2} → {pkt.addr1} type={pkt.type} subtype={pkt.subtype}")
sniff(iface="wlan0mon", prn=show_packet, store=False)
这个脚本会打印所有WiFi帧的信息(源地址、目标地址、类型等),几乎就是“网络监听实况转播”。
想只看“管理帧”?来点精细过滤:
sniff(iface="wlan0mon", prn=show_packet,
lfilter=lambda p: p.haslayer(Dot11) and p.type == 0,
store=False)
3. 抓包HTTP请求 + SNI字段,监听网页访问
Scapy也能“监听”网站访问请求,尤其是明文的HTTP,还有TLS握手中的SNI(域名指示)字段:
from scapy.all import sniff
from scapy.layers.http import HTTPRequest
from scapy.layers.ssl_tls import TLSClientHello
def http_tls_sniff(pkt):
if pkt.haslayer(HTTPRequest):
req = pkt[HTTPRequest]
print(f"[HTTP] {req.Method.decode()} {req.Host.decode()}{req.Path.decode()}")
elif pkt.haslayer(TLSClientHello):
sni = pkt[TLSClientHello].extensions.get('server_name')
if sni:
print(f"[TLS] SNI: {sni}")
sniff(iface="wlan0mon", prn=http_tls_sniff, store=False)
统计显示:超90%的网站已启用HTTPS,SNI就是我们仅存的明文入口。
4. 追踪设备活动:MAC地址+频率统计
还可以做个小“侦探”,看看有哪些设备在周围发出探测请求(probe request),还可以统计它们出现的频率:
from scapy.all import sniff, Dot11ProbeReq
from collections import Counter
probe_counts = Counter()
def count_probes(pkt):
if pkt.haslayer(Dot11ProbeReq):
probe_counts[pkt.addr2] += 1
sniff(iface="wlan0mon", prn=count_probes, store=False, timeout=60)
print("Top 5 活跃设备:")
for mac, count in probe_counts.most_common(5):
print(f" - {mac}: {count} 次")
后续还可以导出为CSV,用pandas+matplotlib画图,搞个“热点设备活跃图”都不是梦。
5. 关键提醒:安全红线不能碰!
别玩嗨了忘了底线,这些你必须知道:
- 必须得到网络所有者书面授权
- 明确告知会记录什么内容
- 只收集必要信息,用完及时清除
- 遵守所在地法律
记住这句话:“技术是中立的,用它的人才决定善恶。”
6. 应用场景举个例:
用途 | 收益 |
WiFi网络审计 | 检查加密设置、发现未知AP |
教学演示/安全培训 | 学生实战演练抓包分析 |
性能优化 | 查看丢包率、重传情况 |
信号覆盖评估 | 分析不同区域设备活跃程度 |
写在最后:
WiFi嗅探并不是“黑科技”,而是一项非常重要的网络安全技能。只要你掌握了基础工具,理解协议逻辑,你也可以像网络侦探一样,看清无线世界的流动轨迹。
相关推荐
- 加密u盘如何格式化(加密u盘如何格式化手机)
-
1,点击系统与安全进入电脑的控制面板界面,点击上方的系统与安全的选项,在系统界面找到最下方的管理工具功能组。2,选中u盘选择管理工具下面的创建并格式化硬盘分区,点击弹出磁盘管理的界面,在这个里面选中你...
- 万能显卡驱动离线版pc(万能显卡驱动离线版)
-
万用驱动是综合各电脑硬件的性能而制做的软件,对于大多数的电脑硬件驱动都好用,但对于少数品牌电脑驱动要求严格的,就不灵了。有的硬件用万能驱动后,使用效果不佳,就是因为没有完全驱动好。所以,知名品牌电脑硬...
- 笔记本windows8系统下载(笔记本电脑系统win8)
-
在电脑上面就可以下载,打开浏览器搜索windous8系统会出现一些下拉选择,选择第一条或者选择有官网字样的,就直接有下载按钮,然后点击下载就可以了win8可以支持现在可以见到的所有Photosho...
- win 11(win 11 25h2)
-
Windows11是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备。于2021年6月24日发布,2021年10月5日发行。Windows11提供了许多创新...
- 手机视频恢复软件免费版下载
-
手机视频删了怎么恢复 一、安卓手机视频恢复 1.打开电脑,移动鼠标,进入互盾安卓恢复大师官网,下载并安装该软件。手机连接至电脑。手机视频删了怎么恢复 2.打开运行互盾安卓恢复大师,在软件界面看到...
- diy电脑装机教程(diy电脑组装步骤)
-
1,看价格。根据自己的预算价格,选择适合该价格的电脑。注意不要以过高的价格买到配置过低的电脑;2,看性能。根据自己需要的电脑性能,以合理的价格购买。注意不要以过高的价格买到配置过低的电脑。电脑的配置如...
- u盘莫名其妙要格式化(u盘总是要格式化什么意思)
-
如果您在使用U盘时突然收到提示需要格式化的消息,这可能是由于以下原因之一引起的:U盘感染病毒:U盘中可能存在恶意病毒,这些病毒可能会导致U盘无法正常使用。当您尝试打开U盘时,系统会提示您进行格式化操作...
- win7家庭版原版(win7家庭版价格)
-
你的win7旗舰版应该是个盗版软件,在你使用的过程中你可能触碰到了后台升级,升级完以后就变成了家庭版了,在你不知不觉中被改变的,厄这个软件属于盗版的,厄升级完以后没什么大区别,这个旗舰版家庭版在家里面...
- win10自动更新失败怎么办(win10自动升级失败)
-
安装更新失败有许多原因。WindowsUpdate需要能够扫描您的计算机以了解需要哪些更新,并能够下载和安装这些更新。如果某个阶段遇到问题,则可能阻止某个更新安装到计算机中。有关错误或失败的详细信...
- 截图的几种方法(截图的几种方法有哪些)
-
第一种截图方式:按printScreen键。按一下键盘上的printScreen键以后,整个屏幕会被截取下来,截图会默认保存在剪贴板中。第二种截图方式:使用微信截图。进入聊天界面,我们会发...
- 电脑装了两个系统怎么切换(电脑安装2个系统怎么更换启动)
-
1.点击运行打开电脑点击左下角的开始菜单栏选项,右击鼠标在序列栏中选择运行打开。2.输入msconfig接着在运行的输入框中输入msconfig点击确定即可打开系统配置。3.点击引导打开系统配置的页面...
- linux系统哪个版本好用(最好linux系统版本)
-
个人比较推荐Debian这个发行版本。DebianGNU/Linux于1993年首次公布,至今已经有近30年历史了。当然其他版本比如openSUSE,Slackware,ArchLinux,Ubu...
- win10激活在哪里查看(win10激活时间在哪里看)
-
在Windows10中,您可以通过以下方法查看激活状态:方法1:使用“设置”应用1.点击屏幕左下角的“开始”按钮,然后点击“设置”(齿轮图标)。2.在设置窗口中,点击“系统”图标。3.在“系统...
- 官方win10dll文件修复工具(官方win7dll文件修复工具)
-
当电脑丢失dll文件时,可以采用以下几种方法进行一键修复:从回收站还原:如果是不小心误删了一些计算机文件,导致电脑出现异常的情况时,首先就可以去回收站找回dll文件,如果文件还在,就可以通过还原操作来...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
