
पेंटेस्टिंग और बग बाउंटी के लिए स्वचालित रिकॉन
Reconator एक स्वचालित टोही ढाँचा (reconnaissance framework) है। एक लक्ष्य जोड़ें — अकेला या एक साथ कई — और वर्कर उसके विरुद्ध ~17 recon मॉड्यूल चलाता है (सबडोमेन एनुम, डिरब्रूट, JS/लिंक माइनिंग, WAF फ़िंगरप्रिंट, टेकओवर जाँच, GF ट्राइएज, और भी बहुत कुछ)। डैशबोर्ड प्रति-मॉड्यूल आउटपुट दिखाता है जैसे ही वह आता है।
| परत | टेक |
|---|---|
| API | FastAPI · SQLAlchemy 2 · Alembic · Pydantic v2 |
| Worker | Python subprocess runner with timeouts + cancellation |
| DB | PostgreSQL 16 |
| Web | React 18 · TypeScript · Tailwind · shadcn/ui · light/dark theme |
| Auth | API key (X-API-Key) on writes; open in dev |
| Notify | Telegram + generic / Slack / Discord webhook |
| Observe | JSON logs · request IDs · Prometheus /metrics · optional Sentry |
| Deploy | Docker Compose · Heroku container stack |
git clone https://github.com/gokulapap/Reconator
cd Reconator
cp .env.example .env # optional: add Telegram / webhook keys / API key
docker compose up --build
| सेवा | URL |
|---|---|
| Web UI | http://localhost:3000 |
| API docs | http://localhost:8000/docs |
| Metrics | http://localhost:8000/api/v1/metrics |
या CLI के माध्यम से (heroku.yml कंटेनर स्टैक का उपयोग करता है — एकल इमेज UI + API प्रस्तुत करती है, वर्कर डायनो कतार चलाता है):
heroku create my-reconator --stack=container
heroku addons:create heroku-postgresql:essential-0
heroku config:set ADMIN_API_KEY=$(openssl rand -hex 32) # recommended
heroku config:set TELEGRAM_API_KEY=... TELEGRAM_CHAT_ID=... # optional
git push heroku master
heroku ps:scale web=1 worker=1
# api
cd backend && pip install -r requirements.txt
uvicorn app.main:app --reload
# worker (separate shell)
python -m app.worker
# web (separate shell)
cd frontend && npm install && npm run dev # proxies /api → :8000
# tests + lint
cd backend && pytest && ruff check .
ADMIN_API_KEY सेट करें, सभी उत्परिवर्तनों के लिए X-API-Key आवश्यकOpenAPI /docs पर।
cron.py पोलिंग लूप → पंक्ति-लॉकिंग, शांत शटडाउन, रद्दीकरण वाला वर्करheroku.yml के माध्यम से कंटेनर स्टैककेवल अधिकृत परीक्षण के लिए। उन सिस्टम पर उपयोग करें जिनके आप स्वामी हैं या जिनका आकलन करने की आपकी अनुमति है। GPL-3.0 के तहत जारी किया गया।
| विधि | पथ | प्रमाणीकरण | उद्देश्य |
|---|
| GET | /api/v1/targets | — | सूची + फ़िल्टर (स्थिति, खोज, टैग) |
| POST | /api/v1/targets | ✓ | एक डोमेन कतार में डालें |
| POST | /api/v1/targets/bulk | ✓ | एक साथ कई डालें |
| GET | /api/v1/targets/stats | — | गणना + औसत अवधि |
| GET | /api/v1/targets/export?format=csv|json | — | बल्क निर्यात |
| GET | /api/v1/targets/{id} | — | विवरण + मॉड्यूल सारांश |
| DELETE | /api/v1/targets/{id} | ✓ | हटाएँ (या चल रहा हो तो रद्द करें) |
| POST | /api/v1/targets/{id}/cancel | ✓ | कतारबद्ध / चल रहे को रद्द करें |
| POST | /api/v1/targets/{id}/rescan | ✓ | समान टैग / मॉड्यूल के साथ पुनः कतारबद्ध करें |
| GET | /api/v1/targets/{id}/results | — | सभी मॉड्यूल आउटपुट |
| GET | /api/v1/targets/{id}/results/{module} | — | एक मॉड्यूल का आउटपुट |
| GET | /api/v1/targets/{id}/results/{module}/download | — | .txt डाउनलोड |
| GET | /api/v1/modules | — | उपलब्ध मॉड्यूल |
| GET | /api/v1/system/info | — | संस्करण + प्रमाणीकरण + सूचनाकर्ता स्थिति |
| POST | /api/v1/system/test-notify | ✓ | परीक्षण सूचना भेजें |
| GET | /api/v1/health · /ready · /metrics | — | जाँच + Prometheus |
| एन्व वेरिएबल | डिफ़ॉल्ट | टिप्पणियाँ |
|---|
DATABASE_URL | रचित | postgresql://… (Heroku-शैली ठीक) |
ADMIN_API_KEY | अनसेट | सेट होने पर, उत्परिवर्तनों के लिए X-API-Key आवश्यक |
RATE_LIMIT_WRITES | 20/minute | slowapi अभिव्यक्ति |
RATE_LIMIT_BULK | 5/minute | |
TELEGRAM_API_KEY / _CHAT_ID | अनसेट | खाली होने पर Telegram अक्षम |
WEBHOOK_URL / WEBHOOK_KIND | अनसेट / generic | generic | slack | discord |
SENTRY_DSN | अनसेट | सेट होने पर Sentry सक्षम |
WORKER_POLL_INTERVAL_SECONDS | 30 | |
MODULE_TIMEOUT_SECONDS | 1800 | प्रति-मॉड्यूल कठोर समय समाप्ति |
CORS_ORIGINS | * | अल्पविराम से अलग |