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

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. PsyChson在GitHub上的打包文件:
    <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.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(群联芯片)

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

  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. 这时将生成
    inject.bin文件
  4. 然后把用户自定义固件名复制到
    CFW.bin -> hid.bin,然后把 inject.bin嵌入到
    hid.bin里面,(注意,EmbedPayload.exe
    也是通过 VS编译出来的)
  5. 出现  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 .

时间: 2024-10-13 07:24:47

数据泄露防护- BadUSB制作模拟的相关文章

BadUSB制作-详细指南

因为一些因素,所以近期接触到了badusb,官方话还是要说,科普话也同样要说 “BadUSB”是计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在BlackHat安全大会上公布.BadUSB号称是世界上最邪恶的USB外设. 首先买了一块板子,没错就是这种三四十块的,虽然外形很难让人接受,如果做社工的话建议多花十块,买个带壳子的! 开发工具,没错就是这货 插入我们买的板子,点击工具-获取开发板信息 然后再工具,选择我们刚刚得到的信息 好了   准备工

使用ivx制作模拟时钟的经验总结

之前的帖子里已经使用时间轴和轨迹实现了很多的效果,今天我们来做一个模拟时钟.主要思路是用一个作为表盘,三个矩形分别作为时针,分针和秒针,通过各自轨迹设置他们在同一时间轴下的转动圈数成一定比例关系. 1.表盘首先是添加椭圆组件,这里我们需要设置它的原点横纵坐标都是50%,这样椭圆组件的XY坐标就是它的中心店坐标,这个XY坐标在我们设置指针的时候也要用到.2.添加指针指针使用矩形来展示的,由于指针要绕着表盘的中心点旋转,所以我们要将矩形的坐标原点与椭圆的坐标原点设置在同一个位置.因此先设置矩形的原点

unity中制作模拟第一人称视角下的指南针

private int zRotation; public GameObject obj; public void Update() { //obj = GameObject.Find("Camera");   //获取名为Camera的相机对象 zRotation = player.transform.eulerAngles.y; //player是unity第一人称 compass.transform.eulerAngles = new Vector3(0, 0, zRotatio

基于ArduinoLeonardo板子的BadUSB攻击实战

0X00 前言 在Freebuf上许多同学已经对HID攻击谈了自己的看法,如维克斯同学的<利用Arduino快速制作Teensy BadUSB>无论从科普还是实践都给我们详尽的描述了BadUSB制作的相关过程,lpcdma同学的<使用arduino进行渗透测试>则通过SET与Arduino的结合进行渗透,mrzcpo同学的 <HID高级攻击姿势:利用PowerShell脚本进行文件窃取>则介绍了获取文件的详细步骤,我在学习领悟之后想到了一些改进方案,比如绕过360主动防

使用Arduino开发板制作交流电压表

在本文中,我们将使用Arduino开发板制作一个交流电压测量装置,测量我们家中交流电源的电压.我们将在Arduino IDE的串行监视器上打印输出该电压,并在万用表上显示出来. 制作数字电压表比模拟电压更容易一些,因为在制作模拟电压表时,您必须具备一些物理参数的知识,如扭矩.摩擦损耗等.然而在制作数字电压表时,您只需使用LCD或LED矩阵或甚至你的笔记本电脑打印输出电压值即可. 所需的元件 ●  一个220-12变压器 ●   1N4007二极管 ●   1uf电容 ●   10k和4.7K电阻

极好的模拟/数字混合信号的电路板布局布线注意事项

极好的模拟/数字混合信号的电路板布局布线注意事项 PCB设计规范与指南, 电磁兼容 EMC by xfire 文章目录 [显示] 1. 简介 要想了解在使用分辨率等于或高于 12 位 ADC 时可能发生的问题,需要确定 ADC 能够处理多小的电压值.电压范围为 2 V 的 8 位 ADC 能够检测最小电压值为 2 V/256 = 0.008 V,即 8 mV 左右.尽管 8 mV 看上去比较小,让我们把这个值和更高分辨率的 ADC 进行比较,表 1 显示了对具有输入范围为±1 V 和分辨率为 8

android之模拟手机助手下载

在学习了javaSE过后,现在开始继续我的android生活,之前学习完JavaSE,通过UI界面做过模拟游戏<贪吃蛇>和基本版计算器,现在学习Android接近有20天的时间,开始制作模拟手机助手下载,制作手机助手下载,关键是练习一下listview,和listview一些相关的优化,以及优化所产生的一些bug和解决. 本次需呀用到hfs外部软件,来解决网络的问题,和一些图片,用于下载时候的显示.例如手机qq.微信.等一些软件, 下载软件的时候需要下载是时间,因为我们的main主线程不能做耗

文档加密软件的秘密

在当前信息泄露事件时有发生的大背景下,如何保障信息.文档类数据安全,实现数据防泄密目的显得尤为重要.就数据防泄密而言,文档加密软件是其中的有效方法之一,但除此以外还有DLP数据泄露防护系统以及专业用于源代码防泄密的DSA数据安全隔离等多种技术手段. 在整个加解密过程中,无需用户参与,使用非常方便.文档加密软件通常主要用于文档.图纸类数据加密保护,而不能用于源代码等进程比较复杂的数据类型保护. 目前文档加密软件已是非常成熟的产品,可实现以下几方面数据防泄密效果: 1)文档透明加密-在文档创建时即加

军火库(第一期):无线电硬件安全大牛都用哪些利器?

本期「军火专家」:杨卿 杨卿,ID:Ir0nSmith,曾用名Anon(AnOnYMoUs)360独角兽安全团队(UnicornTeam).360企业安全集团天巡产品负责人.国内首本无线通信安全书籍<无线电安全攻防大揭密>作者: 芭莎男士(2015年9月刊 商业)-摄于拉斯维加斯 MGM [小编:Ir0nSmith童鞋这姿势让我莫名想起了某个表情包 ] 同时,他也是国内首个地铁无线网(Wireless)与公交卡(RFID)安全漏洞的发现及报告者.2015年315晚会WiFi安全环节的“网络安全