
HellPot é um portal multiplataforma para sofrimento interminável, destinado a punir bots HTTP indisciplinados.
HellPot é um honeypot infinito baseado em Heffalump que envia bots HTTP desobedientes para o inferno.
Notavelmente, ele implementa um arquivo de configuração toml, possui registo JSON e oferece ganhos significativos de desempenho.
Clientes (esperançosamente bots) que desrespeitam robots.txt e se conectam à sua instância do HellPot sofrerão consequências eternas.
HellPot enviará um fluxo infinito de dados que é quase real o suficiente para ser um site verdadeiro, de modo que eles podem ficar por perto até que sua alma seja dilacerada e eles deixem de existir.
Por trás deste sofrimento eterno está um motor markov que lança pedaços de O Nascimento da Tragédia (Helenismo e Pessimismo) de Friedrich Nietzsche no cliente usando fasthttp.
HellPot provavelmente deve ser construído com Go versão 1.17 ou superior.
HellPot usa go modules. Isso deve tornar muito simples construir com uma instalação padrão do Go. Para simplificar ainda mais, adicionamos um GNU Makefile.
1 ) git clone https://github.com/yunginnanet/HellPot
2 ) cd HellPot
4 ) make
5 ) Considere as potenciais consequências graves de suas ações.
Na falta de um arquivo de configuração, HellPot tentará colocar sua configuração padrão em $HOME/.config/HellPot/config.toml. Isso permite que almas irresponsáveis comecem a chover fogo do inferno com facilidade, imediatamente:
1 ) Baixe uma versão compilada
2 ) Execute o binário e comece imediatamente a enviar clientes diretamente para o inferno.
1 ) Configure o servidor web como proxy reverso (veja abaixo)
2 ) ./HellPot --genconfig
3 ) Edite seu config.toml recém-gerado conforme desejado.
4 ) Reflita sobre sua existência a capacidade do seu servidor de lidar com os valores de desempenho escolhidos.
5 ) ./HellPot -c config.toml
666 ) 𝙏͘͝𝙝̓̓͛𝙚͑̈́̀ 𝙨͆͠͝𝙠͑̾͌𝙮̽͌͆ 𝙞̓̔̔𝙨͒͐͝ 𝙛͑̈́̚𝙖͛͒𝙡͑͆̽𝙡̾̚̚𝙞͋̒̒𝙣̾͛͝𝙜͒̒̀.́̔͝
[!TIP] Os valores de configuração podem ser substituídos por variáveis de ambiente prefixadas com
HELLPOT_. Ao usar este método, substitua underscores nas chaves de configuração por dois underscores.ex: para definir
http.bind_addrvia env, definaHELLPOT_HTTP_BIND__ADDR="x.x.x.x"
[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;
}
Todas as URLs inexistentes estão sendo redirecionadas via proxy reverso para uma instância do HellPot no localhost, que está configurada como catchall. O tráfego servido pelo HellPot é limitado a 5 KiB/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>