
honeyprompt v0.1.8
LLM-प्रथम धोखा ढांचा: "वह हनीपॉट जो बात करता है!™"
honeyprompt

परिचय honeyprompt, एक LLM-प्रथम धोखा ढाँचा जो वेब डेवलपर्स द्वारा/के लिए बनाया गया है। @alectrocute का व्यक्तिगत जुनून प्रोजेक्ट।
सभी प्रमुख क्लाउड और स्थानीय LLM प्रदाताओं का समर्थन करता है। SSH, HTTP, TLS, TCP, telnet और अधिक। यह एक छोटे कंटेनर (और एक एकल स्थैतिक बाइनरी) के रूप में आता है और सभी नॉब एक honeyprompt.yaml में रखता है।
कोई प्लगइन संकलित करने की आवश्यकता नहीं, कोई डेटाबेस चलाने की आवश्यकता नहीं, आसानी से विस्तार योग्य और कम-अंत हार्डवेयर पर तैनात किया जा सकता है।
डेमो इंस्टेंस
एक डेमो इंस्टेंस 172.233.151.216 पर उपलब्ध है, जिसमें बिना प्रमाणीकरण वाला वेब पैनल यहाँ है: http://172.233.151.216:9090। यह एक सस्ते Linode VPS पर चल रहा honeyprompt का एक सार्वजनिक इंस्टेंस है, जिसमें एकमात्र LLM प्रदाता/मॉडल के रूप में openrouter/free है।
त्वरित प्रारंभ
2026 में सबसे आसान सेटअप के लिए, हम Docker और OpenRouter/openrouter/free को LLM प्रदाता के रूप में अनुशंसित करते हैं। सभी प्रमुख क्लाउड और स्थानीय LLM प्रदाता समर्थित हैं। तीन फ़ाइलें और एक कमांड पूर्ण डिफ़ॉल्ट तैनाती स्थापित करते हैं: सात LLM-समर्थित डिकॉय, टिकाऊ घटना संग्रहण और ऑपरेटर पैनल।
1. डिफ़ॉल्ट कॉन्फ़िग, कंपोज़ फ़ाइल और env टेम्पलेट प्राप्त करें:
# if you don't have Docker:
# curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
mkdir honeypot && cd honeypot
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/honeyprompt.yaml
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/compose.yaml
wget -O .env https://raw.githubusercontent.com/alectrocute/honeyprompt/main/.env.example
(या रिपो खींचें और उसमें cd करें — वही तीन फ़ाइलें।)
2. .env भरें। दो मान आवश्यक हैं:
OPENROUTER_API_KEY=sk-or-... # use a dedicated key with a spend limit
HONEYPROMPT_PANEL_PASSWORD=changeme # basic-auth password for the panel
3. इसे शुरू करें:
docker compose up -d
4. इसे परीक्षण करें:
ssh -p 2222 root@localhost # password: root — then type anything
curl http://localhost:2375/v1.54/containers/json # "exposed" Docker API
5. इसे होते हुए देखें रीड-ओनली पैनल पर http://127.0.0.1:9090 (अपने पैनल पासवर्ड के साथ admin के रूप में साइन इन करें)। हर कनेक्शन, क्रेडेंशियल और कमांड लाइव स्ट्रीम होता है। यदि आप किसी रिमोट होस्ट पर तैनात हैं, तो आपको compose.yaml में :9090 पोर्ट को एक्सपोज़ करना होगा। यह उत्पादन तैनाती के लिए अनुशंसित नहीं है।
उत्पादन तैनाती के लिए
latestके बजाय एक क्रमांकित रिलीज़ को पिन करें —.envमेंHONEYPROMPT_IMAGEसेट करें।
आपके द्वारा अभी डाउनलोड किया गया honeyprompt.yaml पूरी तरह से व्याख्यायित शोकेस है। इसमें प्रोफाइल शामिल हैं:
- एक सामान्य कॉर्पोरेट वेब सर्वर — पोर्ट 80, सबसे बड़ा जाल;
/तुरंत स्टॉक nginx वेलकम पेज परोसता है, और गहरे पथ LLM के पास जाते हैं पूर्ण HTML/CSS इंट्रानेट पेज, लॉगिन फॉर्म और एडमिन पैनल के लिए जो हमलावर को क्लिक करते रहने के लिए बनाए गए हैं। - MCP / एजेंट गेटवे — स्ट्रीम करने योग्य HTTP डिस्कवरी, OAuth मेटाडेटा, JSON-RPC टूल कॉल और लुभावने उत्पादन उपकरण।
- Docker Engine API 29.5 — अप्रमाणित पोर्ट 2375 सतह जिसका उपयोग वास्तविक क्लाउड वर्म्स द्वारा किया जाता है।
- Kubernetes API v1.36 — नेमस्पेस, वर्कलोड, सीक्रेट, ConfigMap और RBAC डिस्कवरी।
- Ubuntu 26.04 AI बिल्ड इंफ्रास्ट्रक्चर — SSH, GPU वर्कलोड, Docker, kubeconfigs, CI स्थिति और प्रदाता क्रेडेंशियल्स।
- Redis 8.8 — सामान्य RESP प्रोब जिनका उपयोग क्रेडेंशियल चोरी, स्थायित्व और पार्श्व गति के लिए किया जाता है।
- औद्योगिक एज / OT — एक जानबूझकर विरासत टेलनेट प्रबंधन प्लेन, क्योंकि आधुनिक रक्षा को अभी भी पुराने बुनियादी ढांचे के खिलाफ हमलों को पकड़ना है।
LLM के बिना चलाना
[!महत्वपूर्ण] भले ही आप LLM का उपयोग कर रहे हों, सबसे अधिक उपयोग किए जाने वाले पथ निर्धारित करें और उनके लिए स्थिर नियम जोड़ें। इससे आपको LLM टोकन की भारी मात्रा बचेगी और उन अनुरोधों के प्रति प्रतिक्रिया तेज होगी जो LLM कॉल की लागत के लायक नहीं हैं। यादृच्छिक उदाहरण:
whoami, स्वास्थ्य जांच, favicon, संस्करण प्रोब आदि।
यह न्यूनतम honeyprompt.yaml दो स्थिर नियमों और बिना LLM के एक SSH बॉक्स का नकली बनाता है:
panel:
enabled: true
address: "0.0.0.0:8080"
events:
buffer: 2000
file: /data/events.jsonl # durable attacker activity
services:
- protocol: ssh
address: "0.0.0.0:2222"
description: "Ubuntu 26.04 LTS build runner"
serverName: "gpu-runner-07"
passwordRegex: "^(root|admin|123456)$" # which passwords "work"
commands:
- regex: "^whoami$"
handler: "root"
- regex: "^(.+)$"
handler: "bash: command not found"
docker run --rm \
-p 2222:2222 -p 8080:8080 \
-v "$(pwd)/honeyprompt.yaml:/etc/honeyprompt/honeyprompt.yaml:ro" \
-v honeyprompt-data:/data \
alectrocute/honeyprompt:latest
तैनाती
एक स्थायी तैनाती के लिए, शामिल compose.yaml का उपयोग करें। तैनाती गाइड Docker Hub रिलीज़, आवश्यक GitHub रहस्य, पोर्ट और फायरवॉल सेटअप, SSH पर पैनल पहुंच, अपग्रेड, रोलबैक, घटना संग्रहण और अलगाव को कवर करता है।
संक्षेप में LLM-प्रथम धोखा क्यों
एक हनीपॉट को केवल एक काम अच्छी तरह से करना होता है: इतना विश्वसनीय बने रहना कि हमलावर टाइप करता रहे। वे जो भी कमांड चलाते हैं वह खुफिया जानकारी है — वे उपकरण जिन तक वे पहुँचते हैं, वे क्रेडेंशियल जिनका वे पुन: उपयोग करते हैं, वे CVE जिन्हें वे मानते हैं कि आपने पैच नहीं किया है। स्थिर हनीपॉट उस समय चरित्र तोड़ देते हैं जब कोई ऐसा कमांड चलाता है जिसकी लेखक ने उम्मीद नहीं की थी। honeyprompt उस पल को LLM को सौंप देता है, ताकि शेल dmesg | tail या cat /etc/shadow का उत्तर उसी तरह दे जैसे एक वास्तविक शेल देता, और सत्र जारी रहता है।
Adel Karimi के उत्कृष्ट DEF CON 32 प्रस्तुति को देखें Galah पर, (पहला?) LLM हनीपॉट, जिसने इस प्रोजेक्ट को प्रेरित किया: https://www.youtube.com/watch?v=XGsm4Qcc_Ag
क्या लॉग होता है: दो अलग-अलग धाराएँ
यह वह हिस्सा है जिसे पहले से समझना उचित है, क्योंकि दोनों को जानबूझकर अलग रखा गया है:
- धोखा घटनाएँ: प्रत्येक हमलावर इंटरैक्शन: कनेक्शन, प्रमाणीकरण प्रयास, प्रत्येक कमांड या अनुरोध, honeyprompt द्वारा भेजा गया प्रतिक्रिया, किस प्रदाता और मॉडल ने उत्तर दिया, और इसमें कितना समय लगा। यह आपकी खतरा खुफिया जानकारी है। इसे लाइव पैनल के लिए एक सीमित इन-मेमोरी बफर में रखा जाता है और आप इसे सभी को डिस्क पर स्थायी कर सकते हैं।
- परिचालन लॉग: स्टार्टअप, यह किन पोर्ट से बंधा, प्रदाता विफलताएँ, शटडाउन, आंतरिक त्रुटियाँ। यह वह है जो आप तब पढ़ते हैं जब रनटाइम गलत व्यवहार करता है। इसका हमलावर गतिविधि से कोई लेना-देना नहीं है।
आप उन्हें अलग-अलग कॉन्फ़िगर करते हैं:
# The honey: attacker activity.
events:
buffer: 2000 # recent events kept in memory for the panel
file: /data/events.jsonl # persist every event as JSON Lines
# The runtime's own diagnostics.
logging:
level: info # debug | info | warn | error
format: text # how it looks on the console: text (human) or json
file: /data/honeyprompt.log # optional; on disk it's always JSON
events.jsonl प्रति पंक्ति एक स्व-निहित JSON ऑब्जेक्ट है — tail -f करने, SIEM को भेजने, या jq के साथ पुनः चलाने के लिए तैयार। ऊपर दिए गए Docker कमांड नामित वॉल्यूम honeyprompt-data को /data पर माउंट करते हैं, जिससे कंटेनर प्रतिस्थापन पर घटनाएँ बची रहती हैं। दोनों फ़ाइलों को जोड़ा जाता है और साफ शटडाउन पर फ्लश किया जाता है।
format केवल प्रभावित करता है कि परिचालन लॉग कंसोल पर कैसे प्रस्तुत किए जाते हैं; परिचालन लॉग फ़ाइल, जब सक्षम होती है, हमेशा संरचित JSON होती है ताकि इसे पार्स करना आसान हो।
वेब पैनल
