在做IOT网络安全测试的时候要经常需要用到USB模糊测试的工具,Facedancer21是一个非常经典的支持硬件USB模拟和测试工具,得益于其全部开源的特点,用户可以自行打样硬件和使用软件
一、硬件购买
这个硬件在国内还是比较少有的,博主也是在闲鱼上收的
二、刷写固件
固件刷写的话可以需要具备python2环境,这里使用kali-linux进行操作
1、检查系统是否识别了facedancer21
使用Tpye-C的数据线连接电脑,输入lsusb
,如果存在类似Bus 007 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
的提示就可以说明设备已经识别到了facedancer21,如果没有显示的话就输入ls /dev/ttyUSB*
查看是否有显示设备
2、下载固件源码
sudo su
mkdir ~/svn
cd ~/svn
git clone https://github.com/travisgoodspeed/goodfet goodfet
cd goodfet/client
sudo make link
ShellScript3、下载python依赖包
export board=facedancer21
pip2 install pyserial
ShellScript4、刷写固件
cd ~/svn/goodfet/firmware/prebuilt
board=facedancer21 goodfet.bsl -e -p facedancer21.hex
ShellScript当最后提示”5374 bytes programmed.”说明固件刷写成功了,等待一会就会正常启动了
5、测试固件是否刷写成功
goodfet.monitor listapps full
ShellScript如果有固件信息提示说明固件刷写成功
三、使用官方模拟功能
待攻关
四、使用facedancer框架
待攻关
五、使用umap2进行设备模拟和fuzz
umap2可以支持调用facedancer21进行USB设备模拟和fuzz输入,这个工具大部分操作是支持python3的,但是模糊测试部分的脚本只能使用python2,因此建议只使用python2打开
1、安装
#安装umap2
pip install git+https://github.com/nccgroup/umap2.git#egg=umap2
#拉取源码
git clone https://github.com/nccgroup/umap2.git
#编译并安装
python2 setup.py build
python2 setup.py install
ShellScript可以输入umap2emulate
来测试是否安装成功
2、工具集
umap2有几个命令可以使用,详细用法可以参考Github
(1)、umap2list
这个命令可以显示umap2支持的设备列表,目前支持下列几类设备的模拟和fuzz
(2)、umap2emulate
用于模拟USB设备,列表可以在umap2list中查看
umap2emulate -P fd:/dev/ttyUSB0 -C mass_storage
ShellScript- 对于大容量存储Mass Storage ,需要在运行目录存在一个
stick.img
的磁盘镜像文件;
- 对于MTP,需要在运行命令下参考一个
mtp_fs
的文件夹,并且需要pip库https://github.com/BinyaminSharet/Mtp
(3)、umap2scan
六、Hydradancer
待攻关