
खोजें उजागर AI सेवाएँ
AI एजेंट इंफ्रास्ट्रक्चर के लिए इंटरनेट-स्केल डिस्कवरी और सुरक्षा परीक्षण प्लेटफ़ॉर्म।
AIMap सार्वजनिक रूप से एक्सपोज़्ड AI एंडपॉइंट्स — MCP सर्वर, Ollama इंस्टेंस, vLLM/LiteLLM प्रॉक्सी, LangServe चेन, Gradio ऐप्स, ComfyUI नोड्स, और बहुत कुछ — को ढूंढता है, फिंगरप्रिंट करता है, और सुरक्षा-परीक्षण करता है। Shodan की तरह सोचें, लेकिन AI एजेंट अटैक सरफ़ेस के लिए विशेष रूप से बनाया गया।
Bishop Fox द्वारा निर्मित।
चेतावनी यह उपकरण केवल अधिकृत पेनिट्रेशन टेस्टिंग और सुरक्षा अनुसंधान के लिए है। आप AIMap का उपयोग केवल उन सिस्टमों के विरुद्ध कर सकते हैं जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। कंप्यूटर सिस्टमों तक अनधिकृत पहुंच अवैध है। Bishop Fox कोई देयता नहीं लेता है और इस उपकरण के किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं है। जिम्मेदारी से उपयोग करें।
┌─────────────┐ ┌──────────────┐ ┌───────────┐
│ React SPA │────▶│ FastAPI │────▶│ MongoDB │
│ (Vite) │ WS │ Backend │ │ │
└─────────────┘ └──────┬───────┘ └───────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Shodan │ │ Nuclei │ │ Redis │
│ API │ │ Scanner │ │ Streams │
└──────────┘ └──────────┘ └──────────┘
बैकएंड — Python/FastAPI एसिंक MongoDB (Motor) के साथ, अटैक लॉग स्ट्रीमिंग के लिए Redis स्ट्रीम्स, और एक डिस्कवरी इंजन जो Shodan क्वेरी → httpx लाइवनेस चेक → Nuclei टेम्पलेट स्कैन → एनरिचमेंट पाइपलाइन को ऑर्केस्ट्रेट करता है।
फ्रंटएंड — React 18 + TypeScript + Tailwind CSS + shadcn/ui। इसमें 3D ग्लोब (globe.gl), WebSocket के माध्यम से रीयल-टाइम अटैक स्ट्रीमिंग और Shodan-शैली सर्च इंटरफ़ेस है।
स्कैनिंग — MCP सर्वर डिटेक्शन, MCP टूल एनुमरेशन, OpenAI-संगत API डिटेक्शन, LangServe डिटेक्शन और प्रॉम्प्ट लीक परीक्षण के लिए 5 कस्टम Nuclei YAML टेम्पलेट।
प्रत्येक एंडपॉइंट को 0–10 का जोखिम स्कोर मिलता है जिसकी गणना निम्न से की जाती है:
# क्लोन करें
git clone [email protected]:BishopFox/aimap.git
cd aimap
# कॉन्फ़िगर करें
cp .env.example .env
# .env संपादित करें — कम से कम SHODAN_API_KEY सेट करें
# लॉन्च करें
docker compose up --build
यह 4 सेवाएँ शुरू करता है:
UI तक पहुँचने के लिए http://localhost खोलें।
# बैकएंड
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# फ्रंटएंड (अलग टर्मिनल)
cd frontend
npm install
npm run dev # http://localhost:5173 पर शुरू होता है
सुनिश्चित करें कि MongoDB स्थानीय रूप से पोर्ट 27017 पर चल रहा है। Redis वैकल्पिक है — जब Redis अनुपलब्ध होता है तो बैकएंड इन-मेमोरी बफर पर वापस आ जाता है।
प्रोजेक्ट रूट में .env फ़ाइल बनाएँ:
# आवश्यक
SHODAN_API_KEY=your_shodan_api_key
# वैकल्पिक — अतिरिक्त डिस्कवरी स्रोत के रूप में Censys
CENSYS_API_ID=
CENSYS_API_SECRET=
# वैकल्पिक — AI-संचालित अटैक विश्लेषण को सक्षम करता है
ANTHROPIC_API_KEY=
# MongoDB (डिफ़ॉल्ट स्थानीय देव के लिए काम करते हैं)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=aimap
# Redis (डिफ़ॉल्ट स्थानीय देव के लिए काम करते हैं; वैकल्पिक)
REDIS_URL=redis://localhost:6379/0
# CORS (डिफ़ॉल्ट सभी ऑरिजिन की अनुमति देता है)
CORS_ORIGINS=*
# Modal सर्वरलेस (स्कैन/अटैक को Modal कंटेनरों में भेजता है)
MODAL_ENABLED=false
# Clerk ऑथ — नीचे देखें
CLERK_ISSUER=
AIMap प्रमाणीकरण के लिए Clerk का उपयोग करता है। सक्षम करने के लिए:
# .env (प्रोजेक्ट रूट)
CLERK_ISSUER=https://your-app.clerk.accounts.dev
# frontend/.env.local
VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
प्रमाणीकरण अक्षम करने के लिए (स्थानीय देव, डेमो): CLERK_ISSUER को खाली या अनसेट छोड़ दें। बैकएंड सभी अनुरोधों को एक सिंथेटिक local उपयोगकर्ता पहचान के साथ स्वीकार करेगा।
ollama, mcp_protocol, vllm) या कस्टम Shodan क्वेरी दर्ज करेंnet:<cidr> जोड़ता है)Shodan-शैली क्वेरी सिंटैक्स के साथ सर्च बार का उपयोग करें:
protocol:mcp # MCP सर्वर
auth:none # कोई प्रमाणीकरण नहीं
risk:critical # जोखिम स्कोर >= 9.0
risk:high # जोखिम स्कोर 7.0 – 8.9
risk:medium # जोखिम स्कोर 4.0 – 6.9
risk:low # जोखिम स्कोर 1.0 – 3.9
tool:query_db # एक विशिष्ट टूल को एक्सपोज़ करने वाले एंडपॉइंट
country:US # देश कोड द्वारा
port:11434 # पोर्ट नंबर द्वारा
org:"Amazon AWS" # होस्टिंग संगठन द्वारा (बहु-शब्द मानों को उद्धरण में लें)
has:system_prompt # लीक हुए सिस्टम प्रॉम्प्ट वाले एंडपॉइंट
फ़िल्टर को स्वतंत्र रूप से संयोजित करें:
protocol:mcp auth:none country:US # अमेरिका में अप्रमाणित MCP सर्वर
risk:critical tool:exec_code # कोड निष्पादन टूल वाले क्रिटिकल एंडपॉइंट
protocol:ollama port:11434 # डिफ़ॉल्ट पोर्ट पर Ollama
कोई भी टेक्स्ट जो `key:value` पैटर्न से मेल नहीं खाता है, सभी अनुक्रमित फ़ील्ड में फ्री-टेक्स्ट खोज के रूप में माना जाता है।
लैंडिंग पृष्ठ में एक इंटरैक्टिव 3D ग्लोब है जो सभी खोजे गए एंडपॉइंट दिखाता है:
templates/ निर्देशिका में कस्टम टेम्पलेट:
सभी एंडपॉइंट /api/ से उपसर्गित हैं।
aimap/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI ऐप, लाइफस्पैन, CORS, राउटर
│ │ ├── config.py # env से Pydantic सेटिंग्स
│ │ ├── auth.py # Clerk JWT सत्यापन (CLERK_ISSUER खाली होने पर बायपास)
│ │ ├── database.py # एसिंक MongoDB (Motor) कनेक्शन
│ │ ├── limiter.py # SlowAPI दर सीमित करना
│ │ ├── routes/
│ │ │ ├── endpoints.py # CRUD + खोज + ग्लोब + एनरिचमेंट
│ │ │ ├── scans.py # स्कैन जीवनचक्र + निष्पादन + WebSocket
│ │ │ └── attack.py # अटैक डिस्पैच + Redis स्ट्रीम्स + WebSocket
│ │ ├── discovery/
│ │ │ ├── orchestrator.py # स्कैन पाइपलाइन: Shodan → httpx → Nuclei → इनजेस्ट
│ │ │ ├── shodan_adapter.py # 32 क्यूरेटेड Shodan क्वेरी + परिणाम सामान्यीकरण
│ │ │ ├── nuclei_runner.py # Nuclei सबप्रोसेस रनर + फाइंडिंग पार्सर
│ │ │ └── base.py # SourceAdapter एब्सट्रैक्ट बेस
│ │ └── services/
│ │ ├── attack_mcp.py # MCP प्रोटोकॉल अटैक इंजन
│ │ ├── attack_ollama.py # Ollama अटैक इंजन
│ │ ├── attack_openclaw.py # OpenClaw/Clawdbot अटैक इंजन
│ │ ├── enrichment.py # Shodan/Nuclei एनरिचमेंट + जोखिम स्कोरिंग
│ │ ├── live_probe.py # मॉडल/टूल एनुमरेशन के लिए HTTP प्रोबिंग
│ │ ├── search.py # Shodan-शैली क्वेरी पार्सर → MongoDB फ़िल्टर
│ │ ├── redis_client.py # फ़ॉलबैक के साथ एसिंक Redis सिंगलटन
│ │ └── concurrency.py # सेमाफोर + Redis-आधारित स्लॉट सीमा
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── App.tsx # रूट्स + Clerk ऑथ रैपर
│ │ ├── pages/
│ │ │ ├── Marketing.tsx # 3D ग्लोब के साथ सार्वजनिक लैंडिंग पेज
│ │ │ ├── Landing.tsx # ग्लोब के साथ प्रमाणित डैशबोर्ड
│ │ │ ├── Search.tsx # क्वेरी सिंटैक्स के साथ एंडपॉइंट खोज
│ │ │ ├── Explore.tsx # सभी एंडपॉइंट ब्राउज़/फ़िल्टर करें
│ │ │ ├── AgentDetail.tsx # एकल एंडपॉइंट गहन-डाइव
│ │ │ ├── TestAgent.tsx # अटैक टेस्ट लॉन्चर
│ │ │ ├── Scans.tsx # स्कैन प्रबंधन
│ │ │ └── Ranges.tsx # CIDR रेंज प्रबंधन
│ │ ├── components/
│ │ │ ├── GlobeVisualization.tsx # globe.gl 3D ग्लोब + लीजेंड
│ │ │ ├── Layout.tsx # ऐप शेल (साइडबार + नेवबार)
│ │ │ └── ui/ # shadcn/ui घटक
│ │ ├── hooks/useApi.ts # सभी API एंडपॉइंट के लिए SWR हुक
│ │ └── lib/api-client.ts # Clerk टोकेन इंजेक्शन के साथ फ़ेच रैपर
│ ├── Dockerfile
│ ├── nginx.conf
│ └── tailwind.config.js
├── templates/ # Nuclei YAML टेम्पलेट
├── docs/ # GitHub Pages स्थैतिक साइट
├── docker-compose.yml
├── .env.example
└── README.md
प्लेटफ़ॉर्म दुरुपयोग को रोकने के लिए वैश्विक समवर्ती सीमाएँ लागू करता है:
Docker Compose का उपयोग करते समय, ये सीमाएँ Redis काउंटर (क्रॉस-कंटेनर) के माध्यम से लागू की जाती हैं। स्थानीय देव मोड में, ये asyncio.Semaphore (एकल-प्रक्रिया) पर वापस आ जाती हैं।
भारी स्कैनिंग वर्कलोड के लिए, स्कैन और अटैक को Modal कंटेनरों में भेजा जा सकता है:
MODAL_ENABLED=true
जब सक्षम हो, तो POST /scans/{id}/run और POST /attack स्थानीय रूप से चलाने के बजाय modal.Function.from_name("aimap", "run_scan_task") / run_attack_task को कॉल करेगा। यदि Modal डिस्पैच विफल होता है तो स्थानीय निष्पादन पर वापस आ जाता है।
MIT लाइसेंस। विवरण के लिए LICENSE देखें।
यह प्रोजेक्ट Bishop Fox द्वारा अनुरक्षित है।
| प्रोटोकॉल | डिटेक्शन विधि | Shodan क्वेरी |
|---|
| MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) | SSE ट्रांसपोर्ट, JSON-RPC, /mcp/sse पथ | 4 queries |
| Ollama | डिफ़ॉल्ट पोर्ट 11434, उत्पाद फिंगरप्रिंट | 3 queries |
| vLLM / LiteLLM / LocalAI | /v1/models, /v1/chat/completions एंडपॉइंट | 4 queries |
| LangServe / LangChain | प्लेग्राउंड एंडपॉइंट, langserve मार्कर | 2 queries |
| OpenClaw / Clawdbot | कंट्रोल डैशबोर्ड, पोर्ट 18789 | 3 queries |
| Open WebUI / LibreChat | शीर्षक-आधारित डिटेक्शन | 2 queries |
| Gradio | शीर्षक, फुटर वॉटरमार्क, फ़ेविकॉन हैश | 3 queries |
| Streamlit | शीर्षक, फ़ेविकॉन हैश | 2 queries |
| ComfyUI / Stable Diffusion | शीर्षक, पोर्ट-आधारित डिटेक्शन | 4 queries |
| HuggingFace TGI | HTML मार्कर | 1 query |
| जेनेरिक इनफ़रेंस | /api/generate, /api/tags पथ | 2 queries |
| कारक | स्कोर प्रभाव |
|---|
| कोई प्रमाणीकरण नहीं | +4.0 |
| अज्ञात ऑथ स्थिति | +1.0 |
| 10+ टूल एक्सपोज़्ड | +2.0 |
| 5+ टूल एक्सपोज़्ड | +1.0 |
क्रिटिकल-जोखिम टूल (जैसे, exec_code, run_shell) | +1.0 प्रत्येक |
उच्च-जोखिम टूल (जैसे, query_db, file_read) | +0.5 प्रत्येक |
ओपन CORS (*) | +1.0 |
| कोई TLS नहीं | +0.5 |
| सिस्टम प्रॉम्प्ट लीक हुआ | +0.5 |
| मॉडल एक्सपोज़्ड | +1.0 |
| अनसेंसर्ड मॉडल पाया गया | +2.0 |
| साइनअप सक्षम (कोई आमंत्रण आवश्यक नहीं) | +1.5 |
| खतरनाक संयोजन (जैसे, कोई ऑथ नहीं + कोड निष्पादन टूल) | +1.0 प्रत्येक |
| टेम्पलेट | उद्देश्य |
|---|
mcp-server-detect.yaml | SSE ट्रांसपोर्ट और JSON-RPC क्षमताओं के माध्यम से MCP सर्वर का पता लगाता है |
mcp-tool-enum.yaml | MCP सर्वर द्वारा एक्सपोज़ किए गए टूल (नाम, विवरण, इनपुट स्कीमा) की गणना करता है |
openai-compat-detect.yaml | /v1/models के माध्यम से OpenAI-संगत एंडपॉइंट का पता लगाता है |
langserve-detect.yaml | एक्सपोज़्ड प्लेग्राउंड के साथ LangServe तैनाती का पता लगाता है |
prompt-leak.yaml | सामान्य इंजेक्शन तकनीकों के माध्यम से सिस्टम प्रॉम्प्ट निष्कर्षण का प्रयास करता है |
| विधि | पथ | विवरण |
|---|
GET | /health | स्वास्थ्य जांच |
GET | /endpoints | एंडपॉइंट सूची (पृष्ठांकित, फ़िल्टर करने योग्य) |
POST | /endpoints/search | क्वेरी सिंटैक्स के साथ उन्नत खोज |
GET | /endpoints/globe | 3D ग्लोब के लिए भू-डेटा |
GET | /endpoints/stats | कुल आँकड़े |
GET | /endpoints/{id} | एंडपॉइंट विवरण |
POST | /endpoints/{id}/enrich | एक एंडपॉइंट के लिए एनरिचमेंट ट्रिगर करें |
POST | /endpoints/enrich-all | बैच एनरिचमेंट |
GET | /scans | स्कैन सूची |
POST | /scans | स्कैन बनाएँ |
POST | /scans/{id}/run | स्कैन निष्पादित करें |
GET | /scans/query-presets | उपलब्ध Shodan क्वेरी प्रीसेट |
WS | /scans/{id}/progress | लाइव स्कैन प्रगति |
POST | /attack | अटैक टेस्ट लॉन्च करें |
WS | /attack/{id}/stream | लाइव अटैक लॉग स्ट्रीम |
GET | /attack/{id}/status | अटैक स्थिति |