低成本打造便携式无线网络攻防学习环境
1.摘要
一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连接上网络。本文将从研究的角度搭建一个专门用于无线网络安全探索的实验环境。
2.设备选型
要了解无线攻击原理, 很有必要从攻击者的需求角度来模拟, 从硬件设备选择上, 普通电脑或服务器、虚拟机已经无法满足实际需求, 一款能够满足攻防技术复现还原的设备至少需要满足以下几点:
-
可便携 - 设备体积偏小、携带、安装、拆卸均方便。
-
可编程 - 设备上能够运行自主开发的控制程序, 由此对硬件性能有一定要求。
-
可维护 - 能够方便提供软、硬件接口, 方便问题查找和维护。
-
可续航 - 为了能够持续产生效果, 需要具备一定的连续工作能力, 包括: 有电源和无电源的情况都要考虑。
-
可覆盖 - 主要针对信号强度, 普通电脑的无线网卡虽也可满足需求, 但信号范围覆盖有限会导致某些功能不稳定。
2.1 设备主体选型
针对以上特点, 这款无线硬件主体设备最终决定采用:Raspberry Pi 4B(树莓派), 其参数和需求满足对应关系如下:
| 硬件型号: | Raspberry Pi 4B | |
|---|---|---|
| 硬件尺寸: | 88 * 58 * 19.5 毫米 | 满足便携式需求 |
| 中央处理器: | 1.5GHz,四核Cortex A-72 | 满足可编程需求 |
| 存储空间(最高): | 64GB | 满足可编程需求 |
| 内存空间(最高): | 8GB | 满足可编程需求 |
| 无线网络: | 802.11 2.4GHz/5GHz双频 | 满足可维护需求 |
| 有线网络: | USB 2.0前兆以太网(300Mb/s) | 满足可维护需求 |
| 供电接口 | micro usb(5V 2.5A) | 支持外接USB电池供电,满足续航需求。 |
| USB接口 | USB 2.0 * 2 / USB 3.0 * 2 | 支持更丰富的外接设备。 |
| HDMI接口 | 可接显示器 | 方便维护 |
Raspberry Pi 4B设备除了拥有容量足够的磁盘空间和内存之外,还提供众多第三方接口。设备提供了四个USB接口,可以即插即用鼠标、键盘、U盘、移动硬盘等设备;设备提供了HDMI接口,能够将设备运行信息投到显示器上操作,方便维护。
2.2 天线选型
设备的信号接收范围决定了扫描的WiFi范围和数量,Raspberry Pi 4B设备虽然自带无线网卡,但集成的无线网卡接收无线信号范围有限,最多接收半径不超过10米,经过选型,最终选择了一款第三方基于USB接口带外接天线的无线网卡,该无线网卡参数详情如下:
| 指标名称 | 指标参数 | 需求指标 |
|---|---|---|
| 信号覆盖半径 | 50米 | 符合 |
| 天线长度 | 106mm | 符合 |
| 系统兼容性 | 支持即插即用 | 符合 |
| USB体积 | 15mm x 37mm | 符合 |
| 支持监听模式 | 监听和正常模式切换 | 符合 |
其原型图如下:

该天线是一款带USB头的即插即用天线, 支持大多数Linux系统, 与树莓派主体可以完美结合, 如图:

注意: 在选购外接无线网卡时, 一定要问清楚是否支持网卡监听模式, 关于监听模式参考文章后面的第四部分。
2.3 续航设备选型
由于树莓派自带电源接口和电源, 这里的续航主要针对无电源供电情况, 选择了一个10000毫安的电池, 可连续工作十几个小时,电池绑定在一个小型嵌入式板上, 通过USB供电, 如图:

与天线比起来, 这款电池和电池板不像一款产品, 但也临时没有找到便宜的可替代品, 还好体积不算太大, 便携性也能满足实际需求。
3.操作系统安装
3.1 操作系统选择
根据实际需求, 目前最合适的系统莫过于Kali系统, 打开网址: Get Kali | Kali Linux , 这里可以找到专门针对树莓派的最新Kali系统镜像, 如图:

3.2 操作系统安装
3.2.1 系统烧录工具安装
树莓派没有硬盘, 替而代之的是一个很小的SDCard卡片, 因此安装Kali系统首先要将系统image镜像烧录到SdCard中。
系统烧录工具主要包括:PanasonicSDFormatter和balenaEtcher。其中,PanasonicSDFormatter是SDCard格式化工具,能够将SDCard中的数据快速清空,如果是新系统换旧,则需要先格式化之前的数据。balenaEtcher是系统烧录工具,能够将操作系统镜像烧录到SDCard中。
将PanasonicSDFormatter下载解压之后进入文件夹, 该工具是绿色免安装版, 直接双击SDFormatter.exe即可看到主界面,如图:

balenaEtcher下载解压后同样直接双击exe开始安装, 无需任何设置, 点击"我同意"后直接进入安装流程, 主界面如下:

3.2.2 SDCard格式化
将树莓派自带的SDCard插入到USB读卡器中(读卡器树莓派自带), 再将USB读卡器插入到操作电脑中, 经过少许等待, 会发现系统多出两个盘符, 如图:

打开工具PanasonicSDFormatter, 在Drive中选择Boot之外的那个盘符, 这里也就是G盘,直接点击"格式化"按钮进行格式化,如图:

出现以下界面说明格式化成功,如图:

此时再查看SDCard的盘符, 可以发现已经可以看到SDCard的容量, 接下来便可以开始烧录系统。
3.2.3 系统镜像烧录
打开工具balenaEtcher,点击按钮"Select image",选择下载到本地的kali镜像,之后再点击“Flash”按钮开始烧录,如图:

烧录过程要等待比较长一段时间, 等进度到达100%后, 便可以拔出读卡器, 将SDCard插入到树莓派底部插槽中,通电进入系统。
在树莓派中启动的Kali系统启动界面如下:

4.设置网卡监听模式
无线网卡监听模式是指无线网卡可以接收所有经过它的数据流的工作方式, 通常用于网络发现。当前扫描无线热点之前, 必须将无线网卡设置为监听模式。然而,并不是所有无线网卡默认支持监听模式, 可以使用工具: airmon-ng测试当前的无线网卡是否支持监听模式, 首先直接在Kali系统中运行以下命令:
# airmon-ng
命令执行后,显示以下网卡名称:

注意:上图中的rt2800usb就是我们选购的第三方网卡,是通过USB接入, airmon-ng命令能够识别的网卡均支持网卡监听模式。
接着输入以下命令,尝试开启无线网卡的监听模式:
# airmon-ng start wlan0
注意: 只有支持监听模式的网卡才能启动成功, 以下是启动监听模式成功后的:

到这里, 监听模式启动完毕, 下面就可以开始扫描周边的无线热点了。
5.启动无线扫描
无线扫描主要使用Kali自带的air-dump-ng来完成, 例如,使用以下命令开启抓包:
# airodump-ng 监听网卡名称 --beacons -w 抓包文件保存路径
该命令执行后, 程序不会退出, 会持续进行扫描, 并且会生成抓包文件,如图:

其中, .csv文件中保存了扫描到的无线热点信息,如图:

除此之外, 还能获取到连接到Wifi的客户端信息,如图:

6.总结
到此, 一个属于我们自己的便携式无线网络攻防环境搭建完成, 后面可以以此环境做很多研究工作,包括无线攻防技术研究, 开发自己的程序对数据进行分析和处理, 以及协议分析及元数据获取等等。
相关文章:
低成本打造便携式无线网络攻防学习环境
1.摘要 一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连…...
Qt|QLabel显示刷新图像数据
参考:QImage、QClipboard(https://zhuanlan.zhihu.com/p/649611141) 获取图像数据并转换为QImage unsigned char *data 图像数据; QImage show_image_ QImage(data, imgInfo.width, imgInfo.height, imgInfo.width, QImage::Format_Grays…...
Java类加载那些事
Java源文件(.java文件)被编译器编译后变为字节码形式的类文件(.class文件),Java类加载的过程就是JVM加载.class的二进制文件并且放到内存中,将数据放到方法区,并且在堆区构造一个java.lang.clas…...
QSplitter分裂器
QSplitter QSplitter 是 Qt 框架提供的一个小部件(widget),用于在用户界面中创建可拖动的分割窗口,允许用户调整子部件的大小和布局。它可以将父部件分割为多个可调整大小的子部件,使用户能够自定义界面的布局和大小。…...
pgsql 时区查看和修改
建议使用UTC时区,或者和linux、后端程序的时区保持一致,否则容易出现时间的差别。 pgsql的时间字段有一个带时区的timestamp with time zone,如果业务涉及多个时区,建议使用这个字段。 相关链接参考: linux时区设置和…...
el-table 表格表头、单元格、滚动条样式修改
.2023.11.21今天我学习了如何对el-table表格样式进行修改,如图: 运用的两个样式主要是 1.header-cell-class-name(设置表头) 2.class-name(设置行单元格) 代码如下: <el-table :data&quo…...
dockerDesktop使用方法
安装软件 装在C盘会容易满,可以装在D盘, "path\to\Docker Desktop Installer.exe" install -accept-license --installation-dirD:\Docker\Docker --wsl-default-data-rootD:\Docker\data并且在软件的设置的Docker Engine里添加阿里镜像源…...
[Ubuntu]RT810xE--网线已拔出--问题解决
0 环境 ubuntu 22.04.3 LTSDell Inspiron 15 5547windows/ubuntu 双系统 1 问题说明 Dell 笔记本安装的 Ubutun 系统,有线网络无法使用,一直显示 “网线已拔出”。 网上一查,才了解到主要原因:网卡驱动安装错误。系统默认安装…...
美国DDoS服务器:如何保护你的网站免遭攻击?
在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展,网络安全问题也日益严重。其中,DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么,如何保护你的网站免遭DDoS攻击呢?下面将介绍…...
R语言数据缩放-1到1
目录 普通scale -1到1限定范围scale 普通scale R语言实战:scale()函数 - 知乎 (zhihu.com) scale(x, center TRUE, scale TRUE) 过程: 对每个变量(列)计算平均值(mean)和标准…...
C语言第二十五弹--打印菱形
C语言打印菱形 思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2对应行数 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。 上半部分代码如下 for (int i 0;i < line;i){//上…...
PyTorch微调终极指南1:预训练模型调整
如今,在训练深度学习模型时,通过根据自己的数据微调预训练模型来进行迁移学习(transfer learning)已成为首选方法。 通过微调这些模型,我们可以利用他们的专业知识并使它们适应我们的特定任务,从而节省宝贵…...
Uptime Kuma 企业微信群机器人告警
curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa \-H Content-Type: application/json \-d {"msgtype": "text","text": {"content": "hello world"}}企业微信群机器人ke…...
【网络安全】-网络安全的分类详解
文章目录 介绍1. 网络层安全(Network Layer Security)理论实操使用VPN保护隐私 2. 应用层安全(Application Layer Security)理论实操使用密码管理器 3. 端点安全(Endpoint Security)理论实操定期更新防病毒…...
php利用ZipArchive类实现文件压缩与解压
github项目 1、Linux 安装zlib库 cd /usr/local/src wget https://zlib.net/current/zlib.tar.gz tar -zxvf zlib.tar.gz cd zlib-1.3 ./configure make && make install 2、zlib的使用 $all_name all.zip;// 创建ZipArchive对象$zip_all new ZipArchive();if ($z…...
Java面试附答案:掌握关键技能,突破面试难题!
问题:什么是大O表示法?它在Java中的应用是什么? 回答: 大O表示法是一种用来衡量算法复杂度的方法,它描述了算法的时间复杂度和空间复杂度的增长速度。它使用符号O(n)来表示算法的渐进时间复杂度,其中n表示…...
API自动化测试:如何构建高效的测试流程
一、引言 在当前的软件开发环境中,API(Application Programming Interface)扮演了极为重要的角色,连接着应用的各个部分。对API进行自动化测试能够提高测试效率,降低错误,确保软件产品的质量。本文将通过实…...
字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan…...
SAP_ABAP_面试篇_关于Function Module函数的三种处理类型
关于 Function Module 这个技术点,在面试过程中一般会考察以下几个问题: 1 函数处理类型的更新模式 一般会问到异步和事务(逻辑单元 LUW),异步函数的调试方式、SM13监控更新函数的执行过程(V1 与 V2 模式…...
CentOS简介、ISO类型、CentOS7安装与配置以及远程连接。
目录 1.CentOS简介 2.CentOS ISO类型 3.CentOS7安装与配置 4.远程连接 1.CentOS简介 CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照…...
Tiled地图编辑器:掌握世界构建功能,轻松管理大型游戏场景
Tiled地图编辑器:掌握世界构建功能,轻松管理大型游戏场景 【免费下载链接】tiled Flexible level editor 项目地址: https://gitcode.com/gh_mirrors/ti/tiled Tiled地图编辑器作为一款专业的2D地图编辑工具,其强大的世界构建功能让开…...
微信好友关系检测神器:一键识别谁删除了你的终极指南
微信好友关系检测神器:一键识别谁删除了你的终极指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …...
Next.js 16 + Chakra UI 3 分层架构模板:现代前端开发最佳实践
1. 项目概述:一个现代前端开发的“瑞士军刀” 如果你正在寻找一个能让你跳过繁琐配置、直接进入 Next.js Chakra UI TypeScript 项目核心开发的起点,那么 nextarter-chakra 这个模板绝对值得你花时间研究。这不仅仅是一个简单的“Hello World”项目…...
vcs+verdi 使用记录
参考文章:VCSVerdi仿真Xilinx FPGA Vivado工程 参考文章:Linux下VCS与Verdi联合仿真简易教程及例子示范 在tb.v文件中加入: ifdef FSDB initial begin$fsdbDumpfile("test.fsdb"); //xxx根据需要替换为文件名$fsdbDumpvars;$fsd…...
终极AMD Ryzen调试工具:免费解锁隐藏性能的完整指南
终极AMD Ryzen调试工具:免费解锁隐藏性能的完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...
AlwaysOnTop:3步实现Windows窗口置顶,工作效率提升300%
AlwaysOnTop:3步实现Windows窗口置顶,工作效率提升300% 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在多任务处理时频繁切换窗口࿰…...
【MCP 2026多模态部署终极指南】:20年一线专家亲授GPU显存压缩、跨模态对齐与低延迟推理3大实战范式
更多请点击: https://intelliparadigm.com 第一章:MCP 2026多模态部署全景认知与技术演进脉络 MCP(Multimodal Cognitive Platform)2026 是面向边缘-云协同场景的下一代多模态智能基础设施平台,其核心突破在于统一语义…...
Godot资源解包终极指南:快速提取游戏资源的完整实践教程
Godot资源解包终极指南:快速提取游戏资源的完整实践教程 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 在Godot游戏开发与资源分析领域,Godot资源解包工具是一款专门用于解包…...
大模型---温度与其他采样方法
目录 1.温度的定义 2.温度和top-k、top-p的关系 参考论文:1904.09751 1.温度的定义 温度是模型解码阶段的一个采样参数:模型先为下一个 token 计算一组logits(大小为词表大小,logit表示词表中每个token的分数),再用温度把这组 logits 重新缩放,最后通过 softmax 得到…...
航天电子器件辐射效应与加固技术解析
1. 航天电子器件的辐射环境挑战在距离地球表面100公里以上的太空环境中,电子系统面临着地面应用从未遇到的严酷挑战。根据NASA的统计数据,近地轨道每立方厘米平均存在4-5个高能粒子,而地球同步轨道则高达20个/cm。这些粒子主要来源于三个渠道…...
