使用Digispark和Duck2Spark打造一个廉价USB橡皮鸭

如今市面上出现了许多优秀的硬件黑客工具,但缺点是这些工具的价格往往非常的高昂。因此,许多黑客更愿意自己动手打造更为廉价的专属版本。本文我将教大家使用Digispark(一款类似于Arduino Uno基于Attiny85的微控制器开发板,相比之下它更便宜小巧。)和Duck2Spark,花3美元的价格打造一个廉价的USB橡皮鸭。廉价硬件除了价格上的优势外,还体现在它的安全性上。由于大部分这些硬件都是一次性的,因此它们也几乎不可能被追踪到。

USB橡皮鸭是一款伪装成U盘的击键注入工具。插入电脑的USB接口后计算机就会将其识别为常规键盘,并以每分钟超过1000个字的速度自动接受其预编程的击键有效载荷。只需短短几秒的物理访问,即可在目标计算机上轻松的部署一些先进的渗透测试攻击或IT自动化任务。此外,Rubber Ducky还有一些恶搞功能,例如快速更改同事工作站壁纸的脚本等。虽说功能强大,但其价格方面并无优势。目前官方的价格为45美金再加上运费,算起来并不便宜。

第1步:设置Digispark开发环境

在开始使用板子之前,我们必须先安装Arduino IDE。之后,我们还需要下载该板的兼容包,操作非常简单:

https://www.arduino.cc/en/main/software

安装完成后,打开Arduino IDE应用程序,依次选择 File -> Preferences ,并在字段名为“Additional Boards Manager URL”的输入框中,输入以下URL。

http://digistump.com/package_digistump_index.json

打开 Arduino IDE - — Preferences Tools -> Board -> Boards Manager,从下拉菜单中选择“Contributed”,选择Digistump AVR Boards包并安装。

现在,我们需要安装Digispark Bootloader驱动。

https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip

通常,驱动程序安装过程会出现一些问题。因此,请确保驱动程序的正确安装。

最后,打开 Tools -> Board,然后选择 Digispark (Default — 16.5mhz)并将其设置为默认值。

第2步:克隆Rubber Ducky脚本

Rubber Ducky使用简单的脚本语言来创建payloads。而对于Digispark来说,就要复杂许多。我们需要使用Digikeyboard.h和Arduino IDE编写自己的payloads。在网上也能找到一些可用于Digispark ATTiny85的脚本,但并不能满足我们日常的任务需求。

这里,首先我要感谢我的好友MaMe82 (Marcus Mengs) ,他创建的duck2spark项目,可将Rubber Ducky脚本转化到Digispark上使用:

https://github.com/mame82/duck2spark

Duck2spark的一个很非常棒的功能是,支持非美语键盘布局。该功能主要是借助支持多种键盘布局的DuckEncoder实现的。

Duck2spark使用也非常的简单。以下是一个经典的hello world示例:

Generate a DuckyScript test.duck you want to use as output:
echo "STRING Hello World" > test.duck
Compile the script using DuckEncoder with your keyboard layout (de in example) or use my python port:
java -jar encoder.jar -i test.duck -o raw.bin -l de
Use duck2spark.py to convert into Arduino Sketch (options for single run, 2 seconds startup delay):
duck2spark.py -i raw.bin -l 1 -f 2000 -o sketch.ino
After setting up the Arduino IDE load the example "DigisparkKeyboard" and replace the Sketch source by the one saved to sketch.ino

单击Sketch -> Upload或单击左上角的Upload按钮。打开记事本。再次插入Digispark USB,我们将看到屏幕中“Hello World”自动输入的过程。

你也可以创建其它用途的Rubber Ducky Payloads,这主要取决于你的目的和意图。例如你可以创建无线网关联,下载和执行payloads,反向shell等。在做渗透测试时,我们甚至还可以使用Meterpreter,Empire,Unicorn等powershell payloads:

https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

最后提示大家,可以使用一些热缩管来为你的Digispark-Ducky提供电绝缘,机械保护,密封及隐藏。

*参考来源:hackernoon,FB小编 secist 编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

Knowledge Base of Relational and NoSQL Database Management Systems​db-engines.co...

66130
来自专栏养码场

一周播报| 平淡无奇,但暗藏杀机的一周

养码人B:消息写DB的话,TPS、RT 这些能接受吗?你们用的是什么消息中间件?

6110
来自专栏程序员互动联盟

【编程基础】聊聊C语言-存储世界的奥秘

上一篇讲到了C语言的数据类型,从这篇我们开始讲讲与数据类型有这着千丝万缕联系的变量。 所有语言的变量都是存储在计算机存储系统中,C语言的变量当然也不例外。所以...

38870
来自专栏魏琼东

AgileEAS.NET SOA中间件平台更新日志 2015-04-28

一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

31550
来自专栏Java后端技术栈

推荐几款非常实用的IDEA插件

经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

32910
来自专栏BestSDK

程序员那些悲催的事儿——从错误中学习进步

image.png 在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”(WTF就是Wh...

298100
来自专栏编程一生

战狼:业务高速增长下,如何保证系统的稳定性和高可用?

30150
来自专栏编程一生

JAVA日志的前世今生

直到今天,静儿为了写文章,把自己蒙在空调被里,额,竟然连不上网。于是掀起一个被角,“大象”的巡检结果哒哒哒的弹出来了。然后我感慨:自己当年何苦买那么贵一个“围裙...

15020
来自专栏腾讯Bugly的专栏

【功能发布】Crash不好找?Bugly来支招!

自Bugly上线以来,通过各位开发者的试用和口口相传,目前Bugly已经迎来了大批量的用户,在业内的反响只能用下图来形容: ? 当然也有很多程序员哥哥在使用的过...

34650
来自专栏linux驱动个人学习

开源许可证协议

最近新闻中的00后被指抄袭Github开源项目,新闻链接:http://money.163.com/17/0905/17/CTJBUNNV002580S6.ht...

39350

扫码关注云+社区

领取腾讯云代金券