这是第一次用Markdown编辑器写东西。感觉还是不错的,可以省下很多排版的时间。@豆瓣将军,夜豆女侠可以尝试着使用呦!然后发现微信公众号的编辑器不支持Markdown,不过一折腾发现是有方法的!
写在文章前面的东西,对,今天是元旦。大家昨天晚上都在跨年,看烟花,约会,看电影。而我,弄着某sb单片机做的傻逼东西,说实话真的是吃力不讨好,具体原因不详。其实对我等对跨年没有什么感觉了,自从中国台湾回来之后,感觉没有这个气氛了。别的不说,原单快乐吧,然后明天答辩快乐~
今天要讲述的是一个汉子插我的U盘的血泪史,那天。某超太无聊了就去想着要不要去把某个LED大屏幕给黑掉,没错。。就是那个天天在放视频的,既然内容天天更新又没看到工作人员天天在换单片机,那么肯定是用电脑控制这个大屏幕的。因为天天烧录什么的太麻烦了,有一套软件。做广告的姐夫告诉我的~~~ 然后我就用了一次物理入侵,或者专业一点叫社会工程学。什么是社工这里就不展开了,后面权限是拿到了。但是某牛,也就是我学长说喂小组宣传要注意影响,就没有继续展开了。于是就有了这篇文章,这么制作一个能黑掉人的U盘。
USB-HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。 交换的数据存储在称为报表(report)的结构内,设备的固件必须支持HID报表的格式。主机在控制与中断传输中传送与要求报表,来传送与接收数据。报表的格式非常有弹性,可以处理任何类别的数据。
驱动:驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。 但是HID有一个特性:就是操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以很多简单的USB设备,喜欢枚举成HID设备,这样就可以不用安装驱动而直接使用。所以HID设备≠安装驱动。
HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。由于这个特性,一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。
TEENSY,比起小小的、微型设备等翻译我更喜欢叫它小熊。 当然笔者开个玩笑,此处是这个设备的专有名词。
其实好多开发板都是基于这款芯片的。这是它的一个官方介绍: http://www.pjrc.com/teensy
上面写着:
The Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port.
大意是:TEENSY的是一个基于USB完整的单片机系统(设备),占用很少的空间(资源),能够实现 许多类型的项目。 所有编程是通过USB。 Teensy主要特点如下
AVR处理器,16 MHz 单个按键编程 易于使用的Teensy Loader应用程序 免费软件开发工具 兼容Mac OS X,Linux和Windows 小尺寸,多项目的完美支持
它分为32Bit和8Bit:
我买来做实验的板是:ATMega32U4 BS Micro pro micro leonardo Arduino 这个板是属于Arduino Leonardo(MCU: ATmega32U4 这个板子有点特殊,刚好支持TEENSY)
貌似UNO没有类似的产品,因为UNO是基于ATmega328。
Arduino是一款便捷灵活、方便上手的开源电子原型平台。 它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。 有人把这被制作成含有恶意代码的U盘叫做BadUSB。BadUSB的威胁在于:恶意代码存在于U盘的固件中,PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB的攻击。
我是win10我就用:http://www.pjrc.com/teensy/td_133/TeensyduinoInstall.exe
Arduino的下载地址:https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
代码主要使用Arduino的Keyboard库,学习使用可以参见以下链接:https://www.arduino.cc/en/Reference/KeyboardPress
我使用的是1.6.x版本的,现在最新版本的是1.8.0。 先安装arduino,然后安装下载后双击运行,安装的时候会有一步安装设备驱动,按提示安装之。 注意,安装时要求手动选择Arduino IDE的安装位置,此时选择之前步骤zip的解压目录即可。 安装成功后运行arduino.exe会发现这里有了许多可选项:
这段代码的意思:
• 插入后等待五秒
• 按下ctrl+esc,(作用:在任何界面打开开始菜单)
• 等待半秒
• 模拟输入一个字符串,并回车执行(作用:在开始菜单执行命令)
• 等待2.5秒,更改焦点,模拟键盘输入y(作用:绕过uac,得到系统许可)
当然如果有朋友觉得等待5秒太久的话那么就把delay统统删掉….
硬件的设置会从域名下面的index.ps1文件下载代码并执行。 以下代码可在github下载:https://github.com/Xyntax/BadUSB-code
关于什么是lazagne,可以看看安全客上面的http://bobao.360.cn/learning/detail/412.html
这里设置好收信和发信邮箱。
值得一提的是,注意键盘的状态和焦点。这个主要是配合社会工程学~~~
如果键盘在中文状态,则会失败。
这里改进了代码,让其锁定为大写状态就ok了。
当然了,这个功能不止这样。理解原理之后,通过修改服务器端代码,利用方式可有很多….
• 反弹shell
• 获取文件
• 录屏、截屏
• 添加用户、开端口
• 下载病毒、木马
• ……
这里提供一段代码….知道怎么搞到*卷了吧….邪恶吧
当然,如果对于arduino 不熟悉或者powershell不熟悉的话,请移步这里!
Kali里面自带~~~
其他的MSF如果搞你们比我懂~~