数据泄露防护- BadUSB 制作 模拟
来源:互联网 发布:数据总线宽度 编辑:程序博客网 时间:2024/04/30 15:43
1. 什么是BadUSB
找度娘/谷歌爷爷
2. 参考网站
- https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices
- https://github.com/adamcaudill/Psychson (有具体制作BadUSB的流程说明)
- badusb支持的USB:<https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices >
- 需要下载的文件保存在本地:(Phison 打包文件说明)
- PsyChson在GitHub上的打包文件: <https://github.com/adamcaudill/Psychson>
- 实验的USB 类型:SanDisk Ultra 16Gb USB 3.0 SDCZ48-016G
- 查看USB固件工具:<http://www.upan.cc/tools/mass/Phison/>,这里我下载了Phison MPALL v3.72.0B.zip
- PS2251-03参数(官网)
- 环境搭建
a. 下载安装
- .Net 4.0 <http://www.microsoft.com/en-us/download/confirmation.aspx?id=17851>
- Visual Studio 2012 Express, 用于编译工具:< http://www.microsoft.com/en-us/download/details.aspx?id=34673 >
- SDCC(small Device C Compiler) 到 “(默认)C:\Program Files\SDCC”目录下: < http://sdcc.sourceforge.net/ >
b. 查找固件版本等相关信息
方法1:
下载 PsyChson 在GitHub 上的打包文件Psychson-master.zip ,下载到本地,
转到 Psychson-master\Psychson-master\DriveCom 目录下,
用 VS 打开 sln 后缀文件,
重新编译, ..\obj\Debug\ 目录下生成 DriveCom.exe 可执行文件.
或者直接使用Psychson-master\tools\目录下的 DriveCom.exe 即可
复制此exe 文件到 C盘下(为了便于使用命令窗口)
输入命令, 如右图, 将返回硬盘信息
信息中看是否有如下字段(Reported chip type:2303) (这是目前唯一支持的 chip type)
方法2: 打开 Phison MPALL v3.72.0B.zip 里的 GetInfo.exe,输入盘符 G, 点击 Read
可以看到,这里的 芯片类型 也是 2303, 同时 固件版本是 01.01.10
但是这里有个问题是无法看到它是不是 Phison-Chip(群联芯片)
这个没法确定的话下面就得自己制作 Burner Image,
所以得查到芯片版本
这里我们使用另一个工具 ChipGenius.rar, 打开ChipGenius_v4_00_0027_pre2.exe 工具
可以看到 主控型号为 PS2251-03 , 版本是 110
下面开始做固件部分
- 备份 固件
a. 复制 Psychson-master\templates\BNdummy.bin 及FWdummy.bin 到 C盘下,
修改BNdummy.bin ->BN03V104M.bin(参考)
运行 DriveCom.exe 执行如下命令,
DriveCom.exe /drive=E /action=DumpFirmware /burner=BN03V104M.BIN /firmware=fw.bin
运行DriveCom, 通过盘符来选择想要写入的盘,以及烧录器镜像的路径和存放固件的路径:
E USB盘符
BN03V104M.BIN burner image 名
fw.bin 生成的 firmware dump.
如果盘符为E,BN03V104M.BIN 就是烧录器的镜像,fw.bin就是读出来的固件镜像。
目前只有 大小为200KB 固件镜像能被读出。(这也说明了为何要用 Patriot 8GB Supersonic Xpress 这个U盘)。
-- 建议 先使 USB进入 bootmode :
<Entering Boot Mode https://github.com/adamcaudill/Psychson/wiki/Executing-From-Boot-ROM>
发现 再次插入USB时 无法显示盘符了, (郁闷 , 解决方案--Dumping Firmware 后 USB盘符不见了)
当然 USB 也能还原 : PS2303 USB recovery 复原
解决方案
Pin Shorting
参考官方给的图片
PinsToShortUponPlugInForBootMode.jpg
系统不再显示盘符,但是我感觉到已经被识别了,但是系统并没有把它当做USB 来识别,
而且 USB 指示灯 一闪一闪的,所以参考下面链接
https://github.com/adamcaudill/Psychson/issues/14
Entering Boot Mode from Software
출처: <https://github.com/adamcaudill/Psychson/wiki/Executing-From-Boot-ROM>
出去 USB 外壳(ㅠㅠ), 拆拆拆
找个 螺丝刀 抵在 上面箭头指示的 pin 1和 2 位置 , 然后插入电脑,指示灯不再闪动
在 CMD 中再次输入如下命令
可以看到,USB 又可以识别了,但是系统可以显示其盘符了
问题解决 继续开始备份固件, 又发生错误了 (DeviceIoControl failed:0079)
参考 https://github.com/adamcaudill/Psychson/issues/14 发现有人跟我发生了一样的错误
意思是这个USB 里面没有
内置 Phison-Chip(群联芯片) ,
类似如下
我通过 ChipGenius.rar,上面这个工具检查之后,
发现是Phison-Chip(群联芯片)
不管如何, 同一个问题了。
- 下载对应的 Burner Image
- 打开 http://www.usbdev.ru/files/phison/ 转到 “Additional Files ” 段,
查找之前收集到 的 PS2251-03 对应的固件
下载后,解压, 找个 BN03V104M.BIN ,放到 C盘
Running Demo 1 (HID Payload)
출처: <https://github.com/adamcaudill/Psychson>
- 创建一个脚本(参考:https://github.com/adamcaudill/Psychson),复制里面任何一个例子,保存为 keys.txt文件,放到C盘根目录下,方面使用命令
- 使用Duckencoder文件夹下的encoder.jar工具编译这个脚本(这个脚本也放到 C盘根目录下)
- 这时将生成 inject.bin文件
- 然后把用户自定义固件名复制到 CFW.bin -> hid.bin,然后把 inject.bin嵌入到 hid.bin里面,(注意,EmbedPayload.exe 也是通过 VS编译出来的)
- 出现 signature not found错误(解决方案https://github.com/adamcaudill/Psychson/issues/29)
再次运行一次, OK
把固件写入 USB
DriveCom.exe /drive=G /action=SendFirmware /burner=BN03V104M.BIN /firmware=hid.bin
G: USB盘符
BN03V104M.BIN : burner image文件
hid.bin : 写入了脚本的固件。
如果盘符为G,BN03V104M.BIN 就是烧录器的镜像,fw.bin就是要写入的固件镜像。
重新插入 U盘,发现 U盘自动打开买了窗口,运行 Hello World .
- 数据泄露防护- BadUSB 制作 模拟
- 数据泄露防护- DLP 如何拦截 BadUSB
- 防护方案Hacking Team数据泄露事件
- BadUSB
- BadUSB原理浅析及制作指南
- 解析企业如何选择数据泄露防护系统?
- 八个问题带你认识一个成熟的数据泄露防护方案
- 【NOIP模拟题】防护伞
- 解密BadUSB
- badusb exploit
- BadUSB的防范研究
- 数据防护之打造安全.mdb
- 十大秘诀防护小企业数据安全
- 云计算数据与信息安全防护
- 云计算数据与信息安全防护
- 自主防护的数据安全体系
- 如何实现百分百的数据安全防护?!
- 2015数据泄露调查报告
- Makefile自动生成(autotools工具的使用)
- json数据处理技巧(字段带空格、增加字段)
- 10-0. 说反话 (20)
- 再看TCP/IP第一卷>关于链路层的知识细节及相关协议
- 在Android源码树中添加userspace I2C读写工具(i2c-util)
- 数据泄露防护- BadUSB 制作 模拟
- XCode快捷键
- LXC(Linux Container)
- ECMASCRIPT——Js中的数据类型、运算符、流程控制、函数作用域链、预解析、匿名函数自执行、怪异的几个地方
- 2.字符排序
- vc中调用Com组件的方法详解
- 《挑战程序设计》第一章第一题
- OSG场景保存
- [NOI2012]随机数生成器(矩阵乘法+快速乘)