Remove a capacidade do CVE-2017-0199 de executar código alterando o manipulador padrão para arquivos .hta. O manipulador padrão para arquivos invocados via OLE2 (Objetos COM) é armazenado separadamente do aplicativo padrão do sistema local e só pode ser alterado por meio do registro.
Lógica Básica do Exploit
Este é um exemplo prático deste exploit, explicado conforme o meu entendimento. Nem todas as ocorrências seguem este padrão e minha avaliação pode estar incorreta. A correção apresentada na próxima seção, no entanto, funciona nas situações em que a testei.
O documento RTF hospedado no servidor web tem a carga maliciosa de aplicativo de hipertexto (HTA) anexada ao final dele.
O servidor de hospedagem responde às solicitações GET do arquivo com um cabeçalho informando que o conteúdo é um arquivo HTA.
O Microsoft Word executa um objeto OLE2 para buscar o documento RTF do servidor web.
O Microsoft Word é forçado a validar o tipo de arquivo, pois a extensão .rtf não corresponde ao tipo de conteúdo HTA.
O Microsoft Word verifica a partir do final do arquivo por estruturas de dados reconhecíveis e corresponde as estruturas de dados HTA ao tipo de conteúdo HTA.
O Microsoft Word corrige automaticamente o tipo de arquivo e o passa para o manipulador COM de arquivos HTA (mshta.exe).
O Mshta.exe executa o código malicioso do aplicativo de hipertexto a partir do final do arquivo.
Os manipuladores COM são armazenados separadamente dos manipuladores do sistema no registro para evitar erros no processo de validação de tipo de arquivo.
Correção Básica
No RegEdit.exe, navegue até HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon
Abra as permissões avançadas de DefaultIcon
Altere o proprietário para Administrators (grupo)
Adicione sua conta de usuário atual à lista de principais de segurança e atribua a ela "Controle Total"
Edite a chave (Default) para C:\Windows\System32\notepad.exe,1
Nas Permissões Avançadas de DefaultIcon, remova seu usuário e reatribua SYSTEM como proprietário
Repita as etapas 1 a 6 para HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32, alterando o valor da chave (Default) para C:\Windows\System32\notepad.exe
Isto remove a capacidade do CVE-2017-0199 de executar código ao alterar o manipulador padrão para objetos .hta invocados via OLE2 para o notepad. Isso se aplicará a todas as instâncias de OLE2 que invocarem arquivos .hta. Isso fará o notepad abrir e exibirá erros, mas o código não será executado.
Não edite o HKCR diretamente. Edite as chaves associadas em HKCU ou HKLM.
Você pode devolver a propriedade de uma chave de registro ao SYSTEM ou a outros após assumi-la.
Não mexa no registro. Deixe-o como encontrou depois de fazer suas alterações.
O Process Monitor possui poderosos filtros de clique com o botão direito para reduzir o ruído.
O recurso de localização do Process Monitor pesquisa uma string em todos os campos.
pscp.exe (Putty) é uma ferramenta de transferência de arquivos SSH por linha de comando.
O Linux ainda é uma grande dor de cabeça.
Observação Final
Não me responsabilizo por quaisquer danos ou problemas causados por esta mitigação ou pela confusão do usuário resultante do notepad e de vários erros. Esta é uma correção improvisada e não sei se causará problemas maiores em um ambiente de produção. Como sempre, avalie as mitigações considerando seu ambiente e necessidades específicos.
Adicionarei capturas de tela mais tarde para mostrar os efeitos antes e depois desta mitigação. Além disso, isso pode ser feito como um script, mas estou tendo dificuldades com a alteração de permissões na chave de registro, então tratarei disso mais tarde.