← back
CVE-2017-0145highunder attackransomware

CVE-2017-0145

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 8.8epss 90%
from disclosure to weapon31 days
Published on NVDMar 17
1st PoC+31d
metasploitMar 14
CISA KEV+1791d
exploitation probability
90%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
8 public exploit(s)
Action required by CISAfederal deadline: 2022-08-10

Apply updates per vendor instructions.

Summary

Falha de execução remota de código no servidor SMBv1 do Windows, explorável sem autenticação via pacotes manipulados na porta 445. É a vulnerabilidade que, junto com CVE-2017-0143, 0144, 0146 e 0148 (todas cobertas pelo boletim MS17-010), forma a base do exploit EternalBlue, usado nos ataques WannaCry e NotPetya em 2017 — por isso está no catálogo KEV da CISA com exploração ativa confirmada, apesar de já ter sete anos.

Technical detail

A falha reside na implementação do protocolo SMBv1 (Server Message Block versão 1) no driver srv.sys / srv2.sys do Windows, que processa requisições de transação SMB. O problema é classificado como validação de entrada inadequada (CWE-20): o servidor SMB não verifica corretamente o tamanho ou o conteúdo de campos em pacotes de transação criados sob medida, permitindo que um atacante corrompa memória do kernel e obtenha execução de código com privilégios de sistema.

A NVD trata CVE-2017-0145 como uma falha distinta de CVE-2017-0143, 0144, 0146 e 0148, mas na prática todas fazem parte do mesmo boletim MS17-010 e do mesmo conjunto de bugs no manuseio de transações SMBv1 (SrvOs2FeaToNt, SrvOs2FeaListToNt e funções relacionadas de conversão de FEA/FEA_LIST) que a NSA reuniu no exploit EternalBlue, vazado pelo grupo Shadow Brokers em abril de 2017. O atacante controla o conteúdo e o tamanho de campos dentro do pacote de transação SMB, o que é suficiente para desencadear a corrupção.

Depois da execução de código via EternalBlue, o vetor de ataque histórico instala o EternalBlue's payload companion conhecido como DoublePulsar, um implante que roda em modo kernel e serve como backdoor para carregar DLLs arbitrárias na memória — mecanismo documentado nas análises de resposta a incidentes referenciadas (Packet Storm) sobre neutralização e detecção do DoublePulsar.

How it’s exploited

O vetor é de rede, sem necessidade de autenticação nem interação do usuário: basta acesso TCP à porta 445 (SMB) — em algumas configurações também 139 — de um host com SMBv1 habilitado e sem o patch MS17-010. Não há pré-condição de configuração não padrão relevante: SMBv1 vinha habilitado por padrão em todas as versões de Windows listadas antes de 2017, o que tornou o problema crítico em redes internas e, por um período, em hosts expostos diretamente à internet.

Na exploração real (WannaCry, maio de 2017, e NotPetya, junho de 2017), o EternalBlue foi usado tanto como vetor de entrada inicial em hosts expostos quanto, mais frequentemente, como mecanismo de movimento lateral dentro de redes já comprometidas, self-propagando via varredura de blocos de rede na porta 445. Após a corrupção de memória, o exploit tipicamente instalava o DoublePulsar para então carregar o payload final (ransomware, worm, etc.).

Há módulo Metasploit (auxiliary/scanner/smb/smb_ms_17_010, referenciado no Exploit-DB) que detecta se o host está vulnerável através de disclosure de informação (retorno STATUS_INSUFF_SERVER_RESOURCES em uma transação PeekNamedPipe contra IPC$, sem precisar de credenciais válidas), além de PoCs públicas de exploração completa. A complexidade técnica de construir o exploit é alta (requer conhecimento de heap grooming em kernel), mas como já existem ferramentas prontas e amplamente distribuídas desde 2017, a barreira de exploração prática é baixa.

Versions

Affected
Windows Vista SP2; Windows Server 2008 SP2 e R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold e R2; Windows RT 8.1; Windows 10 Gold, 1511 e 1607; Windows Server 2016.
Fixed in
Corrigido pelas atualizações de segurança do boletim MS17-010 (14 de março de 2017), aplicáveis a todas as versões listadas como afetadas. Não há números de build específicos por edição disponíveis nas fontes consultadas.

How to protect

A correção oficial é o patch distribuído pela Microsoft no boletim MS17-010, publicado em 14 de março de 2017, cobrindo todas as versões listadas (Vista SP2; Server 2008 SP2 e R2 SP1; 7 SP1; 8.1; Server 2012 Gold e R2; RT 8.1; 10 Gold/1511/1607; Server 2016). Sistemas fora de suporte na época (Windows XP, Server 2003) receberam patch extraordinário fora do ciclo normal dado o risco de propagação self-replicante do worm. A entrada no catálogo KEV da CISA (adicionada em 2022, com prazo de correção 2022-08-10) reforça que ambientes ainda sem esse patch, sete anos depois, devem tratá-lo como prioridade máxima.

Se a atualização não puder ser aplicada imediatamente, o paliativo real é desabilitar o protocolo SMBv1 por completo (via configuração de recursos do Windows / Set-SmbServerConfiguration -EnableSMB1Protocol $false), já que SMBv2/v3 não são afetados por esta falha. Bloquear as portas 445 e 139 na borda da rede e entre segmentos internos reduz a superfície de ataque para movimento lateral, mas não corrige hosts vulneráveis expostos a segmentos onde o tráfego SMB é necessário.

O que não funciona como mitigação suficiente: apenas bloquear a porta 445 no firewall de perímetro não protege contra propagação lateral dentro da rede interna, que foi o vetor dominante no NotPetya. Antivírus e detecção de assinatura também não substituem o patch, pois variantes do exploit e do implante DoublePulsar evoluíram para evadir assinaturas estáticas.

How to detect

Não existe assinatura confiável e definitiva no tráfego para distinguir com certeza uma tentativa de exploração de CVE-2017-0145 isoladamente, já que ela é explorada em conjunto com as demais falhas do MS17-010 dentro do mesmo pacote de transação SMB — o sinal mais prático é a presença de tráfego SMBv1 anômalo na porta 445/139, especialmente transações malformadas ou picos de conexões oriundas de hosts internos (comportamento típico de propagação tipo worm). Ferramentas de varredura como o módulo Metasploit smb_ms_17_010 identificam hosts vulneráveis via disclosure de erro (STATUS_INSUFF_SERVER_RESOURCES) em uma transação PeekNamedPipe contra o compartilhamento IPC$, sem exigir credenciais — o mesmo padrão de tráfego pode ser usado defensivamente para auditoria de exposição.

Após exploração bem-sucedida, o indicador mais forte é a presença do implante DoublePulsar em memória kernel, cuja detecção e neutralização foram documentadas publicamente (ver referências Packet Storm sobre DoublePulsar Payload Execution e Neutralization); scanners específicos para DoublePulsar (checagem de resposta a comandos multiplexados na porta 445) são mais confiáveis do que assinaturas de rede genéricas para SMBv1.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The SMBv1 server in Microsoft Windows Vista SP2; Windows Server 2008 SP2 and R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold and R2; Windows RT 8.1; and Windows 10 Gold, 1511, and 1607; and Windows Server 2016 allows remote attackers to execute arbitrary code via crafted packets, aka "Windows SMB Remote Code Execution Vulnerability." This vulnerability is different from those described in CVE-2017-0143, CVE-2017-0144, CVE-2017-0146, and CVE-2017-0148.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.