#nosoc blog
$^\xi xpec_tthe ^un \xi xpecte_d$
Obfuscation: polymorpher In-Memory Decoder
Red-Teaming und Penetration Tests erfordern häufig das Umgehen von Virenscannern, um wirksam Sicherheitslücken aufdecken zu können. Im letzten Teil haben wir uns mit der Tarnung von Shellcode als UUID im Quellcode befasst. Dies hat auch gut funktioniert, jedoch wurde der Shellcode im Speicher erkannt und blockiert.
Das wollen wir nun mit einem polymorphen In-Memory Decoder lösen: Ein Shellcode, der Shellcode entschlüsselt.
Obfuscation: Shellcode als UUIDs tarnen
Im letzten Blogpost beschäftigten wir uns mit der Entwicklung eines calc.exe Shellcodes. Die Injection-Methode, die ich hierbei zum Testen nutzte, wurde vom Windows Defender sofort blockiert. Somit musste ich Loader und Shellcode entsprechend anpassen.
Mir kam die Idee, die OpCodes in ein String-Array umzuwandeln, welches mit UUIDs gefüllt ist. Diese müssen dann entsprechend vor der Injection wieder in Bytes umgewandelt werden. Hierzu habe ich einen En- und Decoder geschrieben, welcher genau dies macht.
Shellcode Injection Teil 4
In diesem Beitrag beschäftigen wir uns nur nebenher mit der Verschleierung von Shellcodes. An diesem Punkt wollte ich einen Custom-Shellcode entwickeln, um mehr über die Funktionsweise zu lernen.
Folgende Anforderungen sollten hierbei erfüllt sein:
- Start von
calc.exe
auf einem Windows Rechner - 64-Bit Code
- Vermeiden von Null-Bytes
Shellcode Injection Teil 3
In der Regel werden Shellcode Injections dazu benutzt, eine Reverse Shell zu initiieren. Jedoch kann es unter manchen Umständen nötig sein, den Code für die Shell erst im zweiten Schritt zu laden.
In diesem Blogpost zeige ich, wie wir eine Shellcode Injection nutzen können, um eine Datei mittels HTTP zu laden und anschließend auszuführen.