HellPot — это бесконечная приманка, основанная на Heffalump, которая отправляет неуправляемых HTTP-ботов куда подальше.
Примечательно, что он реализует файл конфигурации toml, имеет журналирование JSON и обеспечивает значительный прирост производительности.
Клиенты (надеюсь, боты), которые игнорируют robots.txt
и подключаются к вашему экземпляру HellPot, будут страдать от вечных последствий .
HellPot будет отправлять бесконечный поток данных, который достаточно близок к реальному веб-сайту, чтобы они могли просто оставаться на месте, пока их душа не будет разорвана на части и они не перестанут существовать.
Под капотом этих вечных страданий находится марковский движок, который перебрасывает кусочки книги Фридриха Ницше «Рождение трагедии (эллинизм и пессимизм)» клиенту с помощью fasthttp.
HellPot, вероятно, следует собирать с помощью Go версии 1.17 или выше.
HellPot использует модули Go. Это должно упростить сборку со стандартной установкой Go. Чтобы сделать это еще проще, мы добавили Makefile GNU.
1) git clone https://github.com/yunginnanet/HellPot
2) cd HellPot
4 ) make
5) Подумайте о возможных серьезных последствиях ваших действий.
В случае отсутствия файла конфигурации HellPot попытается разместить конфигурацию по умолчанию в $HOME/.config/HellPot/config.toml . Это позволяет безответственным душам с легкостью немедленно начать проливать адский огонь:
1 ) Загрузите скомпилированный выпуск
2) Запускаем бинарник и сразу начинаем отправлять клиентов прямо в ад.
1) Настройте веб-сервер как обратный прокси (см. ниже).
2) ./HellPot --genconfig
3) Отредактируйте вновь созданный config.toml
по своему усмотрению.
4) Подумайте о своем существование способность сервера обрабатывать выбранные вами значения производительности.
5) ./HellPot -c config.toml
666 ) ?͘͝?̓̓͛?͑̈́̀ ?͆͠͝?͑̾͌?̽͌͆ ?̓̔̔?͒͐͝ ?͑̈́̚?͛͒?͑͆̽?̾̚̚?͋̒̒?̾͛͝?͒̒̀.́̔͝
Кончик
Значения конфигурации можно переопределить с помощью переменных среды с префиксом HELLPOT_
. При использовании этого метода замените символы подчеркивания в ключах конфигурации двумя символами подчеркивания.
например: чтобы установить http.bind_addr
через env, установите 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 ;
}
Все несуществующие URL-адреса передаются через обратный проксирование к экземпляру HellPot на локальном хосте, для которого настроен режим catchall. Скорость трафика, обслуживаемого HellPot, ограничена 5 КиБ/с.
< 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 >