
InfraGuard is a Command & Control Redirection Proxy and Manager which protects your Red Team Infrastructure against threat attribution
रेड टीम बुनियादी ढांचा ट्रैकर और C2 रीडायरेक्टर -- RedWarden का एक आधुनिक विकल्प।
InfraGuard इंटरनेट और आपके C2 टीमसर्वर के बीच बैठकर, प्रत्येक आने वाले अनुरोध को आपके malleable C2 प्रोफाइल के विरुद्ध मान्य करता है और जो कुछ भी अनुरूप नहीं है उसे ब्लॉक करता है। स्कैनर, बॉट और ब्लू टीम प्रोब को एक डिकॉय साइट पर रीडायरेक्ट किया जाता है, जबकि वैध बीकन ट्रैफिक आपके टीमसर्वर तक पहुंचता है।


ssl_fingerprint, HAProxy native JA3) या कस्टम asyncio प्रोटोकॉल के माध्यम से काम करता है; वैकल्पिक allowlist मोड बीकन JA3 लागू करता है.htaccess और robots.txt फ़ाइलों से IP ब्लॉकलिस्ट और User-Agent पैटर्न आयात करेंmythic_file बैकएंड Mythic के /direct/download/{uuid} को साफ URL पर प्रॉक्सी करता है; फिक्स्ड UUID (URL aliasing) या प्रॉक्सी मोड (पथ से UUID); एक्सेस कंट्रोल पूरी तरह से InfraGuard के फ़िल्टर स्टैक द्वारा प्रदान किया गयाon_event हुक, प्रति-प्लगइन कॉन्फ़िग, इवेंट फ़िल्टरिंग (only_blocked, min_score, domain include/exclude) के साथ इवेंट-संचालित आर्किटेक्चर.env फ़ाइल स्वचालित रूप से लोड होती है; ${VAR} सिंटैक्स सभी कॉन्फ़िग मानों और कुंजियों में काम करता हैइंस्टॉलेशन के लिए विकी पेज देखें
infraguard --version Show version
infraguard --help Show help
infraguard run -c config.yaml Start the reverse proxy
infraguard run -c config.yaml --port 8443 Override listen port
infraguard run -c config.yaml --host 0.0.0.0 Override bind address
infraguard dashboard -c config.yaml Start the web dashboard
infraguard dashboard -c config.yaml --port 9090 Override dashboard port
infraguard tui Launch TUI with login screen
infraguard tui --url http://host:8080 --token TOK Auto-connect to dashboard
infraguard tui -c config.yaml Read URL/token from config
infraguard command-post -c command-post.yaml Start multi-instance dashboard
infraguard command-post --instance name:url:token Add instance via CLI (repeatable)
infraguard profile parse <file> Parse and display a C2 profile
infraguard profile parse <file> --format json Output as JSON
infraguard profile parse <file> --type brute_ratel Force profile type
infraguard profile convert <file> -o out.json Convert profile to JSON
# Supported --type values: auto, cobalt_strike, mythic, brute_ratel, sliver, havoc, nighthawk, poshc2
# Auto-detection: .profile = CS, .toml = Havoc, .yaml = PoshC2, .json = auto-detect by keys
infraguard ingest <files...> Ingest .htaccess/robots.txt rules
infraguard ingest <files...> --format blocklist Output as IP blocklist
infraguard ingest <files...> --format json Output as JSON
infraguard ingest <files...> -o banned_ips.txt Write blocklist to file
infraguard generate nginx -c config.yaml Generate Nginx config
infraguard generate caddy -c config.yaml Generate Caddyfile
infraguard generate apache -c config.yaml Generate Apache VirtualHost
infraguard init -o config.yaml Generate starter config
infraguard validate -c config.yaml Validate config file
generate कमांड ऑपरेटर अनुकूलन के लिए अतिरिक्त फ़्लैग स्वीकार करता है:
जब कई InfraGuard इंस्टेंस विभिन्न VPS या क्लाउड प्रदाताओं पर चल रहे हों, तो कमांड पोस्ट सभी नोड्स से आँकड़े, अनुरोध और लाइव इवेंट को एक ही डैशबोर्ड में एकत्रित करता है।
┌─────────────────────────────┐
│ Command Post Dashboard │
│ http://localhost:9090 │
└──────────┬──────────────────┘
│ parallel fetch
┌─────┼──────┬──────────┐
▼ ▼ ▼ ▼
IG-1 IG-2 IG-3 ... IG-N

# Via config file
infraguard command-post -c config/command-post.yaml
# Via CLI args
infraguard command-post \
--instance "prod:https://ig1.example.com:8080:TOKEN1" \
--instance "staging:https://ig2.example.com:8080:TOKEN2" \
--port 9090
# Via Docker
docker compose --profile command-post up -d command-post
config/command-post.yaml बनाएँ:
instances:
- name: "prod-cs"
url: "https://ig1.example.com:8080"
token: "${IG_PROD_TOKEN}"
- name: "prod-mythic"
url: "https://ig2.example.com:8080"
token: "${IG_MYTHIC_TOKEN}"
- name: "staging"
url: "https://ig3.example.com:8080"
token: "${IG_STAGING_TOKEN}"
port: 9090
# auth_token: "${COMMAND_POST_TOKEN}"
cp .env.example .env
# Edit .env with your domain, teamserver, and token
docker compose up -d
यह दो सेवाएँ प्रारंभ करता है:
# Set in .env:
# INFRAGUARD_LETSENCRYPT=true
# INFRAGUARD_DOMAIN=cdn.example.com
# [email protected]
# Obtain the initial certificate
docker compose --profile letsencrypt up certbot
# Start the proxy (will use the LE cert)
docker compose up -d proxy dashboard
# Start auto-renewal (checks every 12 hours)
docker compose --profile letsencrypt up -d certbot-renew
Let's Encrypt के लिए आवश्यकताएँ:
INFRAGUARD_DOMAIN इस होस्ट के सार्वजनिक IP पर हल होना चाहिएINFRAGUARD_DOMAIN_EMAIL एक मान्य ईमेल पता होना चाहिए# Download all three GeoLite2 databases (City, ASN, Country)
docker compose --profile geoip up geoip-update
# Then start normally - databases are mounted at /app/geoip/
docker compose up -d proxy dashboard
# Start PwnDrop alongside the proxy
docker compose --profile pwndrop up -d pwndrop
# Access PwnDrop admin UI at https://localhost:8443
# InfraGuard reaches it internally at http://pwndrop:80
फिर अपने कॉन्फ़िग में पेलोड पथों को PwnDrop पर प्रॉक्सी करने के लिए सामग्री मार्ग कॉन्फ़िगर करें:
domains:
cdn.example.com:
content_routes:
- path: "/downloads/*"
backend:
type: "pwndrop"
target: "http://pwndrop:80"
auth_token: "${PWNDROP_TOKEN}"
# Run multiple redirector nodes
docker compose up -d --scale proxy-node=3
सक्षम करने के लिए docker-compose.yml में proxy-node सेवा को अनकम्मेंट करें।
infraguard/
__init__.py पैकेज इनिट
__main__.py python -m infraguard एंट्री
main.py Click CLI
config/ YAML कॉन्फ़िग लोडिंग, .env समर्थन, Pydantic सत्यापन
core/ ASGI प्रॉक्सी इंजन (app, proxy, router, TLS, drop actions, content delivery)
profiles/ C2 प्रोफाइल पार्सर (Cobalt Strike, Mythic, Brute Ratel, Sliver, Havoc, Nighthawk, PoshC2)
pipeline/ अनुरोध सत्यापन फ़िल्टर (JA3, IP, bot, header, DNS, geo, profile, replay, enumeration, sandbox)
intel/ IP इंटेलिजेंस (blocklists, GeoIP, rDNS, feeds, rule ingestion)
tracking/ SQLite स्थायित्व (request logging, stats, node registry)
plugins/ प्लगइन सिस्टम (protocol, loader, builtins)
ui/
api/ REST API + WebSocket (Starlette)
web/ SPA डैशबोर्ड (HTML/JS/CSS)
tui/ टर्मिनल UI (Textual) लॉगिन स्क्रीन के साथ
command_post/ मल्टी-इंस्टेंस एग्रीगेशन डैशबोर्ड
listeners/ प्रोटोकॉल लिसनर (HTTP, DNS, MQTT, WebSocket)
backends/ कॉन्फ़िग जनरेटर (Nginx, Caddy, Apache)
models/ साझा प्रकार और इवेंट मॉडल
यदि आप परियोजना में योगदान देना चाहते हैं, तो कृपया संस्करण नाम के साथ एक नई शाखा बनाएं और पुल अनुरोध में वही संस्करण नाम निर्दिष्ट करें। जैसे, branch=v1.2.3 | [v1.2.3] Added blah item.
BSD 2-क्लॉज़ लाइसेंस। विवरण के लिए LICENSE देखें।
कॉपीराइट (c) 2026, Whispergate
| फ़्लैग | विवरण |
|---|
--listen-port PORT | लिसन पोर्ट ओवरराइड करें (डिफ़ॉल्ट: कॉन्फ़िग से) |
--ssl-cert PATH | SSL प्रमाणपत्र पथ ओवरराइड करें |
--ssl-key PATH | SSL कुंजी पथ ओवरराइड करें |
--redirect-url URL | ब्लॉक किए गए अनुरोधों के लिए रीडायरेक्ट URL ओवरराइड करें |
--default-action redirect|404 | गैर-मिलान अनुरोधों के लिए कार्रवाई |
--no-ip-filter | IP allow/deny ब्लॉक छोड़ें |
--no-header-check | हेडर सत्यापन नियम छोड़ें |
--alias DOMAIN:ALIAS | सर्वर नाम उपनाम जोड़ें (दोहराने योग्य) |
--header NAME:VALUE | कस्टम प्रतिक्रिया हेडर जोड़ें (दोहराने योग्य) |
| एंडपॉइंट | विधि | विवरण |
|---|
/api/instances | GET | सभी इंस्टेंस को स्वास्थ्य स्थिति के साथ सूचीबद्ध करें |
/api/stats | GET | सभी इंस्टेंस से मर्ज किए गए आँकड़े |
/api/requests | GET | सभी इंस्टेंस से इंटरलीव्ड अनुरोध लॉग |
/api/intel/whitelist | POST | सभी इंस्टेंस पर एक IP को व्हाइटलिस्ट करें |
/api/intel/blocklist | POST | सभी इंस्टेंस पर एक IP को ब्लॉक करें |
/api/intel/blocklist | DELETE | सभी इंस्टेंस पर एक IP को अनब्लॉक करें |
/ws/events | WS | सभी इंस्टेंस से मल्टीप्लेक्स्ड लाइव इवेंट |
| वॉल्यूम | उद्देश्य |
|---|
./config | कॉन्फ़िगरेशन फ़ाइलें (केवल-पढ़ने के लिए माउंटेड) |
./examples | C2 प्रोफाइल (केवल-पढ़ने के लिए माउंटेड) |
./rules | आयातित ब्लॉकलिस्ट और नियम स्रोत फ़ाइलें (केवल-पढ़ने के लिए माउंटेड) |
./data | SQLite डेटाबेस (स्थायी) |
certs | TLS प्रमाणपत्र (प्रॉक्सी और certbot के बीच साझा) |
geoip | GeoLite2 डेटाबेस (geoip-update सेवा द्वारा भरा गया) |
pwndrop-data | PwnDrop अपलोड की गई फ़ाइलें और डेटाबेस |
| सुविधा | RedWarden | InfraGuard |
|---|
| आर्किटेक्चर | एकल ~99KB फ़ाइल | मॉड्यूलर पैकेज |
| प्रोफाइल पार्सिंग | रेगेक्स स्टेट मशीन | स्ट्रक्चर्ड पार्सर पूर्ण block/transform समर्थन के साथ |
| C2 समर्थन | केवल Cobalt Strike | Cobalt Strike, Mythic, Brute Ratel C4, Sliver, Havoc, Nighthawk, PoshC2 |
| प्रोटोकॉल | केवल HTTP | HTTP, DNS, MQTT, WebSocket |
| फ़िल्टर मॉडल | बाइनरी pass/fail | स्कोरिंग-आधारित (0.0-1.0 थ्रेशोल्ड), 10-फ़िल्टर श्रृंखला |
| TLS फिंगरप्रिंटिंग | कोई नहीं | JA3 ब्लॉकिंग (Masscan, ZGrab2, Shodan, curl, Python requests, Nmap) |
| सैंडबॉक्स डिटेक्शन | कोई नहीं | हेडलेस ब्राउज़र / Safe Links / सैंडबॉक्स UA और हेडर स्कोरिंग |
| गणना डिटेक्शन | कोई नहीं | पथ गणना + DNS NXDOMAIN ट्रैकिंग ऑटो-ब्लॉक के साथ |
| बर्न डिटेक्शन | कोई नहीं | CT लॉग मॉनिटरिंग, डोमेन प्रतिष्ठा (URLhaus/OpenPhish/GSB), क्रॉस-डोमेन विश्लेषक डिटेक्शन |
| पेलोड डिलीवरी | कोई नहीं | PwnDrop, Mythic फ़ाइल स्टोर, फ़ाइल सिस्टम, HTTP प्रॉक्सी सशर्त डिलीवरी के साथ |
| पेलोड सुरक्षा | कोई नहीं | एक-बार टोकन, प्रति-मार्ग दर सीमित, डिलीवरी गार्ड (एनवायरनमेंट कीइंग) |
| फ़िशिंग सुरक्षा | कोई नहीं | अभियान टोकन सत्यापन (स्थिर सूची या HMAC-हस्ताक्षरित) |
| ऑपरेटर UI | कोई नहीं | वेब डैशबोर्ड + टर्मिनल UI + मल्टी-इंस्टेंस कमांड पोस्ट |
| कॉन्फ़िग जनरेशन | कोई नहीं | Nginx, Caddy, Apache पूर्ण अनुकूलन के साथ |
| नियम आयात | कोई नहीं | .htaccess + robots.txt पार्सर |
| थ्रेट इंटेल फीड | कोई नहीं | 5 सार्वजनिक स्रोतों से ऑटो-अपडेट |
| प्लगइन सिस्टम | बुनियादी 4-विधि इंटरफ़ेस | इवेंट-संचालित on_event हुक + प्रति-प्लगइन कॉन्फ़िग के साथ |
| SIEM एकीकरण | कोई नहीं | Elasticsearch, Wazuh, Syslog (CEF/JSON) |
| वेबहुक अलर्ट | कोई नहीं | Discord, Slack, जेनेरिक वेबहुक (बर्न अलर्ट उसी प्लगइन के माध्यम से रूट होते हैं) |
| व्हाइटलिस्ट इंटेलिजेंस | कोई नहीं | स्टार्टअप पर CIDR को ASN/org/country से ऑटो-एनरिच करें |
| एंटी-रीप्ले | SQLite हैश | स्थायी SQLite इन-मेमोरी L1 कैश के साथ, पुनरारंभ होने पर भी टिका रहता है |
| ड्रॉप कार्रवाइयाँ | redirect, reset, proxy | redirect, reset, proxy, tarpit |
| TLS प्रबंधन | केवल मैन्युअल | ऑटो सेल्फ-साइन्ड + Let's Encrypt एकीकरण |
| एज परिनियोजन | कोई नहीं | Cloudflare Worker + AWS Lambda एज प्रॉक्सी डोमेन फ्रंटिंग के साथ |
| परिनियोजन | मैन्युअल | हेल्थ चेक के साथ Docker Compose |
| लॉगिंग | कस्टम रंगीन आउटपुट | स्ट्रक्चर्ड JSON (structlog) |
| Async | Tornado कॉलबैक | नेटिव async/await (ASGI + uvicorn) |