
ओलामा खुले उदाहरणों के लिए बड़े पैमाने पर टोही, संस्करण फिंगरप्रिंटिंग, CVE परीक्षक और लाइव शोषण ढांचा।
एक्सपोज़्ड Ollama सर्वर खोजने, संस्करण फिंगरप्रिंट करने और मॉडल एक्सेस मान्य करने के लिए मॉड्यूलर टूलकिट।
OllamaHound एक मॉड्यूलर, RedTeam-उन्मुख टूलकिट है जो सार्वजनिक रूप से एक्सपोज़्ड Ollama सर्वरों की खोज, संस्करण फिंगरप्रिंटिंग, CVE एक्सपोज़र का वर्गीकरण, यह सत्यापित करना कि टेक्स्ट जनरेशन संभव है या नहीं, और (वैकल्पिक रूप से) नियंत्रित परीक्षण के लिए एक इंटरैक्टिव CLI सत्र सक्षम करना।
@@@@@@@@@@@@@@@@@@@@@@@@@@@#*#@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@%.-+-:#@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@+--=%@@@@@@@@-.@@@+ #@@@@@@@@@@@@@@@@@ @@@@@@@@@@@= %%+.=@@@%###-.@@@@= %@@@@@@@@@@@@@@@@ @@@@@@@@@@@-.@@@@..--====-.=@@@@.-@@@@@@@@@@@@@@@@ @@@@@@@@@@@# +#+-:*%@@@@@@@@@@@@- +@@@@@@@@@@@@@@@ @@*@@@@@#*+=:::.-*%@@@@@@@@@@@@@@%::%@@@@@@@@@@@@@ @+:-@@*----=***+==-=#@@@@@@@@@@@@@@::@@@@@@@@@@@@@ @*+#@=-==+=%@@@@%#=+:*%%%@@@@#++%@@+ %@@@@@@@@@@@@ +:=@#.+-@#=#@%+++%@:* =++==*@- *@@-.@@@@@@@@@@@@@ %=+@+--*@@*=##+++%#.+::=@#%:+@%@@@@%.=@@@@@@@@@@@@ @@@@#.+-@@%=*@@@@@+.* =-:*@-=@@@@@@@* %@@@@@@@@@@@ @@@@@+:==#*=%@@@@*-=.:--+*-=@@@@@@@@+ %@@@@@@@@@@@ @@@@@@#=----+*++=--=**++*#%@@@@@@@@% =@@@@@@@@@@@@ @@@@@@@@%*-:---.+*%@@@@@@@@@@@@@@@@+-:+@@@@@@@@@@@ @@@@@@@@@@# ==:.%@@@@@@@@@@@@@@@@@@@@%.-@@@@@@@@@@ @@@@@@@@@@#.@@:.#@@@@@@@@@@@@@@#@@@@@@% *@@@@@@@@@ @@@@@@@@@*::--::=%@@@@@@@@@@@@::@@@@@@@ =@@@@@@@@@ @@@@@@@@-.#@@@@@-.@@@@@@@@@@#.-@@@@@@@@*.-@@@@@@@@ @@@@@@@@.-@@@@@%::@@@@@@@@%=.+@@@@@@@@@@%.-@@@@@@@ @@@@@@@@#::++=::+@@@@@@@%=:=%@@@@@%%@@@@@+ @@@@@@@ @@@@@@@@@@=.:: #@@@@@@@=.+@@@@@@%=:*@@@@@= @@@@@@@ @@@@@@@@@@@@%-.%@@@@@@# *@@@@@#-:+@@@@@@% +@@@@@@@ @@@@@@@@@@@@@.=@@@@@@@@=:===---*@@@@@@@@@.=@@@@@@@ @@@@@@@@@@@@@=.%@@@@@@@@#-##%@@@@@@@@@@@@.-@@@@@@@ @@@@@@@@@@@@@@= -%@@@@@@# #@@@@@@@@@@@@@# #@@@@@@@ @@@@@@@@@@@@@@@ .:=*%%@%#..*@@@@@@@@@@@+.+@@@@@@@@ @@@@@@@@@@@@@@@.=@*==- -=*. --==+*#**=:-#@@@@@@@@@ @@@@@@@@@@@@@@@:-@@@@# #@@+ %%##*..++#%@@@@@@@@@@@ @@@@@@@@@@@@@@@::@@@@-.@@@% *@@@@-:@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@*.=++::%@@@@::%@%+ *@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@%***%@@@@@@%=---=%@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@---OllamaHound---@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@---By 7h30th3r0n3---@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!!! चेतावनी !!!
⚠️ कानूनी एवं नैतिक सूचना
यह प्रोजेक्ट अधिकृत सुरक्षा मूल्यांकनों (आंतरिक नेटवर्क, निर्धारित कार्य, प्रयोगशाला वातावरण) के लिए है।
केवल उन सिस्टमों पर उपयोग करें जिनके आप स्वामी हैं या जिनके लिए आपके पास स्पष्ट लिखित अनुमति है।
इस सॉफ़्टवेयर का उपयोग करके, आप सहमत हैं कि आप अपने कार्यों के लिए पूरी तरह जिम्मेदार हैं।
लेखक और योगदानकर्ता इस सॉफ़्टवेयर को "जैसा है" प्रदान करते हैं और किसी भी दुरुपयोग, क्षति या कानूनी परिणामों के लिए सभी दायित्वों का त्याग करते हैं।
/api/tags और /api/generate के माध्यम सेresults/scraper/targets.txtresults/scanner/<prefix>_YYYYMMDD_HHMMSS.csvआप इसे चरण-दर-चरण कर सकते हैं या पहले तीन चरणों को जोड़ने के लिए ऑर्केस्ट्रेटर चला सकते हैं।
asyncio + aiohttp का उपयोग कर (हजारों सॉकेट इन-फ़्लाइट)rich के माध्यम से<prefix>_YYYYMMDD_HHMMSS.csvGET /api/version → फ़ॉलबैक GET /version → फ़ॉलबैक Server हेडर< 0.1.47<= 0.3.14GET /api/tags के माध्यम से मॉडलों की गणनाaiohttprichpackagingrequestsshodanनिर्भरताएँ स्थापित करें:
python3 -m pip install -U aiohttp rich packaging requests shodan
Docker का उपयोग करें:
docker build -t ollamahound .
docker run -it --rm ollamahound <ollamahound scripts>
विकल्प A (सबसे तेज़): स्क्रैप → स्कैन → कनेक्ट
python3 ollamaScraper.py
python3 ollamaScanner.py results/scraper/targets.txt --gen-ok-only
python3 ollamaConnector.py --scan-csv results/scanner/ollama_scan_*.csv
विकल्प B (एक-शॉट): ऑर्केस्ट्रेटर पाइपलाइन
python3 ollamaOrchestrator.py --scan-gen-ok-only
ollamaOrchestrator.py केवल स्क्रैपर, स्कैनर, फिर कनेक्टर चलाता है ताकि आप एक ही कमांड में शॉडन हार्वेस्टिंग से इंटरैक्टिव CLI तक जा सकें। स्क्रैपर और कनेक्टर इंटरैक्टिव रहते हैं, लेकिन ऑर्केस्ट्रेटर आपके लिए उनके आउटपुट को जोड़ देता है।
python3 ollamaOrchestrator.py --scan-gen-ok-only --scan-vuln-only
results/orchestrator/targets.txt में लिखे जाते हैं (--targets के साथ बदलें)।results/scanner/ में --scan-output-prefix (डिफ़ॉल्ट orchestrator_scan) के उपसर्ग के साथ आते हैं।--connector-row पास करें, या सामान्य रूप से इंटरैक्टिव रूप से चुनें।--skip-scrape, --skip-scan, और --skip-connect आपको मौजूदा आउटपुट का उपयोग करके आंशिक रूप से फिर से शुरू करने देते हैं (स्कैन चरण को छोड़ते समय --scan-csv आवश्यक है)।बाकी यह खंड अभी भी लागू होता है यदि आप प्रत्येक मॉड्यूल को मैन्युअल रूप से चलाना चाहते हैं।
Scraper:
# मूल इंटरैक्टिव स्क्रैप (शॉडन dork पिकर)
python3 ollamaScraper.py
# कस्टम आउटपुट फ़ोल्डर + फ़ाइल नाम
python3 ollamaScraper.py --output-dir results/my-scrape -o targets_acme.txt
Scanner:
# targets.txt स्कैन करें (डिफ़ॉल्ट 11434, 500 समवर्तीता, 8s टाइमआउट)
python3 ollamaScanner.py results/scraper/targets.txt
# केवल वे होस्ट जहाँ /api/generate 200 लौटाता है
python3 ollamaScanner.py results/scraper/targets.txt --gen-ok-only
# मल्टी-पोर्ट स्कैन (स्पेस और कॉमा मिक्स)
python3 ollamaScanner.py results/scraper/targets.txt -p 11434 8080,13871
# आक्रामक स्वीप (छोटा टाइमआउट + उच्च समवर्तीता)
python3 ollamaScanner.py results/scraper/targets.txt --timeout 3 -c 800
# केवल कमजोर होस्ट (RCE/DoS) और अज्ञात संस्करण रखें
python3 ollamaScanner.py results/scraper/targets.txt --vuln-only --show-unknown
# कस्टम CSV उपसर्ग + आउटपुट निर्देशिका
python3 ollamaScanner.py results/scraper/targets.txt -o scan_acme.csv --output-dir results/scanner_acme
Navigator:
# स्कैनर CSV की निर्देशिका फ़िल्टर करें
python3 ollamaNavigator.py --scan-csv results/scanner --require-gen-ok --vuln rce
# एकल CSV फ़िल्टर करें, llama मॉडल तक सीमित, आकार >= 7B
python3 ollamaNavigator.py --scan-csv results/scanner/scan_20260107_180002.csv \
--model llama --min-params 7
# मॉडल बहिष्कृत करें + कीवर्ड खोजें
python3 ollamaNavigator.py --scan-csv results/scanner --exclude-model qwen --search france
# फ़िल्टर की गई पंक्तियाँ निर्यात करें
python3 ollamaNavigator.py --scan-csv results/scanner --vuln dos \
--json-output results/navigator/dos.json --csv-output results/navigator/dos.csv
# इंटरैक्टिव फ़िल्टर मेनू
python3 ollamaNavigator.py --scan-csv results/scanner --interactive
Connector:
# सीधे कनेक्ट करें
python3 ollamaConnector.py --host http://127.0.0.1:11434 --model llama3
# स्कैनर CSV में एक पंक्ति का उपयोग करें (1-आधारित अनुक्रमणिका)
python3 ollamaConnector.py --scan-csv results/scanner/scan_20260107_180002.csv --scan-row 3
Orchestrator:
# पूर्ण पाइपलाइन
python3 ollamaOrchestrator.py
# पूर्ण पाइपलाइन + केवल gen-ok + vuln-only
python3 ollamaOrchestrator.py --scan-gen-ok-only --scan-vuln-only
# मौजूदा लक्ष्य और CSV का पुन: उपयोग करें, केवल कनेक्टर चलाएं
python3 ollamaOrchestrator.py --skip-scrape --skip-scan --scan-csv results/scanner/scan_20260107_180002.csv
# कनेक्टर छोड़ें (केवल स्क्रैप + स्कैन)
python3 ollamaOrchestrator.py --skip-connect
targets.txt में प्रति पंक्ति एक हो सकता है:
192.0.2.1010.0.0.0/24ollama.example.orgयदि आप स्क्रैपर के साथ सूची उत्पन्न करते हैं, तो स्कैनर को results/scraper/targets.txt (या जो भी पथ आपने --output-dir के साथ चुना है) पर इंगित करें।
ollamaScraper.py शॉडन से क्वेरी करके आपके लिए results/scraper/targets.txt बना सकता है:
python3 ollamaScraper.py
स्क्रिप्ट आपकी API कुंजी को .shodan_api में कैश करती है, आपको एक dork (वैश्विक या देश-स्कोप्ड) चुनने देती है, और प्रत्येक हिट को results/scraper/targets.txt में जोड़ते हुए बुनियादी संदर्भ प्रिंट करती है। आप वैकल्पिक रूप से परिणामों को संकीर्ण करने के लिए org:"Company" फ़िल्टर जोड़ सकते हैं। Ctrl+C या अधिकतम-IP सीमा तक पहुँचने पर रन रुक जाता है। फ़ोल्डर या फ़ाइल नाम बदलने के लिए --output-dir / -o का उपयोग करें, फिर उस पथ को स्कैनर को पास करें।
केवल वे होस्ट दिखाएँ जहाँ /api/generate HTTP 200 लौटाता है:
python3 ollamaScanner.py targets.txt --gen-ok-only
अधिक आक्रामक स्वीप (छोटा टाइमआउट + उच्च समवर्तीता):
python3 ollamaScanner.py targets.txt --gen-ok-only --timeout 3 -c 800
पूर्ण स्वीप उदाहरण:
11434 और 8080 स्कैन करें/api/generate == 200 रखेंscan.csvpython3 ollamaScanner.py targets.txt -p 11434,8080 --timeout 2 -c 1200 \
--gen-ok-only --vuln-only --show-unknown -o scan.csv
स्कैनर CSV अब results/scanner/ के अंतर्गत आते हैं। यदि आप फ़ाइलों को कहीं और भेजना चाहते हैं तो --output-dir का उपयोग करें (फ़ोल्डर स्वचालित रूप से बनाया जाता है)।
स्कैनर एक rich तालिका प्रिंट करता है जिसमें शामिल हैं:
? यदि अज्ञात)rce, dos, patched, unknown)tags, generate, show)एक टाइमस्टैम्प्ड CSV स्वचालित रूप से लिखा जाता है, उदाहरण के लिए:
ollama_scan_20260107_180002.csv
फ़ील्ड:
ip, port, version, vuln, tags, generate, show, modelsनेविगेटर का उपयोग एक CSV या स्कैनर आउटपुट की पूरी निर्देशिका (होस्ट/पोर्ट द्वारा डिडुप, मॉडल विलय) से परिणामों को फ़िल्टर, सॉर्ट और निर्यात करने के लिए करें।
python3 ollamaNavigator.py --scan-csv results/scanner --require-gen-ok --vuln rce --model llama
--scan-csv एक एकल CSV फ़ाइल या स्कैनर आउटपुट की निर्देशिका स्वीकार करता है।params (डिफ़ॉल्ट), ip, या version.--interactive का उपयोग करें।--json-output या --csv-output के साथ फ़िल्टर की गई पंक्तियाँ निर्यात करें।एक खोजे गए इंस्टेंस से कनेक्ट करें और प्रतिक्रियाएँ स्ट्रीम करें:
python3 ollamaConnector.py --host http://127.0.0.1:11434 --model llama3
यदि आप --model छोड़ते हैं, तो CLI /api/tags लाता है, सर्वर द्वारा उजागर किए गए प्रत्येक मॉडल को सूचीबद्ध करता है, और आपको संख्या द्वारा चुनने देता है। प्रत्येक प्रॉम्प्ट सर्वर के समाप्त होने या Ctrl+C दबाने तक सियान में टोकन स्ट्रीम करता है। बाहर निकलने के लिए exit / quit टाइप करें।
आप कनेक्टर को स्कैनर CSV के अंदर एक पंक्ति पर भी इंगित कर सकते हैं ताकि आपको होस्ट और मॉडल दोबारा न लिखना पड़े:
python3 ollamaConnector.py --scan-csv scan_20260107_141056.csv --scan-row 3
--scan-row 1-आधारित है (हेडर के बाद पहली पंक्ति 1 है)। यदि आप इसे छोड़ते हैं, तो कनेक्टर CSV लोड करता है, आपको प्रत्येक होस्ट (IP/पोर्ट, vuln स्थिति, पहला मॉडल) दिखाता है, आपको इंडेक्स चुनने देता है, फिर खोजे गए मॉडलों को सूचीबद्ध करता है ताकि आप चुन सकें कि किससे बात करनी है। मॉडल प्रॉम्प्ट के दौरान 0 चुनने पर एक नई /api/tags फ़ेच पर जाता है, इसलिए मूल कनेक्टर व्यवहार अभी भी काम करता है यदि CSV पुराना या खाली है।
ollamaScraper.py एक सरल सहायक है जो .shodan_api टोकन फ़ाइल रखता है, एक देश (या वैश्विक) के लिए संकेत देता है, आपको कई तैयार शॉडन dorks (या एक कस्टम क्वेरी) में से चुनने देता है, फिर शॉडन पेजों पर चलता है जब तक आप बाधित नहीं करते या उपयोगकर्ता-परिभाषित होस्ट सीमा तक नहीं पहुँचते। प्रत्येक IP results/scraper/targets.txt में लिखा जाता है, जिसका अर्थ है कि स्कैनर तुरंत आउटपुट का पुन: उपयोग कर सकता है। यदि वांछित हो तो --output-dir के माध्यम से एक अलग निर्देशिका प्रदान करें।
यह वैकल्पिक रूप से एक कंपनी/संगठन फ़िल्टर भी प्रदान करता है जो dork में org:"Company" जोड़ता है, और केवल उन सिस्टमों को लक्षित करने की चेतावनी प्रिंट करता है जिनके आप स्वामी हैं या जिनके परीक्षण की स्पष्ट अनुमति है।
--skip-scrape, --skip-scan, --skip-connect पाइपलाइन के कुछ हिस्सों को फिर से शुरू करने के लिए--targets साझा लक्ष्य फ़ाइल चुनने के लिए--ports, --scan-concurrency, --scan-timeout स्कैनर चरण को ट्यून करने के लिए--scan-output-prefix, --scan-output-dir स्कैनर CSV आउटपुट को नियंत्रित करने के लिए--scan-gen-ok-only, --scan-vuln-only, --scan-show-unknown स्कैनर फ़िल्टर के लिए--scan-csv स्कैन छोड़ते समय मौजूदा स्कैनर CSV का पुन: उपयोग करने के लिएनेविगेटर 7B, 13b, या 500m जैसे मॉडल नामों से पैरामीटर आकार निकालता है। प्रति होस्ट सबसे बड़ा आकार तालिका में प्रदर्शित होता है और सॉर्टिंग/फ़िल्टरिंग (--min-params / --max-params) के लिए उपयोग किया जाता है।
OllamaHound रक्षात्मक और अधिकृत आक्रामक सुरक्षा के लिए बनाया गया है:
7h30th3r0n3
Scannerउच्च‑स्तरीय async डिस्कवरी, संस्करण फिंगरप्रिंटिंग, CVE वर्गीकरण, मॉडल प्रोबिंग।
|
Connectorएक खोजे गए Ollama इंस्टेंस से बात करने के लिए समृद्ध‑UI इंटरैक्टिव CLI क्लाइंट।
|
Scraperशॉडन-समर्थित लक्ष्य हार्वेस्टर जो इंटरैक्टिव रूप से
|
Navigatorनिर्यात + इंटरैक्टिव मेनू के साथ स्कैनर CSV के लिए खोज/फ़िल्टर सहायक।
|
Orchestratorscraper → scanner → connector को जोड़ता है, प्रत्येक आउटपुट को अगले को देता है।
|
परिणामआउटपुट मॉड्यूल में पुन: उपयोग के लिए |
POST /api/generate के माध्यम से जनरेशन का परीक्षण/api/generate HTTP 200 लौटाता है, सबसे ऊपर आते हैं--gen-ok-only केवल कार्यशील /api/generate वाले होस्ट रखता है--vuln-only केवल RCE/DoS वर्गीकृत होस्ट रखता है--show-unknown अज्ञात/अपार्सेबल संस्करणों वाले होस्ट शामिल करता है--connector-row कनेक्टर लॉन्च करते समय स्वचालित रूप से एक पंक्ति चुनने के लिए| मॉड्यूल | आउटपुट | डिफ़ॉल्ट स्थान |
|---|
| Scraper | लक्ष्य सूची | results/scraper/targets.txt |
| Scanner | टाइमस्टैम्प्ड CSV | results/scanner/<prefix>_YYYYMMDD_HHMMSS.csv |
| Navigator | वैकल्पिक JSON/CSV निर्यात | navigator_results.json / navigator_results.csv |
| Orchestrator | लक्ष्य + स्कैनर CSV | results/orchestrator/targets.txt + results/scanner/ |