HellPot é um honeypot sem fim baseado em Heffalump que envia bots HTTP indisciplinados para o inferno.
Notavelmente, ele implementa um arquivo de configuração toml, possui registro JSON e vem com ganhos significativos de desempenho.
Os clientes (espero que sejam bots) que desconsiderarem robots.txt
e se conectarem à sua instância do HellPot sofrerão consequências eternas .
HellPot enviará um fluxo infinito de dados que é próximo o suficiente de ser um site real, onde eles podem permanecer até que sua alma seja destruída e eles deixem de existir.
Sob o capô desse sofrimento eterno está um mecanismo Markov que joga 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 módulos go. Isso deve tornar a construção muito simples com uma instalação padrão do Go. Para tornar ainda mais simples, adicionamos um Makefile GNU.
1) git clone https://github.com/yunginnanet/HellPot
2) cd HellPot
4) make
5) Considere as potenciais consequências graves de suas ações.
No caso de um arquivo de configuração ausente, o HellPot tentará colocar sua configuração padrão em $HOME/.config/HellPot/config.toml . Isto permite que almas irresponsáveis comecem a fazer chover o 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 o seu existência capacidade do servidor de lidar com os valores de desempenho escolhidos.
5) ./HellPot -c config.toml
666) ?͘͝?̓̓͛?͑̈́̀ ?͆͠͝?͑̾͌?̽͌͆ ?̓̔̔?͒͐͝ ?͑̈́̚?͛͒?͑͆̽?̾̚̚?͋̒̒?̾͛͝?͒̒̀.́̔͝
Dica
Os valores de configuração podem ser substituídos por variáveis de ambiente prefixadas com HELLPOT_
. Ao usar esse método, substitua os sublinhados nas chaves de configuração por dois sublinhados.
por exemplo: para definir http.bind_addr
via env, defina 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 ;
}
Todos os URLs inexistentes estão sendo submetidos a proxy reverso para uma instância HellPot no localhost, que está definido como catchall. O tráfego atendido pelo HellPot tem taxa limitada 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 >