msvignesh-25/layer2-to-physical-attack-chain

GitHub: msvignesh-25/layer2-to-physical-attack-chain

这是一个展示从网络层到物理层完整攻击链的安全研究项目,旨在揭示物联网设备中的级联漏洞及其防御方法。

Stars: 1 | Forks: 0

# 多层物联网安全攻击链与防御系统 [![详细图集](https://img.shields.io/badge/Detailed_Gallery-View%20PDF-red?style=for-the-badge&logo=adobeacrobatreader)](attack-chain-analysis.pdf) ## ⚠️ 免责声明 本项目仅在个人拥有的设备于隔离的家庭实验环境中构建和测试。所有演示的技术仅用于教育和安全意识提升目的。未经明确许可,在网络或设备上执行这些攻击是非法的。 ## 项目概述 本项目展示了一个跨越第2层到物理执行的完整攻击链——说明了一个网络层面的漏洞(ARP)如何级联导致凭据窃取和物理设备控制。 ## 攻击链 ``` Layer 2 -> ARP Poisoning (Kali + Scapy) Layer 3 -> DNS Spoofing (Kali + netfilterqueue) Layer 7 -> Web Server (ESP32 WiFi) UART Signal Capture (Salae Logic Analyser) RF Layer -> 433 MHz Signal Replay (CC1101 + ESP32) Physical -> Replay actuation (433 MHz relay) Defence -> ARP Anomaly Detector (Python) Monitor -> Live Dashboard (Flask) ``` ## 使用的硬件 | 组件 | 用途 | |------------------------|-----------------------------------| | Kali Linux | 攻击者机器 | | ESP32 | 网络服务器 + 射频发射器 | | CC1101 433MHz | 射频信号捕获与重放 | | 433MHz继电器 | 目标物理设备 | | Saleae逻辑分析仪 | UART信号捕获 | | 手机 | 受害设备 | ## 项目结构 ``` arp_project/ ├── attacker.py # ARP poisoner ├── dns_spoof.py # DNS interceptor ├── detector.py # ARP anomaly detector ├── cred_receiver.py # Credential receiver ├── dashboard/ │ ├── app.py # Flask dashboard │ └── templates/ │ └── index.html # Dashboard UI ├── attack_timeline.txt # Full attack timeline framework/ ├── threat_model.txt # STRIDE threat model analysis/ ├── rf_vulnerability_analysis.txt # RF security analysis ── README.md # This file ``` ## 概念验证 ### 阶段1 - 侦察 识别受害设备和网关,获取其IP和MAC地址。 ### 阶段2 - ARP投毒 通过 `attacker.py` 进行网络流量重定向。
使用伪造的ARP响应,将网关IP错误地映射到攻击者的MAC地址。 ### 阶段3 - DNS欺骗 通过iptables FORWARD拦截流量,并使用NFQUEUE发送至Linux内核。
`dns_spoof.py` 处理队列以注入恶意DNS响应。 ### 阶段4 - 凭据捕获 ESP32托管虚假登录页面。凭据通过以下方式捕获: - 串口监视器 - Flask控制面板 - 逻辑分析仪 ### 阶段5 - 射频重放攻击 CC1101捕获433 MHz EV1527信号。重放信号以驱动物理继电器。通过声音和万用表测试进行演示。 ### 阶段6 - 防御 detector.py 在2秒内检测MAC欺骗,记录所有警报。 ## 演示视频 https://github.com/user-attachments/assets/c20af01b-5252-4365-91fc-ec1da15313e3 **注意**:要听到凭据捕获期间物理继电器触发的声音,请开启音频。 ## 主要发现 1. **ARP**协议具有**零认证**——任何局域网设备都可以冒充任何其他设备 2. EV1527 433MHz协议使用**固定代码**——无滚动码,无加密,可轻易重放 3. 未加密的**DNS**解析*容易*受到注入攻击——基于UDP的本地**DNS**缺乏完整性检查,允许伪造的数据包在合法网关响应之前覆盖路由表 4. **加密失败**——由于缺乏滚动码机制或动态握手,任何通过无线捕获的信号都可以*无限期重放*以操纵物理硬件 ## 展示的技能 - ARP欺骗检测 - DNS拦截分析 - Python数据包操作 - CC1101射频通信分析 - Flask控制面板开发 - ESP32硬件接口 - 基于Linux的攻击工具 ## 屏幕截图 | 证据 | 描述 | |------------------------|------------------------------------------| | [before_poison.jpg](assets/before_arp-poison.jpg) | 手机ARP表——真实路由器MAC地址 | | [during_poison.jpg](assets/during_arp-poison.jpg) | 手机ARP表——被欺骗为Kali MAC地址 | | [dns_spoof_output.png](assets/dns_spoof_output.png) | 被拦截和重定向的DNS查询 | | [logic2_credentials_data.jpg](assets/Logic2_credentials.png) | 在UART信号层面解码的凭据 | | [logic2_credentials_wave.jpg](assets/Logic2_credentials_raw.png) | 在UART信号层面解码的凭据(原始数据) | | [dashboard.jpg](assets/dashboard.jpg) | 实时监控控制面板 | | [detector_alert.jpg](assets/detector_alert.png) | ARP异常检测输出 | | [wireshark_arp.jpg](assets/wireshark_arp.png) | 数据包级别的ARP投毒数据包 | | [wireshark_dns.jpg](assets/wireshark_dns.png) | 数据包级别的DNS欺骗 |
标签:逆向工具