HellPot est un pot de miel sans fin basé sur Heffalump qui envoie des robots HTTP indisciplinés en enfer.
Il implémente notamment un fichier de configuration toml, dispose d'une journalisation JSON et offre des gains de performances significatifs.
Les clients (espérons-le des robots) qui ignorent robots.txt
et se connectent à votre instance de HellPot subiront des conséquences éternelles .
HellPot enverra un flux infini de données qui est juste assez proche d'un véritable site Web pour qu'ils puissent rester jusqu'à ce que leur âme soit déchirée et qu'ils cessent d'exister.
Sous le capot de cette souffrance éternelle se trouve un moteur Markov qui envoie des morceaux de La Naissance de la tragédie (hellénisme et pessimisme) de Friedrich Nietzsche au client en utilisant fasthttp.
HellPot devrait probablement être construit avec Go version 1.17 ou supérieure.
HellPot utilise des modules go. Cela devrait rendre très simple la construction avec une installation Go d'origine. Pour rendre les choses encore plus simples, nous avons ajouté un Makefile GNU.
1) git clone https://github.com/yunginnanet/HellPot
2 ) cd HellPot
4) make
5 ) Considérez les graves conséquences potentielles de vos actes.
En cas de fichier de configuration manquant, HellPot tentera de placer sa configuration par défaut dans $HOME/.config/HellPot/config.toml . Cela permet aux âmes irresponsables de commencer à faire pleuvoir le feu de l’enfer avec facilité et immédiatement :
1 ) Téléchargez une version compilée
2) Exécutez le binaire et commencez immédiatement à envoyer des clients directement en enfer.
1 ) Configurez le serveur Web en tant que proxy inverse (voir ci-dessous)
2 ) ./HellPot --genconfig
3) Modifiez votre config.toml
nouvellement généré comme vous le souhaitez.
4 ) Réfléchissez à votre existence la capacité du serveur à gérer les valeurs de performances que vous avez choisies.
5 ) ./HellPot -c config.toml
666 ) ?͘͝?̓̓͛?͑̈́̀ ?͆͠͝?͑̾͌?̽͌͆ ?̓̔̔?͒͐͝ ?͑̈́̚?͛͒?͑͆̽?̾̚̚?͋̒̒?̾͛͝?͒̒̀.́̔͝
Conseil
Les valeurs de configuration peuvent être remplacées par des variables d'environnement préfixées par HELLPOT_
. Lorsque vous utilisez cette méthode, remplacez les traits de soulignement dans les clés de configuration par deux traits de soulignement.
par exemple : pour définir http.bind_addr
via env, définissez 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 ;
}
Toutes les URL inexistantes sont proxy inverses vers une instance HellPot sur localhost, qui est définie sur catchall. Le trafic desservi par HellPot est limité à 5 Ko/s.
< 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 >