码迷,mamicode.com
首页 > 其他好文 > 详细

数据泄露防护- BadUSB制作模拟

时间:2015-04-25 01:41:07      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:数据泄露防护 dlp badusb 外设   badusb   dlp   右耳听见雨   脚本   

1. 什么是BadUSB

   找度娘/谷歌爷爷

2. 参考网站

  1. https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices
  2. https://github.com/adamcaudill/Psychson (有具体制作BadUSB的流程说明
3. 必要工具

 

  1. badusb支持的USB<https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices >
  2. 需要下载的文件保存在本地:Phison 打包文件说明
  3. PsyChsonGitHub上的打包文件: <https://github.com/adamcaudill/Psychson>
  4. 实验的USB 类型 SanDisk Ultra 16Gb USB 3.0 SDCZ48-016G
  5. 查看USB固件工具:<http://www.upan.cc/tools/mass/Phison/>,这里我下载了Phison MPALL v3.72.0B.zip
  6. PS2251-03参数(官网)

4. 环境搭建
  1. 环境搭建
     a.  下载安装

 

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


下面开始做固件部分

  1. 备份 固件
    a. 复制 Psychson-master\templates\BNdummy.binFWdummy.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 指示灯 一闪一闪的,所以参考下面链接

 

出去 USB 外壳(??), 拆拆拆

找个 螺丝刀 抵在 上面箭头指示的 pin 1和 2 位置 , 然后插入电脑,指示灯不再闪动

 技术分享

在 CMD 中再次输入如下命令

 

技术分享

 

可以看到,USB 又可以识别了,但是系统可以显示其盘符了

 

技术分享

 

 

问题解决 继续开始备份固件, 又发生错误了 (DeviceIoControl failed:0079)


技术分享

 

参考 https://github.com/adamcaudill/Psychson/issues/14 发现有人跟我发生了一样的错误

意思是这个USB 里面没有

内置 Phison-Chip(群联芯片)

类似如下

 

 

我通过 ChipGenius.rar上面这个工具检查之后,

发现是Phison-Chip(群联芯片)

 

不管如何, 同一个问题了。

 

 

  

  1. 下载对应的 Burner Image
      1. 打开 http://www.usbdev.ru/files/phison/  转到 “Additional Files ” 段,

      查找之前收集到 的  PS2251-03  对应的固件 

      下载后,解压, 找个 BN03V104M.BIN ,放到 C盘


开始测试:

Running Demo 1 (HID Payload)

 

??: <https://github.com/adamcaudill/Psychson>

 

  1. 创建一个脚本(参考:https://github.com/adamcaudill/Psychson),复制里面任何一个例子,保存为 keys.txt文件,放到C盘根目录下,方面使用命令
  2. 使用Duckencoder文件夹下的encoder.jar工具编译这个脚本(这个脚本也放到 C盘根目录下)
     
  3. 技术分享
  4. 这时将生成 inject.bin文件
  5. 技术分享
  6. 然后用户自定义固件名复制到 CFW.bin -> hid.bin,然后把 inject.bin嵌入到 hid.bin里面,(注意,EmbedPayload.exe 也是通过 VS编译出来的)
     
  7. 技术分享
  8. 出现  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 外设   badusb   dlp   右耳听见雨   脚本   

原文地址:http://blog.csdn.net/sktechcom/article/details/45259969

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!