
HellPot هو بوابة متعددة المنصات للمعاناة اللانهائية تهدف إلى معاقبة روبوتات HTTP غير المنضبطة.
HellPot هو وعاء عسل لا نهائي مبني على Heffalump يرسل روبوتات HTTP غير المنضبطة إلى الجحيم.
بشكل ملحوظ، يستخدم ملف إعداد toml، ويسجل بصيغة JSON، ويتمتع بمكاسب أداء كبيرة.
العملاء (آملين أنها روبوتات) الذين يتجاهلون robots.txt ويتصلون بنسختك من HellPot سيعانون من عواقب أبدية.
سيرسل HellPot تيارًا لا نهائيًا من البيانات التي ستكون قريبة بما يكفي لتكون موقعًا حقيقيًا لدرجة أنهم قد يبقون حتى تتمزق أرواحهم ويزول وجودهم.
تحت غطاء هذا العذاب الأبدي يوجد محرك ماركوف يمزق أجزاء من ميلاد المأساة (الهيلينية والتشاؤم) لفريدريك نيتشه ويرميها إلى العميل باستخدام fasthttp.
يجب بناء HellPot على الأرجح باستخدام إصدار Go 1.17 أو أعلى.
يستخدم HellPot وحدات Go. وهذا يجعل البناء بسيطًا جدًا مع تثبيت 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]
# تستخدم كرأس HTTP "Server". لاحظ أن البروكسيات العكسية قد تخفيها.
server_name = "nginx"
[http]
# مستمع TCP (افتراضي)
bind_addr = "127.0.0.1"
bind_port = "8080"
# اسم الرأس الذي يحتوي على IP الحقيقي للعميل، لنشر البروكسي العكسي
real_ip_header = 'X-Real-IP'
# هذا يحتوي على قائمة من سلاسل وكيل المستخدم المحظورة (حساسة لحالة الأحرف)
# العملاء الذين تحتوي وكلاء المستخدم الخاصة بهم على أي من هذه السلاسل سيتلقون "لم يتم العثور" لأي طلبات.
uagent_string_blacklist = ["Cloudflare-Traffic-Manager", "curl"]
# مستمع مأخذ يونكس (سيتجاوز الافتراضي)
unix_socket_path = "/var/run/hellpot"
unix_socket_permissions = "0666"
use_unix_socket = false
[http.router]
# تفعيل هذا إلى true سيجعل جميع طلبات GET تتطابق. يجبر makerobots على false.
catchall = false
# تفعيل هذا إلى false سيمنع إنشاء معالج robots.txt.
makerobots = true
# سيتم إنشاء معالجات لهذه المسارات، بالإضافة إلى إدخالات robots.txt. صالح فقط إذا كان catchall = false.
paths = ["wp-login.php", "wp-login"]
[logger]
# مطوّل (-v)
debug = true
# مطوّل جدًا (-vv)
trace = false
# سيتم تخزين ملفات سجل JSON في الدليل أدناه.
directory = "/home/kayos/.local/share/HellPot/logs/"
# تعطيل كل الألوان في إخراج وحدة التحكم. عند استخدام Windows سيصبح هذا true افتراضيًا.
nocolor = false
# تفعيل استخدام التاريخ الحالي كأسماء لملفات السجل الجديدة.
use_date_filename = true
[performance]
# max_workers صالح فقط إذا كان restrict_concurrency 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 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 (يحتاج mod_proxy, mod_proxy_http) */
ProxyPreserveHost on
ProxyPass "/content/" "http://localhost:8080/"
ProxyPassReverse "/content/" "http://localhost:8080/"
/* إعداد تحديد المعدل، يحتاج mod_ratelimit */
<Location "/content/">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 5
</Location>
/* الإعدادات المتبقية */
</VirtualHost>