如何通过树莓派上的本地portal实时跟踪bruteforcing进程进度
实现方案指引
基站侧逻辑改造
- 给你现有的爆破脚本增加进度输出能力:如果用
hashcat跑包,直接加--machine-readable --status参数就能输出结构化的进度数据;用aircrack-ng的话可以监听标准输出里的进度行提取信息。 - 写个10行以内的辅助脚本,把提取到的运行状态、已测试密码数、字典总容量、完成百分比、预估剩余时间几个核心字段,定时写入基站本地的
/tmp/wpa_brute_status.json文件,格式参考:
{ "task_id": "当前爆破任务的唯一标识", "status": "running", "progress_pct": 37.2, "tested_count": 37200, "total_count": 100000, "eta": "8m15s" }
任务结束时把status字段更新为success/failed即可。
- 基站侧搭个极简HTTP接口,直接返回上述json文件的内容,用Python Flask框架5行代码就能实现,只监听你和树莓派通信的WiFi内网IP,不要对公网暴露。
树莓派Portal侧实现
两种方案可选,开发量都很低:
方案1:轮询方案(零额外依赖,新手首选)
Portal前端用JavaScript每1-3秒(可根据你对实时性的要求调整)请求一次基站的状态接口,拿到数据后直接更新页面上的进度条、数值展示位即可。进度条可以直接用HTML原生的<progress>标签,不用额外引入UI库,拿到progress_pct数值直接赋值给标签的value属性就能自动更新。
如果出现网络请求失败,页面加个简单的网络异常提示即可,内网环境下容错逻辑不用做太复杂。
方案2:WebSocket方案(实时性更高)
如果需要无延迟的进度更新,基站侧加个WebSocket服务,进度更新时主动推送给Portal端即可,Python可以直接用flask-socketio库快速实现,不需要复杂的后端开发。
补充注意事项
- 提前算好你所用密码字典的总行数作为
total_count,进度百分比直接用(已测试数量/总行数)*100计算即可,不需要自己额外计数。 - 所有接口只在你的无人机和基站的专属WiFi内网内运行,不要对公网开放,避免被未授权访问。
内容的提问来源于stack exchange,提问作者nem0n
相关产品推荐
相关产品推荐

