D(HE)ater
D(HE)ater is an attacking tool based on CPU heating in that it forces the ephemeral variant of Diffie-Hellman key exchange (DHE) in given cryptography protocols (e.g. TLS, SSH). It is performed without calculating a cryptographically correct ephemeral key on the client side, but with a significant amount of calculation on the server side. Based on this, D(HE)ater can initiate a denial-of-service (DoS) attack.
Quick start
D(HE)ater can be installed directly via pip from PyPi
pip install dheater
dheat --protocol tls www.example.com
dheat --protocol ssh www.example.com
or can be used via Docker from Docker Hub
docker pull balasys/dheater
docker run --rm balasys/dheater --protocol tls www.example.com
docker run --rm balasys/dheater --protocol ssh www.example.com
You can increase a load by string extra threads.
dheat --thread-num 4 --protocol tls www.example.com
docker run --rm balasys/dheater --thread-num 4 --protocol tls www.example.com
docker run --rm balasys/dheater --thread-num 4 --protocol ssh www.example.com
Mitigation
Fail2Ban
TLS
Apache
There is no necessary filters.
apache-ssl.confinfail2bandirectory should be copiedfilter.ddirectory under the fail2ban configuration directory- the followings should be added to
jail.localfile in fail2ban configuration directory
[apache-ssl]
port = https
logpath = %(apache_error_log)s
maxretry = 1
Postfix
There is a necessary filters, but it is applied only in ddos mode. The followings should be added to jail.local.
[postfix]
mode = ddos
Dovecot
There is a necessary filters, but it is applied only in ddos mode. The followings should be added to jail.local.
[dovecot]
mode = aggressive
or a specific filter can be used without changing the mode of the dovecot filter.
dovecot-ssl.confinfail2bandirectory should be copiedfilter.ddirectory under the fail2ban configuration directory- the followings should be added to
jail.localfile in fail2ban configuration directory
[dovecot-ssl]
port = pop3,pop3s,imap,imaps,submission,465,sieve
logpath = %(dovecot_log)s
backend = %(dovecot_backend)s
maxretry = 1
SSH
OpenSSH
There is a necessary filters, but it is applied only in ddos mode. The followings should be added to jail.local.
[sshd]
mode = ddos
License
The code is available under the terms of Apache License Version 2.0. A non-comprehensive, but straightforward description and also the full license text can be found at Choose an open source license website.
Release files for DHEater 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| DHEater-0.2.0.tar.gz | 10.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| DHEater-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.2 kB
Release files / DHEater-0.2.0.tar.gz
| Download URL | DHEater-0.2.0.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e13ca067626124ee38e5503d419809700bdebe66733b4e7205b00d7416f8fb00
|
|
BLAKE2b-256 checksum How to use checksums |
2a80dcca5c853c2e166366d500d8b672daa83bc800dfb5b0d767a2130161f4b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.4.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.7
|
Release files / DHEater-0.2.0-py3-none-any.whl
| Download URL | DHEater-0.2.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d21056a5655bb6fc542d03e49c9e388c21a50b93b685372b0090e5f429acbb1f
|
|
BLAKE2b-256 checksum How to use checksums |
36afaefc325011a6e0323da89282e0f7bd997f753e2924c1135715097da134f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.4.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.7
|