HellPot ist ein endloser Honeypot auf Basis von Heffalump, der widerspenstige HTTP-Bots in die Hölle schickt.
Insbesondere implementiert es eine Toml-Konfigurationsdatei, verfügt über JSON-Protokollierung und bietet erhebliche Leistungssteigerungen.
Clients (hoffentlich Bots), die robots.txt
ignorieren und sich mit Ihrer HellPot-Instanz verbinden, werden ewige Konsequenzen haben .
HellPot wird einen unendlichen Datenstrom senden, der einer echten Website gerade nahe genug kommt, dass sie dort bleiben könnten, bis ihre Seele auseinandergerissen wird und sie aufhören zu existieren.
Unter der Haube dieses ewigen Leidens verbirgt sich eine Markov-Engine, die dem Client mithilfe von fasthttp Teile von „Die Geburt der Tragödie (Hellenismus und Pessimismus)“ von Friedrich Nietzsche zuführt.
HellPot sollte wahrscheinlich mit Go Version 1.17 oder höher erstellt werden.
HellPot verwendet Go-Module. Dies sollte den Aufbau mit einer Standard-Go-Installation kinderleicht machen. 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) Bedenken Sie die möglichen schwerwiegenden Folgen Ihres Handelns.
Im Falle einer fehlenden Konfigurationsdatei versucht HellPot, seine Standardkonfiguration in $HOME/.config/HellPot/config.toml zu platzieren. Dies ermöglicht es verantwortungslosen Seelen, sofort und mit Leichtigkeit Höllenfeuer regnen zu lassen:
1) Laden Sie eine kompilierte Version herunter
2) Binär ausführen und sofort damit beginnen, Kunden direkt in die Hölle zu schicken.
1) Webserver als Reverse-Proxy konfigurieren (siehe unten)
2) ./HellPot --genconfig
3) Bearbeiten Sie Ihre neu generierte config.toml
wie gewünscht.
4) Denken Sie darüber nach Existenz die Fähigkeit des Servers, mit den von Ihnen gewählten Leistungswerten umzugehen.
5) ./HellPot -c config.toml
666 ) ?͘͝?̓̓͛?͑̈́̀ ?͆͠͝?͑̾͌?̽͌͆ ?̓̔̔?͒͐͝ ?͑̈́̚?͛͒?͑͆̽?̾̚̚?͋̒̒?̾͛͝?͒̒̀.́̔͝
Tipp
Konfigurationswerte können mit Umgebungsvariablen mit dem Präfix HELLPOT_
überschrieben werden. Ersetzen Sie bei Verwendung dieser Methode Unterstriche in Konfigurationsschlüsseln durch zwei Unterstriche.
Beispiel: Um http.bind_addr
über env festzulegen, setzen Sie HELLPOT_HTTP_BIND__ADDR="xxxx"
[ deception ]
# Used as "Server" HTTP header. Note that reverse proxies may hide this.
server_name = " nginx "
[ http ]
# TCP Listener (default)
bind_addr = " 127.0.0.1 "
bind_port = " 8080 "
# header name containing clients real IP, for reverse proxy deployments
real_ip_header = ' X-Real-IP '
# this contains a list of blacklisted useragent strings. (case sensitive)
# clients with useragents containing any of these strings will receive "Not found" for any requests.
uagent_string_blacklist = [ " Cloudflare-Traffic-Manager " , " curl " ]
# Unix Socket Listener (will override default)
unix_socket_path = " /var/run/hellpot "
unix_socket_permissions = " 0666 "
use_unix_socket = false
[ http . router ]
# Toggling this to true will cause all GET requests to match. Forces makerobots = false.
catchall = false
# Toggling this to false will prevent creation of robots.txt handler.
makerobots = true
# Handlers will be created for these paths, as well as robots.txt entries. Only valid if catchall = false.
paths = [ " wp-login.php " , " wp-login " ]
[ logger ]
# verbose (-v)
debug = true
# extra verbose (-vv)
trace = false
# JSON log files will be stored in the below directory.
directory = " /home/kayos/.local/share/HellPot/logs/ "
# disable all color in console output. when using Windows this will default to true.
nocolor = false
# toggles the use of the current date as the names for new log files.
use_date_filename = true
[ performance ]
# max_workers is only valid if restrict_concurrency is true
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“ eingestellt ist. Der von HellPot bereitgestellte Datenverkehr ist auf 5 KiB/s begrenzt.
< 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 >