D(HE)ater 是 D(HE)at 攻击(CVE-2002-20001)的概念验证实现。它通过强制在 TLS 和 SSH 上使用临时 Diffie-Hellman(DHE)或椭圆曲线临时 Diffie-Hellman(ECDHE)密钥交换来使服务器 CPU 饱和。有关该攻击的更多信息,请访问项目页面或阅读 IEEE Access 上的完整技术论文。
D(HE)ater 是一款概念验证型拒绝服务工具,仅用于防御性安全测试、缓解措施验证和研究。请仅针对您拥有或已获得明确书面授权的系统运行它。在未经许可的情况下针对其他系统使用它可能违法,并可能中断目标服务。作者按现状提供代码,不提供任何担保,且不对任何滥用或损害承担责任。
D(HE)ater 是一款命令行工具。--protocol 选项和目标 uri 为必填项:
# 对 TLS 服务强制使用 DHE 密钥交换
dheat --protocol tls example.com:443
# 对 SSH 服务强制使用 DHE 密钥交换
dheat --protocol ssh example.com:22
可选参数:
# 强制使用椭圆曲线(ECDHE)密钥交换而非有限域(DHE)
dheat --protocol tls --key-exchange ECDHE example.com:443
# 16 个线程,10 秒超时
dheat --protocol tls --thread-num 16 --timeout 10 example.com:443
有关检测和缓解 D(HE)at 攻击的指导,请参阅官方项目网站:dheatattack.com。
D(HE)ater 需要 Python 3.9 或更高版本,并依赖 CryptoLyzer 来检查 DHE/ECDHE 支持情况并生成必要的流量。该依赖会通过下述方法自动安装。
从 PyPI 安装最新版本:
pip install dheater
直接从源代码仓库安装当前开发版本:
pip install git+https://gitlab.com/dheatattack/dheater.git
该代码根据 Apache License Version 2.0 的条款提供。 非全面但直观的描述以及完整的许可证文本可在 Choose an open source license 网站上找到。
D(HE)ater 使用 CryptoLyzer 来检查 TLS/SSH 服务的 DHE/ECDHE 支持情况,并生成执行 D(HE)at 攻击所需的流量。
| 选项 | 默认值 | 描述 |
|---|
--key-exchange | DHE | 要强制使用的密钥交换方式:DHE 或 ECDHE |
--timeout | 5 | 套接字超时时间(秒) |
--thread-num | 1 | 要运行的线程数 |
--key-size | 无 | 要强制使用的密钥大小 |