
HellPot ist ein plattformübergreifendes Portal zu endlosem Leid, das dazu dient, ungehorsame HTTP-Bots zu bestrafen.
HellPot ist ein endloser Honeypot, basierend auf Heffalump, der ungehorsame HTTP-Bots in die Hölle schickt.
Bemerkenswerterweise implementiert es eine TOML-Konfigurationsdatei, hat JSON-Logging und bringt erhebliche Leistungssteigerungen mit sich.
Clients (hoffentlich Bots), die robots.txt ignorieren und sich mit Ihrer HellPot-Instanz verbinden, werden ewige Konsequenzen erleiden.
HellPot sendet einen endlosen Datenstrom, der gerade nah genug an einer echten Website dran ist, dass sie vielleicht so lange bleiben, bis ihre Seele zerfetzt wird und sie aufhören zu existieren.
Im Herzen dieses ewigen Leidens steckt eine Markov-Engine, die Brocken und Stücke aus Die Geburt der Tragödie (Hellenismus und Pessimismus) von Friedrich Nietzsche mittels fasthttp an den Client wirft.
HellPot sollte wahrscheinlich mit Go Version 1.17 oder höher erstellt werden.
HellPot verwendet Go-Module. Es sollte kinderleicht sein, es mit einer Standard-Go-Installation zu erstellen. Um es noch einfacher zu machen, haben wir ein GNU Makefile hinzugefügt.
1 ) git clone https://github.com/yunginnanet/HellPot
2 ) cd HellPot
4 ) make
5 ) Denken Sie über die potenziell schwerwiegenden Konsequenzen Ihrer Handlungen nach.
Falls keine Konfigurationsdatei vorhanden ist, versucht HellPot, seine Standardkonfiguration in $HOME/.config/HellPot/config.toml zu platzieren. Dies ermöglicht unverantwortlichen Seelen, mühelos Höllenfeuer regnen zu lassen, sofort:
1 ) Laden Sie eine kompilierte Version herunter.
2 ) Führen Sie die Binärdatei aus und beginnen Sie sofort, Clients direkt in die Hölle zu schicken.
1 ) Konfigurieren Sie einen Webserver als Reverse-Proxy (siehe unten)
2 ) ./HellPot --genconfig
3 ) Bearbeiten Sie Ihre neu generierte config.toml nach Wunsch.
4 ) Denken Sie über die Existenz Ihres Servers und seine Fähigkeit nach, Ihre gewählten Leistungswerte zu bewältigen.
5 ) ./HellPot -c config.toml
666 ) 𝙏͘͝𝙝̓̓͛𝙚͑̈́̀ 𝙨͆͠͝𝙠͑̾͌𝙮̽͌͆ 𝙞̓̔̔𝙨͒͐͝ 𝙛͑̈́̚𝙖͛͒𝙡͑͆̽𝙡̾̚̚𝙞͋̒̒𝙣̾͛͝𝙜͒̒̀.́̔͝
[!TIP] Konfigurationswerte können mit Umgebungsvariablen überschrieben werden, die mit
HELLPOT_beginnen. Verwenden Sie bei dieser Methode zwei Unterstriche anstelle eines Unterstrichs in den Konfigurationsschlüsseln. z.B.: umhttp.bind_addrüber die Umgebungsvariable zu setzen, setzen SieHELLPOT_HTTP_BIND__ADDR="x.x.x.x"
[deception]
# Wird als "Server"-HTTP-Header verwendet. Beachten Sie, dass Reverse-Proxys dies verbergen können.
server_name = "nginx"
[http]
# TCP-Listener (Standard)
bind_addr = "127.0.0.1"
bind_port = "8080"
# Headername, der die echte IP des Clients enthält, für Reverse-Proxy-Bereitstellungen
real_ip_header = 'X-Real-IP'
# Enthält eine Liste von blockierten User-Agent-Strings. (Groß-/Kleinschreibung beachten)
# Clients mit User-Agents, die einen dieser Strings enthalten, erhalten für alle Anfragen "Not found".
uagent_string_blacklist = ["Cloudflare-Traffic-Manager", "curl"]
# Unix-Socket-Listener (überschreibt Standard)
unix_socket_path = "/var/run/hellpot"
unix_socket_permissions = "0666"
use_unix_socket = false
[http.router]
# Wenn auf true gesetzt, werden alle GET-Anfragen erfasst. Erzwingt makerobots = false.
catchall = false
# Wenn auf false gesetzt, wird die Erstellung des robots.txt-Handlers verhindert.
makerobots = true
# Handler werden für diese Pfade sowie robots.txt-Einträge erstellt. Nur gültig, wenn catchall = false.
paths = ["wp-login.php", "wp-login"]
[logger]
# ausführlich (-v)
debug = true
# extra ausführlich (-vv)
trace = false
# JSON-Protokolldateien werden im unten angegebenen Verzeichnis gespeichert.
directory = "/home/kayos/.local/share/HellPot/logs/"
# Deaktiviert alle Farben in der Konsolenausgabe. Unter Windows standardmäßig aktiviert.
nocolor = false
# Schaltet die Verwendung des aktuellen Datums als Namen für neue Logdateien um.
use_date_filename = true
[performance]
# max_workers ist nur gültig, wenn restrict_concurrency true ist
max_workers = 256
restrict_concurrency = false
location '/robots.txt' {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8080$request_uri;
}
location '/wp-login.php' {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8080$request_uri;
}
Alle nicht vorhandenen URLs werden per Reverse-Proxy an eine HellPot-Instanz auf localhost weitergeleitet, die auf catchall gesetzt ist. Der von HellPot bediente Traffic ist auf 5 KiB/s ratenbegrenzt.
<VirtualHost yourserver>
ErrorDocument 400 "/content/400"
ErrorDocument 403 "/content/403"
ErrorDocument 404 "/content/404"
ErrorDocument 500 "/content/405"
<Directory "$wwwroot/.well-known/">
ErrorDocument 400 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default
</Directory>
/* HTTP Honeypot / HellPot (need mod_proxy, mod_proxy_http) */
ProxyPreserveHost on
ProxyPass "/content/" "http://localhost:8080/"
ProxyPassReverse "/content/" "http://localhost:8080/"
/* Rate Limit config, need mod_ratelimit */
<Location "/content/">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 5
</Location>
/* Remaining config */
</VirtualHost>