针对基于Phison(群联)U盘的BadUSB攻击
修改U盘固件使之在插入电脑时能执行键盘指令。原文和源码在此,粗略翻译了一下。https://github.com/adamcaudill/Psychson
其实还有类似的成品卖,叫做USB Rubber Ducky :http://192.64.85.110/
——————以下是翻译——————
Phison 2251-03 (2303) 自定义固件 & 固件打补丁
这个库包含以下项目:
DriveCom -- 一个PC上的C# 程序,用来与基于Phison主控的设备连接。
EmbedPayload -- 一个PC上的C# 程序,将 Rubber Ducky inject.bin key scripts嵌入到定制的firmware,使之在设备上工作。
Injector -- 一个PC上的C# 程序,用来从固件中提取 addresses/equates以及在固件上打补丁代码。
firmware -- 用C语言写的8051自定义固件。
patch -- 用C语言写的8051补丁代码。
发布了以下各项目:
patch -- 用C语言写的8051补丁代码。
tools -- 这是所需工具。皆为编译过的二进制文件。
CFW.bin -- 这个自定义固件的作用是发送预设的键盘指令。
请注意,这个固件的补丁仅针对PS2251-03 ,固件版本1.03.53(就是那个8K eD3 NAND flash chip)。其他设备有可能会运行。
只要你用了正确的固件镜像使之与控制器版本、NAND 芯片适配,在降级为早期版本的时候不会有什么损害。 (比如 1.10.53).
注意: 这是实验性质的软件,无论用在不支持的设备还是支持的设备上面,都有可能造成数据丢失,乃至对 设备造成永久损坏。请自负风险。
1.开始
查看 Known Supported Devices ,获知所支持的设备。对不被支持的设备进行操作的话可能会造成永久损坏。
开始之前,我们应该去弄一个烧录器镜像,就是8051的可执行文件。它应该被写入设备的FLASH芯片中。
浏览 Obtaining a Burner Image 获得更多信息。
2.构建编译环境
在修改当前的固件之前,你必须要设置好编译环境。
浏览 Setting Up the Environment 获得更多信息。在最小安装模式下,SDCC 需要被安装在 C:\Program Files\SDCC.
3.读出固件
运行DriveCom, 通过盘符来选择想要写入的盘,以及烧录器镜像的路径和存放固件的路径:
tools\DriveCom.exe /drive=E /action=DumpFirmware /burner=BN03V104M.BIN /firmware=fw.bin
如果盘符为E,BN03V104M.BIN 就是烧录器的镜像,fw.bin就是读出来的固件镜像。
目前只有 大小为200KB 固件镜像能被读出。(这也说明了为何要用 Patriot 8GB Supersonic Xpress 这个U盘)。
4.装入固件
运行DriveCom, 通过盘符来选择想要写入的盘,以及烧录器镜像的路径和(存放?)固件的路径:
tools\DriveCom.exe /drive=E /action=SendFirmware /burner=BN03V104M.BIN /firmware=fw.bin
如果盘符为E,BN03V104M.BIN 就是烧录器的镜像,fw.bin就是要写入的固件镜像。
5.测试Demo 1 (HID Payload)
在Rubber Ducky format创建一个 key script,然后用Duckencoder 创建 inject.bin ,如下所示:
java -jar duckencoder.java -i keys.txt -o inject.bin
其中 keys.txt 就是key script的路径。
你可能会注意到在Rubber Ducky与drive二者的延迟并不完全相同,可以通过调整script来补偿。
(工具来自 https://code.google.com/p/ducky-decode/.)
生成 inject.bin 以后,按以下操作来将其嵌入到定制化的固件中:
copy CFW.bin hid.bintools\EmbedPayload.exe inject.bin hid.bin
上文Inject.bin的路径设置为刚才生成 inject.bin 文件的路径, hid.bin 是 HID payload固件的路径。
(Notice that the firmware image is copied, and the payload is embedded into the copy -- 因为payload 只能被嵌入一次, 所以原来的 CFW.bin 必须保持完整.)
现在可以将固件写入设备:
tools\DriveCom.exe /drive=E /action=SendFirmware /burner=BN03V104M.BIN /firmware=hid.bin
如果目标盘符为E,BN03V104M.BIN就是烧录器镜像,hid.bin就是 HID payload 固件。
Huge thanks to the Hak5 team for their work on the excellent USB Rubber Ducky!
针对基于Phison(群联)U盘的BadUSB攻击的更多相关文章
- 金士顿U盘,群联PS2251-60主控,量产还原教程
还原成一个可移动磁盘教程,只是在"分区设置"中将 "模式=21" 改为 "模式=3" 即可. 1. 打开:"MPALL_F1_90 ...
- 金士顿U盘,群联PS2251-60主控,量产CDROM教程
量产前准备: 1. 插上U盘,(台式机的话插机箱后面) 2. 一台电脑,最好不要装杀毒软件(特别是360) 3. ISO镜像文件 4. 下载MPALL v3.29.0B.zip 请先耐心看完教程: 1 ...
- 朗科U903 低级格式化后,量产错误:read onlypage (控制器芯片群联2251-03)的解决方案
1. 下载群联量产工作 MPALL v3.63.0D for Netac 2. 在Setting页面,选择如下(红色矩形选中): 3. 然后执行量产,量产完成后,重新插拔就能看到U盘.
- 基于Hadoop开发网络云盘系统客户端界面设计初稿
基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...
- 基于Hadoop开发网络云盘系统架构设计方案
基于Hadoop开发网络云盘系统架构设计方案第一稿 引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己 ...
- 群联MPALL(Rel) 7F V5.03.0A-DL07量产工具 PS2251-07(PS2307)
前言:U盘被写保护,真的很醉人啊~~ 群联MPALL是一款群联PS2251系列主控量产修复工具,本版本支持PS2251-67.PS2251-68.PS2251-02.PS2251-03.PS ...
- [转帖]紫光与群联联盟,长江存储NAND+群联主控+紫光品牌SSD可期
紫光与群联联盟,长江存储NAND+群联主控+紫光品牌SSD可期 全国产的 SSD https://baijiahao.baidu.com/s?id=1620789429952097018&wf ...
- 『集群』005 Slithice 基于 集群 的 自动容错
Slithice 基于 集群 的 自动容错 Slithice容错概述: Slithice 支持 非集群 的 独立服务端: 支持 基于 中央服务器 的 集群服务端: 支持 基于 自定义配置 的 集群服务 ...
- 基于粒子群优化的无约束50维Rosenbrock函数求解
基于粒子群优化的无约束50维Rosenbrock函数求解 一.问题重述 无约束50维的Rosenbrock函数可以描述如下: 其中, 0 要求按PSO算法思想设计一个该问题的求解算法. Rosenbr ...
随机推荐
- BZOJ1226 [SDOI2009]学校食堂Dining 【状压dp】
题目 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示 ...
- [解决方案][错误代码:0x80070002]IIS7及以上伪静态报错404
故障现象:DTCMS开启伪静态功能,VS2010预览正常,发布到IIS后报错404.0错误 (WIN7,WIN8,SERVER2008).模块IISWebCore通知MapRequestHandler ...
- UVa12333 Revenge of Fibonacci
高精度 trie 暴力预处理出前100000个fibonacci数,将每个数的前40位数字串插入到trie中,记录每个结点最早可以由哪个数字串到达. 然后依次回答询问即可. 存fibonacci数的数 ...
- 【NOIP2016练习】T2 花花的聚会 (树形DP,倍增)
题意: 花花住在 H 国.H 国有 n 个城市,其中 1 号城市为其首都.城市间有 n 1 条单向道路.从任意一个城市出发,都可以沿着这些单向道路一路走到首都.事实上,从任何一个城市走到首都的路径是唯 ...
- vue.js源码学习分享(四)
/** * Generate a static keys string from compiler modules.//从编译器生成一个静态键字符串模块. */ function genStaticK ...
- FMDB使用SQLite事务Save Point
FMDB使用SQLite事务Save Point 在SQLite中,事务提供了批量处理,批量撤销的功能.当批量操作中有一步无法完成操作,就会把执行过的语句都撤销,恢复到撤销前的状态.但是由于SQL ...
- jenkins+gitlab发布maven项目
1.简介:什么是Maven Maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架; 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生 ...
- REBXOR
题面 Description 给定一个含N个元素的数组A,下标从1开始.请找出下面式子的最大值. (A[l1]xorA[l2+1]xor-xorA[r1])+(A[l2]xorA[l2+1]xor-x ...
- webpack 学习笔记 03 Code Splitting
Introduction 对于较大的web 应用来说,将所有的代码文件压缩成一个文件是不合适的,在部分代码文件只有特殊情况下才被需要的情况下,这无疑是一种浪费.webpack 提供了讲代码文件分块的能 ...
- 手机微硬盘读取速度>50MB/s eMMC技术浅析
转载:http://mobile.zol.com.cn/296/2968659_all.html#p2968659 手机微硬盘读取速度>50MB/s 在开始今天的话题之前,请大家随笔者一起时光倒 ...