
Ferramenta de prova de conceito para negação de serviço que força a troca de chaves efêmeras Diffie-Hellman sobre TLS e SSH para saturar a CPU do servidor, implementando o CVE-2002-20001 para testes de segurança autorizados.
D(HE)ater é a implementação de prova de conceito do ataque D(HE)at (CVE-2002-20001). Ele satura a CPU de um servidor forçando a troca de chaves Diffie-Hellman efêmera (DHE) ou Diffie-Hellman de curva elíptica efêmera (ECDHE) tanto em TLS quanto em SSH. Para mais informações sobre o ataque, visite a página do projeto ou leia o artigo técnico completo no IEEE Access.
D(HE)ater é uma ferramenta de negação de serviço de prova de conceito destinada apenas a testes de segurança defensivos, verificação de mitigações e pesquisa. Execute-a exclusivamente contra sistemas que você possua ou para os quais tenha autorização explícita e por escrito. Usá-la contra sistemas sem permissão pode ser ilegal e provavelmente interromperá o serviço alvo. Os autores fornecem o código como está, sem garantia, e não aceitam responsabilidade por qualquer uso indevido ou dano.
D(HE)ater é uma ferramenta de linha de comando. A opção --protocol e o uri alvo são obrigatórios:
# força a troca de chaves DHE contra um serviço TLS
dheat --protocol tls example.com:443
# força a troca de chaves DHE contra um serviço SSH
dheat --protocol ssh example.com:22
Argumentos opcionais:
| Opção | Padrão | Descrição |
|---|---|---|
--key-exchange | DHE | troca de chaves a forçar: DHE ou ECDHE |
--timeout | 5 | tempo limite do socket em segundos |
--thread-num | 1 | número de threads a executar |
--key-size | nenhum | tamanho da chave a forçar |
# força a troca de chaves de curva elíptica (ECDHE) em vez de campo finito (DHE)
dheat --protocol tls --key-exchange ECDHE example.com:443
# 16 threads, tempo limite de 10 segundos
dheat --protocol tls --thread-num 16 --timeout 10 example.com:443
Orientações sobre como detectar e mitigar o ataque D(HE)at são mantidas no site oficial do projeto: dheatattack.com.
D(HE)ater requer Python 3.9 ou mais recente e depende do CryptoLyzer para verificar o suporte a DHE/ECDHE e gerar o tráfego necessário. A dependência é instalada automaticamente com os métodos descritos abaixo.
Instale a versão mais recente do PyPI:
pip install dheater
Para instalar a versão de desenvolvimento atual diretamente do repositório de origem:
pip install git+https://gitlab.com/dheatattack/dheater.git
O código está disponível sob os termos da Apache License Versão 2.0. Uma descrição não abrangente, mas direta, e também o texto completo da licença podem ser encontrados no site Choose an open source license.
D(HE)ater usa CryptoLyzer para verificar o suporte a DHE/ECDHE de serviços TLS/SSH e também para gerar o tráfego necessário para executar o ataque D(HE)at.