
HellPot est un portail multiplateforme de souffrance infinie destiné à punir les robots HTTP indisciplinés.
HellPot est un honeypot sans fin basé sur Heffalump qui envoie les bots HTTP indisciplinés en enfer.
Notamment, il implémente un fichier de configuration toml, dispose d'une journalisation JSON et offre des gains de performance significatifs.
Les clients (espérons-le des bots) qui ignorent robots.txt et se connectent à votre instance de HellPot subiront des conséquences éternelles.
HellPot enverra un flux infini de données assez proche d'un vrai site web pour qu'ils s'attardent peut-être 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 markovien 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 go modules. Cela devrait rendre la construction très simple avec une installation standard de Go. Pour simplifier encore plus, nous avons ajouté un Makefile GNU.
1 ) git clone https://github.com/yunginnanet/HellPot
2 ) cd HellPot
4 ) make
5 ) Considérez les conséquences graves potentielles de vos actions.
En l'absence d'un fichier de configuration, 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é, immédiatement :
1 ) Téléchargez une version compilée
2 ) Exécutez le binaire et commencez immédiatement à envoyer les clients directement en enfer.
1 ) Configurez le serveur web comme proxy inverse (voir ci-dessous)
2 ) ./HellPot --genconfig
3 ) Modifiez votre config.toml nouvellement générée selon vos souhaits.
4 ) Réfléchissez à votre existence capacité de votre serveur à gérer les valeurs de performance que vous avez choisies.
5 ) ./HellPot -c config.toml
666 ) 𝙏͘͝𝙝̓̓͛𝙚͑̈́̀ 𝙨͆͠͝𝙠͑̾͌𝙮̽͌͆ 𝙞̓̔̔𝙨͒͐͝ 𝙛͑̈́̚𝙖͛͒𝙡͑͆̽𝙡̾̚̚𝙞͋̒̒𝙣̾͛͝𝙜͒̒̀.́̔͝
[!CONSEIL] Les valeurs de configuration peuvent être surchargées avec des variables d'environnement préfixées par
HELLPOT_. Lorsque vous utilisez cette méthode, remplacez les underscores dans les clés de configuration par deux underscores.ex : pour définir
http.bind_addrvia l'env, définissezHELLPOT_HTTP_BIND__ADDR="x.x.x.x"
[deception]
# Utilisé comme en-tête HTTP "Server". Notez que les proxys inverses peuvent le masquer.
server_name = "nginx"
[http]
# Écouteur TCP (par défaut)
bind_addr = "127.0.0.1"
bind_port = "8080"
# nom d'en-tête contenant l'IP réelle du client, pour les déploiements avec proxy inverse
real_ip_header = 'X-Real-IP'
# contient une liste de chaînes de user-agent blacklistées (sensibles à la casse).
# les clients dont les user-agents contiennent l'une de ces chaînes recevront "Not found" pour toute requête.
uagent_string_blacklist = ["Cloudflare-Traffic-Manager", "curl"]
# Écouteur de socket Unix (remplacera le défaut)
unix_socket_path = "/var/run/hellpot"
unix_socket_permissions = "0666"
use_unix_socket = false
[http.router]
# Passer à true fera correspondre toutes les requêtes GET. Forcera makerobots = false.
catchall = false
# Passer à false empêchera la création du gestionnaire robots.txt.
makerobots = true
# Des gestionnaires seront créés pour ces chemins, ainsi que des entrées robots.txt. Valide uniquement si catchall = false.
paths = ["wp-login.php", "wp-login"]
[logger]
# verbeux (-v)
debug = true
# très verbeux (-vv)
trace = false
# Les fichiers journaux JSON seront stockés dans le répertoire ci-dessous.
directory = "/home/kayos/.local/share/HellPot/logs/"
# désactive toute couleur dans la sortie console. Sous Windows, cela sera true par défaut.
nocolor = false
# active l'utilisation de la date courante comme nom des nouveaux fichiers journaux.
use_date_filename = true
[performance]
# max_workers est valide uniquement si restrict_concurrency est 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 URLs inexistantes sont proxy inversé vers une instance HellPot sur localhost, configurée en catchall. Le trafic servi par HellPot est limité à 5 KiB/s.
<VirtualHost yoursername>
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 (nécessite mod_proxy, mod_proxy_http) */
ProxyPreserveHost on
ProxyPass "/content/" "http://localhost:8080/"
ProxyPassReverse "/content/" "http://localhost:8080/"
/* Configuration de limite de débit, nécessite mod_ratelimit */
<Location "/content/">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 5
</Location>
/* Configuration restante */
</VirtualHost>