-
Notifications
You must be signed in to change notification settings - Fork 1.5k
shadowpuppet #536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
shadowpuppet #536
Conversation
Why would you advise people to use the deprecated Duck Encoder, using a dead link to do so, when PayloadStudio is free and the replacement for the old encoder? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not in the correct directory.
Your payload should be within payloads/library/$catagory/shadowpuppet
Please include a readme.md
explaining your payload and any configurations need.
DELAY 500 | ||
GUI r | ||
DELAY 500 | ||
STRING powershell |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For instances where are you using STRING
and then immediately ENTER
you can use STRINGLN
to compress it into 1 line.
STRINGLN Powershell
will have the result as STRING Powershell
ENTER
DELAY 500 | ||
|
||
REM Obfuscated payload downloader using PowerShell | ||
STRING $payload = "JAB3AHYAYwB6aXn4cTp2YfhgA2Stw5kOrP5pQ5O72cm8aLg72g==" REM Example Base64 encoded payload (encrypted) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use a DEFINE
here since its something the user will have the change,
DEFINE #PAYLOAD base64here
STRING $payload = "#PAYLOAD"
In this example, the ducky will fill in base64here
in place of #PAYLOAD
I would leave the example as clear text and include instructions for the end user to encode and include their own payload.
AS dallaswinger mentioned, we do not use any other encoder, the only official encoder for the USB Rubber Ducky is payloadstudio. |
ShadowPuppet Payload
Overview
ShadowPuppet is a USB Rubber Ducky payload designed to exploit known techniques to bypass Windows AMSI (Antimalware Scan Interface) protections, download an obfuscated payload, and execute it on a target machine. The payload uses PowerShell scripting to deliver the attack in a stealthy manner, making it more difficult for traditional security measures like antivirus or anti-malware programs to detect.
This is a powerful demonstration of how attackers can bypass basic defenses. This payload should only be used for educational purposes or in controlled penetration testing environments where you have explicit permission to perform testing.
Key Features
Requirements
Before using ShadowPuppet, ensure that you have the following:
How to Use
Attacker's Machine Setup
Start the listener on your machine to receive the reverse shell:
Replace
YOUR_PORT
with a port number that will be listening for incoming connections.Compile the payload using DuckEncoder:
Download DuckEncoder, and run:
This will generate the
inject.bin
file that you can load onto the USB Rubber Ducky.Copy the Payload to Rubber Ducky:
Copy the
inject.bin
file to the Rubber Ducky and plug it into the target machine. The payload will run automatically.Payload Code
Here is the full code you will need for the
payload.txt
file to be compiled intoinject.bin
:Important Notes