
HellPot — это кроссплатформенный портал к бесконечным страданиям, предназначенный для наказания непослушных HTTP-ботов.
HellPot — это бесконечный honeypot, основанный на Heffalump, который отправляет непослушных HTTP-ботов в ад.
Примечательно, что он реализует файл конфигурации TOML, имеет JSON-логирование и обеспечивает значительный прирост производительности.
Клиенты (надеемся, боты), которые игнорируют robots.txt и подключаются к вашему экземпляру HellPot, будут страдать от вечных последствий.
HellPot будет отправлять бесконечный поток данных, который достаточно близок к настоящему веб-сайту, так что они могут задержаться, пока их душа не будет разорвана и они не перестанут существовать.
Под капотом этих вечных страданий находится марковский движок, который швыряет в клиента кусочки и фрагменты из «Рождения трагедии (Эллинство и пессимизм)» Фридриха Ницше, используя fasthttp.
HellPot, вероятно, следует собирать с помощью Go версии 1.17 или выше.
HellPot использует go modules. Это должно сделать сборку с обычной установкой Go очень простой. Чтобы сделать это еще проще, мы добавили GNU Makefile.
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 ) 𝙏͘͝𝙝̓̓͛𝙚͑̈́̀ 𝙨͆͠͝𝙠͑̾͌𝙮̽͌͆ 𝙞̓̔̔𝙨͒͐͝ 𝙛͑̈́̚𝙖͛͒𝙡͑͆̽𝙡̾̚̚𝙞͋̒̒𝙣̾͛͝𝙜͒̒̀.́̔͝
[!TIP] Значения конфигурации могут быть переопределены с помощью переменных окружения с префиксом
HELLPOT_. При использовании этого метода заменяйте символы подчеркивания в ключах конфигурации на двойные подчеркивания.Например: чтобы установить
http.bind_addrчерез среду, задайтеHELLPOT_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;
}
Все несуществующие URL-адреса проксируются обратно на экземпляр HellPot на localhost, который настроен на 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>