Rucky
Status
Build
Code Analysis
Download App
GitHub
Nethunter App Store
Download Magisk Module
GitHub
Readme
An android app to perform USB HID Attacks (Rubber Duck) in multiple ways:
- Wired Mode: Needs a custom kernel with usb hid feature or a kernel with configfs to be enabled for this mode to be used.
- Wireless: Provides a socket server to extend this USB HID with external tools/hardwares like raspberry pi, socket services, nc, and much more.
Ducky Script
Ducky Script syntax is simple. Each command resides on a new line and may have options follow. Commands are written in ALL CAPS, because ducks are loud and like to quack with pride. Most commands invoke keystrokes, key-combos or strings of text, while some offer delays or pauses. Below is a list of commands and their function, followed by some example usage. Some syntax extended from the original Hak5 Ducky Script Syntax. Mouse ducky scripts are different from those seen online and have been defined to keep the similarity with the keyboard ducky scripts.
Note: In parameters [num]
represents a number, [char]
represents characters A-Z, a-z. Customizable HID support too has been added.
Keyboard
DEFAULTDELAY or DEFAULT_DELAY
DEFAULT_DELAY or DEFAULTDELAY is used to define how long (milliseconds) to wait between each subsequent command. DEFAULT_DELAY must be issued at the beginning of the ducky script and is optional. Not specifying the DEFAULT_DELAY will result in faster execution of ducky scripts. This command is mostly useful when debugging.
Syntax:
Command | Parameter |
---|---|
DEFAULTDELAY or DEFAULT_DELAY | [num] |
Example:
DEFAULTDELAY 100
DEFAULT_DELAY 100
DELAY
DELAY creates a momentary pause in the ducky script. It is quite handy for creating a moment of pause between sequential commands that may take the target computer some time to process. DELAY time is specified in milliseconds. Multiple DELAY commands can be used to create longer delays.
Syntax:
Command | Parameter |
---|---|
DELAY | [num] |
Example:
DELAY 500
REM
Similar to the REM command in Basic and other languages, lines beginning with REM will not be processed. REM is a comment.
Syntax:
Command | Parameter |
---|---|
REM | comment string |
Example:
REM This is a comment
REPEAT
Repeats the last command [num]
times
Syntax:
Command | Parameter |
---|---|
REPEAT | [num] |
Example:
DELAY 1
REPEAT 5
STRING_DELAY or STRINGDELAY
STRING processes the text following taking special care to auto-shift with additional delay between each character. STRING can accept a single or multiple characters.
Syntax:
Command | Delay Parameter | Parameter |
---|---|---|
STRING_DELAY | [num] | all possible printable characters supported on a specific keyboard layout |
STRINGDELAY | [num] | all possible printable characters supported on a specific keyboard layout |
Example:
STRING_DELAY 1000 hello world
STRINGDELAY 1000 hello world
STRING
STRING processes the text following taking special care to auto-shift. STRING can accept a single or multiple characters.
Syntax:
Command | Parameter |
---|---|
STRING | all possible printable characters supported on a specific keyboard layout |
Example:
STRING hello world
GUI or WINDOWS or COMMAND or META
Emulates the Windows-Key, sometimes referred to as the Super-key.
Syntax:
Command | Parameter |
---|---|
GUI or WINDOWS or COMMAND or META | Combo Key |
Example:
GUI r
SHIFT
Unlike CAPSLOCK, cruise control for cool, the SHIFT command can be used when navigating fields to select text, among other functions.
Syntax:
Command | Optional Parameter | Parameter |
---|---|---|
SHIFT | ALT or GUI or WINDOWS or COMMAND or META or CTRL or CONTROL | Combo Key |
Example:
SHIFT a
SHIFT ALT 4
ALT
Found to the left of the space key on most keyboards, the ALT key is instrumental in many automation operations.
Syntax:
Command | Optional Parameter | Parameter |
---|---|---|
ALT | SHIFT or CTRL or CONTROL | Combo Key |
Example:
ALT a
ALT SHIFT e
CONTROL or CTRL
The king of key-combos, CONTROL is all mighty.
Syntax:
Command | Optional Parameter | Parameter |
---|---|---|
CTRL or CONTROL | SHIFT or ALT | Combo Key |
Example:
CTRL s
CTRL ALT DELETE
Extended Keys
These keys have no parameters.
Syntax:
Command | Description |
---|---|
MENU or APP | Emulates the App key, sometimes referred to as the menu key or context menu key. On Windows systems this is similar to the SHIFT F10 key combo, producing the menu similar to a right-click. Has no parameters |
DOWNARROW or DOWN | Emulates down arrow key |
UPARROW or UP | Emulates down arrow key |
LEFTARROW or LEFT | Emulates left arrow key |
RIGHTARROW or RIGHT | Emulates right arrow key |
DELETE | Emulates delete key |
END | Emulates end key |
HOME | Emulates home key |
INSERT | Emulates insert key |
PAGEUP | Emulates page up key |
PAGEDOWN | Emulated page down key |
PRINTSCREEN or PRINTSCRN or PRNTSCRN or PRTSCN or PRSC or PRTSCR | Typically takes screenshots |
BREAK or PAUSE | For the infamous combo CTRL BREAK |
NUMLOCK | Toggle numlock |
CAPSLOCK | Toggle capslock |
SCROLLLOCK | Toggle scroll lock |
ESC or ESCAPE | Emulates esc key |
SPACE | Emulates spacebar |
TAB | Emulates tab key |
BACKSPACE or BKSP | Emulates backspace key. On MacOS this is the delete key. |
ENTER | Emulates enter key |
F1 | Emulates F1 key |
F2 | Emulates F2 key |
F3 | Emulates F3 key |
F4 | Emulates F4 key |
F5 | Emulates F5 key |
F6 | Emulates F6 key |
F7 | Emulates F7 key |
F8 | Emulates F8 key |
F9 | Emulates F9 key |
F10 | Emulates F10 key |
F11 | Emulates F11 key |
F12 | Emulates F12 key |
F13 | Emulates F13 key |
F14 | Emulates F14 key |
F15 | Emulates F15 key |
F16 | Emulates F16 key |
F17 | Emulates F17 key |
F18 | Emulates F18 key |
F19 | Emulates F19 key |
F20 | Emulates F20 key |
F21 | Emulates F21 key |
F22 | Emulates F22 key |
F23 | Emulates F23 key |
F24 | Emulates F24 key |
Combo Key
Some commands has a parameter which is a combo key. These keys belong to US English keyboard. List of supported combo key are:
- ESCAPE or ESC
- ENTER
- SPACE
- BACKSPACE or BKSP
- TAB
- INSERT
- DELETE
- PAGEUP
- PAGEDOWN
- HOME
- END
- DOWNARROW or DOWN
- UPARROW or UP
- LEFTARROW or LEFT
- RIGHTARROW or RIGHT
- BREAK or PAUSE
- F1 to F24
- single number
[num]
- Single character
[char]
- ` or ~
- [ or {
- ] or }
- \ or |
- ; or :
- , or <
- . or >
- / or ?
- - or _
- = or +
Mouse/Pointer
MOUSE or POINTER
All mouse/pointer commands will start with this command. REPEAT command and DELAY commands effect can also be applied to mouse commands.
Note:
- In parameter field
[button]
, which emulates a mouse button action and can have the following value:- LEFT
- RIGHT
- MIDDLE
- In parameter field
[x]
and[y]
, which emulates mouse movement action and can have the value range from -127 to 127. This represents pixels and is relative to where the mouse currently is. If you are at the point (150,150) then you can move the mouse to (127,127) pixels of this point followed by (23,23). Therefore, if the mouse is at (0,0) [top left corner] and you want to move to (1920, 1080) [bottom right corner, assuming a 1080p display], then you would need to move the mouse a few times 127 pixels at a time (or less) in either direction. - In parameter field
[scroll]
, which emulates mouse scroll whell action and can have the following value:- UP
- DOWN
- In parameters
[num]
represents a number. This is used to repeat the action. Alternatively, REPEAT command can be used.
Syntax:
Command | Command Type | Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Description |
---|---|---|---|---|---|---|
MOUSE or POINTER | CLICK or TOUCH or PRESS | [button] | [num] | Mouse button click. Mouse does not move along [x] and [y] directions. |
||
MOUSE or POINTER | HOLD or DRAG | [button] | [x] | [y] | [num] | Mouse button click and hold. Mouse can be moved along [x] and [y] directions. |
MOUSE or POINTER | MOVE or TRANSLATE | [x] | [y] | [num] | Mouse button does not click. Mouse can be moved along [x] and [y] directions. |
|
MOUSE or POINTER | KNOB or WHEEL or SCROLL | [scroll] | [num] | Mouse button does not click. Mouse can be scrolled up or down. |
Example:
REM double left click
MOUSE CLICK LEFT 2
REM drag a folder
MOUSE HOLD LEFT 127 45
REM move pointer
MOUSE MOVE 0 0 5
REM scroll a document
MOUSE SCROLL DOWN 10
REM using repeat
MOUSE CLICK LEFT
REPEAT 1
Localization
Status | Code | Language | Translated |
---|---|---|---|
❌ | b+ach | Acholi | 0% |
❌ | aa | Afar | 0% |
✅ | af | Afrikaans | 100% |
✅ | ak | Akan | 100% |
✅ | sq | Albanian | 100% |
✅ | am | Amharic | 100% |
✅ | ar | Arabic | 100% |
❌ | an | Aragonese | 0% |
✅ | hy | Armenian | 100% |
❌ | as | Assamese | 0% |
❌ | b+ast | Asturian | 0% |
❌ | av | Avaric | 0% |
❌ | ae | Avestan | 0% |
❌ | ay | Aymara | 0% |
✅ | az | Azerbaijani | 100% |
❌ | b+ban | Balinese | 0% |
❌ | b+bal | Balochi | 0% |
❌ | bm | Bambara | 0% |
❌ | ba | Bashkir | 0% |
✅ | eu | Basque | 100% |
✅ | be | Belarusian | 100% |
✅ | bn | Bengali | 100% |
🚧 | b+ber | Berber | 41% |
❌ | bh | Bihari | 0% |
❌ | bi | Bislama | 0% |
✅ | bs | Bosnian | 100% |
✅ | br | Breton | 100% |
✅ | bg | Bulgarian | 100% |
❌ | my | Burmese | 0% |
✅ | ca | Catalan | 100% |
❌ | b+ceb | Cebuano | 0% |
❌ | ch | Chamorro | 0% |
❌ | ce | Chechen | 0% |
❌ | b+chr | Cherokee | 0% |
✅ | ny | Chewa | 100% |
✅ | zh-rCN | Chinese Simplified | 100% |
✅ | zh-rTW | Chinese Traditional | 100% |
❌ | cv | Chuvash | 0% |
❌ | kw | Cornish | 0% |
✅ | co | Corsican | 100% |
❌ | cr | Cree | 0% |
✅ | hr | Croatian | 100% |
✅ | cs | Czech | 100% |
✅ | da | Danish | 100% |
❌ | dv | Dhivehi | 0% |
✅ | nl | Dutch | 100% |
❌ | dz | Dzongkha | 0% |
✅ | en-rGB | English (UK) | 100% |
✅ | en-rUS | English (US) | 100% |
✅ | eo | Esperanto | 100% |
✅ | et | Estonian | 100% |
✅ | ee | Ewe | 100% |
❌ | fo | Faroese | 0% |
❌ | fj | Fijian | 0% |
✅ | b+fil | Filipino | 100% |
✅ | fi | Finnish | 100% |
✅ | fr | French | 100% |
✅ | fy | Frisian | 100% |
❌ | b+fur | Friulian | 0% |
❌ | ff | Fula | 0% |
❌ | b+gaa | Ga | 0% |
✅ | gl | Galician | 100% |
✅ | ka | Georgian | 100% |
✅ | de | German | 100% |
❌ | b+got | Gothic | 0% |
✅ | el | Greek | 100% |
❌ | kl | Greenlandic | 0% |
✅ | gn | Guarani | 100% |
✅ | gu | Gujarati | 100% |
✅ | ht | Haitian Creole | 100% |
✅ | ha | Hausa | 100% |
✅ | b+haw | Hawaiian | 100% |
✅ | iw | Hebrew | 100% |
❌ | hz | Herero | 0% |
❌ | b+hil | Hiligaynon | 0% |
✅ | hi | Hindi | 100% |
❌ | ho | Hiri Motu | 0% |
❌ | b+hmn | Hmong | 0% |
✅ | hu | Hungarian | 100% |
✅ | is | Icelandic | 100% |
❌ | io | Ido | 0% |
✅ | ig | Igbo | 100% |
❌ | b+ilo | Ilokano | 0% |
✅ | in | Indonesian | 100% |
❌ | iu | Inuktitut | 0% |
✅ | ga | Irish | 100% |
✅ | it | Italian | 100% |
✅ | ja | Japanese | 100% |
✅ | jv | Javanese | 100% |
❌ | b+kab | Kabyle | 0% |
✅ | kn | Kannada | 100% |
✅ | b+pam | Kapampangan | 100% |
❌ | ks | Kashmiri | 0% |
❌ | b+csb | Kashubian | 0% |
✅ | kk | Kazakh | 100% |
❌ | km | Khmer | 0% |
✅ | rw | Kinyarwanda | 100% |
❌ | b+tlh | Klingon | 0% |
❌ | kv | Komi | 0% |
❌ | kg | Kongo | 0% |
❌ | b+kok | Konkani | 0% |
✅ | ko | Korean | 100% |
✅ | ku | Kurdish | 100% |
❌ | kj | Kwanyama | 0% |
✅ | ky | Kyrgyz | 100% |
✅ | lo | Lao | 100% |
✅ | la | Latin | 100% |
✅ | lv | Latvian | 100% |
❌ | li | Limburgish | 0% |
✅ | ln | Lingala | 100% |
✅ | lt | Lithuanian | 100% |
❌ | b+jbo | Lojban | 0% |
❌ | b+nds | Low German | 0% |
❌ | b+dsb | Lower Sorbian | 0% |
✅ | lg | Luganda | 100% |
❌ | b+luy | Luhya | 0% |
❌ | lb | Luxembourgish | 0% |
✅ | mk | Macedonian | 100% |
❌ | b+mai | Maithili | 0% |
✅ | mg | Malagasy | 100% |
✅ | ms | Malay | 100% |
✅ | ml | Malayalam | 100% |
✅ | mt | Maltese | 100% |
❌ | gv | Manx | 0% |
✅ | mi | Maori | 100% |
❌ | b+arn | Mapudungun | 0% |
✅ | mr | Marathi | 100% |
❌ | mh | Marshallese | 0% |
❌ | b+moh | Mohawk | 0% |
✅ | mn | Mongolian | 100% |
❌ | b+mos | Mossi | 0% |
❌ | na | Nauru | 0% |
❌ | ng | Ndonga | 0% |
✅ | ne | Nepali | 100% |
❌ | se | Northern Sami | 0% |
✅ | b+nso | Northern Sotho | 100% |
✅ | no | Norwegian | 100% |
✅ | nb | Norwegian Bokmal | 100% |
✅ | nn | Norwegian Nynorsk | 100% |
❌ | oc | Occitan | 0% |
🚧 | or | Odia | 26% |
❌ | oj | Ojibwe | 0% |
✅ | om | Oromo | 100% |
❌ | os | Ossetian | 0% |
❌ | pi | Pali | 0% |
❌ | b+pap | Papiamento | 0% |
✅ | ps | Pashto | 100% |
✅ | fa | Persian | 100% |
✅ | pl | Polish | 100% |
✅ | pt | Portuguese (PT) | 100% |
✅ | pt-rBR | Portuguese (BR) | 100% |
✅ | pa | Punjabi | 100% |
✅ | qu | Quechua | 100% |
✅ | ro | Romanian | 100% |
❌ | rm | Romansh | 0% |
❌ | rn | Rundi | 0% |
✅ | ru | Russian | 100% |
❌ | sg | Sango | 0% |
❌ | sa | Sanskrit | 0% |
🚧 | b+sat | Santali | 80% |
❌ | sc | Sardinian | 0% |
❌ | b+sco | Scots | 0% |
✅ | gd | Scottish Gaelic | 100% |
✅ | sr | Serbian (Cyrillic) | 100% |
❌ | b+sr+Latn | Serbian (Latin) | 0% |
✅ | sn | Shona | 100% |
❌ | ii | Sichuan Yi | 0% |
✅ | sd | Sindhi | 100% |
✅ | si | Sinhala | 100% |
✅ | sk | Slovak | 100% |
✅ | sl | Slovenian | 100% |
✅ | so | Somali | 100% |
❌ | b+son | Songhay | 0% |
❌ | nr | Southern Ndebele | 0% |
❌ | b+sma | Southern Sami | 0% |
❌ | st | Southern Sotho | 0% |
✅ | es | Spanish (ES) | 100% |
✅ | b+es+419 | Spanish (Latin America) | 100% |
✅ | su | Sundanese | 100% |
✅ | sw | Swahili | 100% |
❌ | ss | Swati | 0% |
✅ | sv | Swedish | 100% |
❌ | b+syc | Syriac | 0% |
❌ | tl | Tagalog | 0% |
❌ | ty | Tahitian | 0% |
✅ | tg | Tajik | 100% |
✅ | ta | Tamil | 100% |
✅ | tt | Tatar | 100% |
✅ | te | Telugu | 100% |
✅ | th | Thai | 100% |
❌ | bo | Tibetan | 0% |
✅ | ti | Tigrinya | 100% |
❌ | ts | Tsonga | 0% |
❌ | tn | Tswana | 0% |
✅ | tr | Turkish | 100% |
✅ | tk | Turkmen | 100% |
✅ | uk | Ukrainian | 100% |
❌ | b+hsb | Upper Sorbian | 0% |
✅ | ur-rIN | Urdu (IN) | 100% |
✅ | ur-rPK | Urdu (PK) | 100% |
❌ | ug | Uyghur | 0% |
✅ | uz | Uzbek | 100% |
❌ | ve | Venda | 0% |
✅ | vi | Vietnamese | 100% |
❌ | wa | Walloon | 0% |
✅ | cy | Welsh | 100% |
❌ | wo | Wolof | 0% |
✅ | xh | Xhosa | 100% |
❌ | b+sah | Yakut/Sakha | 0% |
✅ | ji | Yiddish | 100% |
✅ | yo | Yoruba | 100% |
✅ | zu | Zulu | 100% |
Features
Status | Feature |
---|---|
✅ | USB HID (Root & custom kernel required) |
✅ | USB HID over network socket |
✅ | USB connection detection |
✅ | Run attack UI button |
✅ | Auto launch attack on USB connect |
✅ | Auto launch attack on network socket connect |
✅ | Save scripts |
✅ | Load scripts |
✅ | Delete scripts |
✅ | Day/Night theme |
✅ | Launch app via dialer app |
✅ | Hide launcher app (till Android 10) |
✅ | Disable app launch via launcher (Android 11 onwards) |
✅ | Biometric support |
✅ | App lock support |
✅ | Encrypt scripts on save |
✅ | Decrypt scripts on load |
✅ | Customize network socket address |
✅ | In-app update service (GitHub release only) |
✅ | Kali Linux NetHunter Support |
✅ | Nightly Builds |
✅ | ConfigFS auto configuration |
✅ | Multiple HID languages support |
✅ | Customizable HID for additional language support |
✅ | Platform independent HID support |
✅ | Can attack virtually any system with USB HID support |
✅ | USB HID mouse support |
✅ | Root detection |
✅ | Magisk Module |
✅ | Runtime process name masking |
✅ | Emulator detection |
✅ | Monet Theme |
🚧 | Bluetooth HID |
💡 | More feature addition on request |
Featuring Rucky
- Kali Linux 2019.3 Release
- Kali Linux 2021.1 Release
- Prog.World
- ProgrammerSought
- Dark_Mechanic YouTube Channel
- AV SHIVA NORO YouTube Channel
- Android Infosec YouTube Channel
- Android Infosec Facebook Post