Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
InfraGuard — InfraGuard est un proxy de redirection et gestionnaire Command & Control qui protège votre infrastructure Red Team contre l'attribution des menaces. | Kitploit
Outils/GitHubGitHub/whispergate/infraguard
Outils de PhishingGénération de PayloadsProxies Web et InterceptionÉvasion IDS/IPSSécurité RéseauCommandement et ContrôleRenseignement sur les MenacesRed TeamingRéponse aux IncidentsAnti-BotAnalyse DNS
1631045il y a 6 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
whispergate/infraguard

InfraGuard

InfraGuard est un proxy de redirection et gestionnaire Command & Control qui protège votre infrastructure Red Team contre l'attribution des menaces.

Voir le dépôtSite web
![InfraGuard Logo](https://raw.githubusercontent.com/whispergate/infraguard/HEAD/images/infraguard_logo.svg)

Traqueur d'infrastructure red team et redirecteur C2 -- une alternative moderne à [RedWarden](https://github.com/mgeeky/RedWarden).

InfraGuard se place entre Internet et votre teamserver C2, validant chaque requête entrante par rapport à votre profil C2 malléable et bloquant tout ce qui n'est pas conforme. Les scanners, bots et sondes blue team sont redirigés vers un site leurre tandis que le trafic beacon légitime passe vers votre teamserver.

![Mythic Callbacks Xenon](https://assets.kitploit.com/production/public/readmes/13111/138183b23f18b337f98125de6d7a1becdf8ac4d627f0f7511db4a9fb960c0da0.png)
![InfraGuard Dashboard](https://assets.kitploit.com/production/public/readmes/13111/3630e89649f317ab65d29811a9d6259f71c632607d076297e0c8f52a1a4af02a.png)

## Architecture

![Architecture Diagram](https://assets.kitploit.com/production/public/readmes/13111/647e44e4a50935ac1c3c0b10bef42ec8906b897938a005928fc01537f6a57837.png)

## Fonctionnalités

### Proxying et écouteurs

- **Proxy multi-domaine** -- proxy de plusieurs domaines simultanément, chacun avec des profils C2, upstreams et règles indépendants
- **Écouteurs multi-protocoles** -- écouteurs HTTP/HTTPS, HTTP/3 (QUIC), WebSocket, gRPC, DNS, MQTT et tunnel TCP fonctionnant simultanément avec intelligence IP partagée et suivi des événements
- **Disjoncteur** -- protection contre les défaillances par upstream avec états fermé/ouvert/semi-ouvert ; bascule vers l'action de drop du domaine lorsque les backends sont inaccessibles
- **Basculement de protocole** -- basculement et retour automatiques entre les protocoles d'écoute classés par priorité

### Prise en charge des profils C2

- **Validation des profils C2** -- analyse et application des profils Cobalt Strike, Mythic, Brute Ratel C4, Sliver, Havoc, Nighthawk et PoshC2 en tant que règles de redirecteur
- **Profils interchangeables à chaud** -- échange du profil C2 actif d'un domaine à l'exécution depuis le tableau de bord sans redémarrer le proxy
- **Assistant de génération de profils** -- génération de nouveaux profils C2 à partir de zéro pour les 8 types pris en charge via un formulaire guidé, ou import et téléversement de profils existants avec détection et validation automatiques du type
- **Génération de profils assistée par IA** -- intégration Ollama optionnelle fournissant un panneau de chat dans le tableau de bord pour l'aide à la création de profils et les conseils OPSEC

### Pipeline de filtrage

- **Pipeline de filtrage basé sur le score** -- 10 filtres contribuent chacun à un score de 0,0--1,0 ; un seuil configurable détermine le blocage/l'autorisation. Filtres : JA3, IP, bot, header, DNS, geo, profile, replay, enumeration, sandbox.
- **Filtrage par empreinte TLS JA3** -- blocage de Masscan, ZGrab2, Shodan, curl, Python requests et Nmap au niveau de la poignée de main TLS avant tout échange de données HTTP ; fonctionne via un header de reverse-proxy ou un protocole asyncio personnalisé ; mode allowlist optionnel imposant le JA3 du beacon
- **Détection de sandbox et de navigateur headless** -- accumulation de score sur les signaux HTTP : UA HeadlessChrome, Accept-Language manquant, Chrome sans sec-ch-ua, UA de scanners Safe Links et msnbot, ordre Accept non-navigateur
- **Détection d'énumération de chemins** -- suivi des URI uniques par IP dans une fenêtre glissante ; bloque dirbuster/ffuf/gobuster avant qu'ils ne cartographient l'espace URI
- **Détection d'énumération de sous-domaines DNS** -- suivi des réponses NXDOMAIN par IP client ; blocage automatique des IP sources en cas de dépassement du seuil
- **Anti-bot / anti-crawling** -- plus de 40 motifs de User-Agent de scanners/bots connus, détection d'anomalies de headers
- **Protection contre le rejeu** -- rejet des requêtes en double par hash de contenu ; hashes persistés dans SQLite pour que la protection survive aux redémarrages
- **Actions de drop** -- redirection, réinitialisation TCP, proxy vers un site leurre, ou tarpit (réponse au goutte-à-goutte pour faire perdre du temps aux scanners)

### Intelligence

- **Intelligence IP** -- listes de blocage CIDR intégrées pour 19 plages de fournisseurs de sécurité (Shodan, Censys, Rapid7, etc.), filtrage GeoIP, correspondance par mots-clés de DNS inverse
- **Flux de threat intel** -- mise à jour automatique des listes de blocage depuis des sources publiques (abuse.ch, Emerging Threats, Spamhaus DROP, Binary Defense) avec intervalle de rafraîchissement configurable et mise en cache sur disque
- **Blocage IP dynamique** -- blocage des IP hors des plages en liste blanche ; ajout automatique en liste blanche des IP après N requêtes C2 valides
- **Enrichissement de la liste blanche** -- les CIDR en liste blanche sont automatiquement enrichis avec les données ASN, organisation, pays et continent au démarrage via les bases de données GeoIP
- **Détection de burn** -- surveillance des journaux Certificate Transparency via crt.sh, auto-surveillance de la réputation du domaine via URLhaus/OpenPhish/Google Safe Browsing, et détection d'analyste cross-domaine lorsqu'une seule IP accède à plusieurs domaines opérateur
- **Score de confiance de burn** -- score continu de 0--100 à partir de 6 signaux pondérés : diversité JA3, pics de volume, nouveaux ASN, exposition aux journaux CT, atteintes à la réputation et tentatives d'authentification échouées. Inclut des actions recommandées : surveiller, faire tourner, ou burn immédiat.
- **Injection de canary token** -- pixels de suivi, liens honeypot et formulaires honeypot auto-injectés dans les pages leurres pour détecter l'investigation blue team
- **Surveillance DNS passive** -- interroge CIRCL PDNS pour la résolution externe de vos domaines ; détecte les nouveaux enregistrements, les pics de NXDOMAIN et la première exposition

### Livraison de payloads

- **Routes de livraison de contenu** -- servir des payloads, leurres et fichiers statiques à des chemins spécifiques via PwnDrop, le file store Mythic, le système de fichiers local ou des backends proxy HTTP ; livraison conditionnelle optionnelle pour servir du contenu réel aux cibles et des leurres aux scanners
- **Staging de fichiers Mythic** -- le backend `mythic_file` proxifie `/direct/download/{uuid}` de Mythic sur des URL propres ; UUID fixe ou mode proxy ; contrôle d'accès fourni par la pile de filtres d'InfraGuard
- **Tokens de payload à usage unique** -- tokens émis automatiquement lorsqu'un beacon est ajouté dynamiquement à la liste blanche ; application atomique à usage unique via SQLite empêchant le rejeu d'URL par des analystes ou des sandboxes ; TTL et nombre d'utilisations max configurables
- **Limitation de débit par route** -- limiteur de débit de téléchargement par IP à fenêtre glissante sur les routes de contenu ; le dépassement de la limite sert le leurre de scanner configuré ou un 429
- **Gardes de livraison** -- conditionnement par environnement pour les routes de contenu : exiger l'IP du beacon, une allowlist d'UA, des valeurs de headers requises, des headers interdits ; les vérifications échouées servent l'action de drop du domaine, pas un 403 brut
- **Tokens de campagne de phishing** -- protection des pages de phishing derrière des tokens par campagne intégrés dans les liens des e-mails ; liste de tokens statiques ou tokens auto-validants signés HMAC avec TTL configurable

### Résilience

- **Rotation d'infrastructure** -- rotation blue-green Terraform en un clic sur 5 fournisseurs cloud avec vérifications préalables, rollback et état chiffré par age
- **Planification de rotation** -- politiques de rotation automatisées : intervalle fixe, déclenchement par burn, seuil de nombre de requêtes et roulement échelonné
- **Watchdog d'auto-rotation** -- interroge le score de burn et l'expiration des certificats à intervalle régulier ; effectue une rotation automatique lorsque le seuil de burn est atteint ou qu'un certificat a moins de N jours restants, ou bascule en mode alerte seule avec un plafond de coût
- **Disjoncteurs** -- suivi des défaillances par upstream avec états HEALTHY / PROBING / TRIPPED et délai de récupération configurable, affiché en direct dans le widget Upstreams du tableau de bord
- **Domain fronting** -- routage C2 basé sur CDN via séparation SNI/header Host avec suppression des headers CDN et protection SSRF
- **Dead man's switch** -- TTL de heartbeat opérateur qui arrête automatiquement le transfert C2 si l'opérateur ne se manifeste pas
- **Miroir purple-team** -- duplication fire-and-forget des événements autorisés vers un collecteur blue team pour le scoring d'engagement
- **Backend d'état partagé (Redis)** -- cache de rejeu inter-nœuds optionnel, liste blanche dynamique, sac de session beacon et limite de débit de drop pour que les réplicas à mise à l'échelle horizontale voient le même état
- **Proxies en périphérie** -- Cloudflare Worker et AWS Lambda pour le domain fronting via l'infrastructure CDN, le blocage de pays en périphérie et la réécriture d'hôte

### Tableau de bord et outils opérateur

- **Tableau de bord web** -- SPA en temps réel avec page de connexion, flux de requêtes en direct, statistiques par domaine, IP les plus bloquées, streaming d'événements WebSocket et actions inline de blocage/ajout en liste blanche/déblocage
- **Gestion des pages leurres** -- lister, prévisualiser et éditer les pages HTML leurres directement depuis le tableau de bord ; **Canary Overview** par domaine (bascule pixel / lien caché / formulaire caché) et un panneau **Canary Hits** qui fait remonter chaque scanner ou sandbox ayant récupéré une ressource leurre
- **Tokens leurres avec endpoints de callback dédiés** -- pixel de suivi injecté, lien caché et formulaire caché déclenchent chacun un événement `canary_hit` sur `/_ig/px|hp|hf?c=<token>` ; les hits arrivent dans la base de données de suivi avec `filter_result=canary_hit` et sont diffusés en direct vers la page Decoys et tout plugin d'alerte abonné
- **Onglet Plugins** -- liste les plugins chargés avec des bascules `enable / disable` à l'exécution (sans redémarrage) et un **Plugin Marketplace** pour ajouter n'importe lequel des 29 plugins intégrés en un clic ; chaque mutation persiste dans `config.yaml` et aboutit à un commit dans le dépôt d'historique de configuration
- **Command Post** -- tableau de bord d'agrégation multi-instances qui fusionne les statistiques, requêtes et événements en direct de plusieurs nœuds InfraGuard en une vue unique, avec une **Fleet Map** (MapLibre) qui positionne chaque proxy ainsi que chaque IP source bloquée à sa latitude/longitude géolocalisée et une bascule de plugin fan-out pour les opérations inter-instances
- **Interface terminal** -- TUI basée sur Textual avec écran de connexion, polling API en direct, journal de requêtes coloré
- **Rapports d'engagement** -- rapports HTML, JSON ou CSV autonomes avec répartitions par domaine, efficacité des filtres et piste d'audit opérateur
- **Métriques Prometheus** -- endpoint `/metrics` exposant les compteurs de requêtes, histogrammes de latence des upstreams, état des disjoncteurs, fraîcheur des flux, connexions actives et la jauge `infraguard_active_beacons` sur laquelle l'HPA Helm effectue son scaling
- **OpenTelemetry** -- exportateur de traces + métriques OTLP en opt-in ; le profil compose d'observabilité déploie un collecteur OTEL plus Prometheus + un tableau de bord de vue d'ensemble Grafana auto-provisionné
- **Chart Helm Kubernetes** -- proxy, tableau de bord, StatefulSet Redis, ServiceMonitor et HPA sur la jauge active-beacon ; livré sous `deploy/helm/infraguard/`

### Intégrations et plugins

- **Intégration SIEM** -- plugins intégrés pour Elasticsearch, Wazuh et Syslog (CEF/JSON) avec transfert par lots
- **Alertes webhook** -- plugins intégrés pour Discord (embeds), Slack (Block Kit), webhook générique, **PagerDuty** (Events API v2, déduplication par clé) et **Telegram** (chat ops bidirectionnel : `/status`, `/sessions`, `/kill`, `/ack` depuis un téléphone)
- **Plugins de détection** -- règles YARA sur les corps de requêtes, lookup GreyNoise Community, classifieur ML de bots (régression logistique sur JA4 + UA + timing), canary de réponse (canarytokens.org), empreinte p0f v3, enrichissement JA4/JA4H, enrichissement GeoIP
- **Manipulateurs de réponse** -- réécriture HTML, watermark de payload, suppression de signatures, challenge JS, mimétisme de cache, tarpit lent, shadow-block (retourner 200 aux scanners pour qu'ils ne s'adaptent jamais)
- **Intégration Phishing.club** -- récepteur webhook signé HMAC qui ingère les événements de phishing et ajoute automatiquement en liste blanche les IP des cibles ayant cliqué
- **Système de plugins** -- architecture événementielle avec hooks `on_event`, configuration par plugin et filtrage d'événements ; chaque plugin peut être basculé ou chargé depuis l'onglet **Plugins** du tableau de bord sans redémarrage, et le changement persiste dans `config.yaml` avec un commit d'audit dans l'historique de configuration

### Configuration et déploiement

- **Chiffrement de configuration** -- chiffrement age (fichier complet) et SOPS (par valeur) avec prise en charge des fichiers `.env`
- **Validation de configuration** -- outil de diff CLI et plus de 20 vérifications de validation de sécurité, opérationnelles et TLS
- **Gestion des clés API** -- création, révocation et rotation des clés API avec limites de débit par clé, suivi d'utilisation et quotas
- **Génération de configuration backend** -- génération de configurations Nginx, Caddy ou Apache avec TLS, filtrage IP, vérifications de headers, alias et headers personnalisés
- **Ingestion de règles** -- import de listes de blocage IP et de motifs User-Agent depuis des fichiers `.htaccess` et `robots.txt` existants
- **Déploiement Docker** -- Dockerfile + docker-compose avec Let's Encrypt optionnel, téléchargeur GeoIP, serveur de payload PwnDrop et assistant IA Ollama
- **Prise en charge GeoIP** -- les trois bases de données GeoLite2 (City, ASN, Country) avec téléchargement automatique via Docker
- **Repli TLS auto-signé** -- génère automatiquement des certificats lorsque les chemins configurés n'existent pas
- **Prise en charge des variables d'environnement** -- fichier `.env` auto-chargé ; la syntaxe `${VAR}` fonctionne dans toutes les valeurs et clés de configuration
- **Endpoint de santé configurable** -- modification du chemin de health check pour éviter le fingerprinting
- **Journalisation structurée** -- journaux structurés au format JSON via structlog
- **Suivi et persistance** -- SQLite en mode WAL pour la journalisation des requêtes, les statistiques, le registre de nœuds, les hashes de rejeu et les tokens de payload

## Guide d'installation

Consultez la [page Wiki](https://infraguard.whispergate.org/docs/getting-started/installation/) pour l'installation

## Référence CLI```
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

infraguard simulate-beacon -c config.yaml --domain <d> Run one synthetic beacon
                                                     through the loaded filter
                                                     pipeline in-process
infraguard drop-preview -c config.yaml --domain <d>   Render the drop-action
                                                     response without any live
                                                     traffic (decoy / redirect
                                                     / tarpit preview)
infraguard events tail -c config.yaml                 Tail the tracking DB as a
                                                     structured event stream
infraguard profile transpile <in> --to <c2>           Convert a C2 profile
                                                     between formats using the
                                                     shared profile IR
infraguard preflight -c config.yaml                   Adversary-emulation
                                                     self-test: DNS, cert,
                                                     upstream, decoy dir,
                                                     writes a Markdown report

infraguard config set <domains.<d>.upstream> <value>  Mutate config from CLI;
                                                     writes .bak, atomic file
                                                     replace, and commit to the
                                                     config-history git repo
infraguard config log                                 Show mutation history
infraguard config revert HEAD~N                       Roll back N mutations
```
### Options du générateur

La commande `generate` accepte des flags supplémentaires pour la personnalisation de l'opérateur :

| Flag | Description |
|---|---|
| `--listen-port PORT` | Remplacer le port d'écoute (par défaut : depuis la config) |
| `--ssl-cert PATH` | Remplacer le chemin du certificat SSL |
| `--ssl-key PATH` | Remplacer le chemin de la clé SSL |
| `--redirect-url URL` | Remplacer l'URL de redirection pour les requêtes bloquées |
| `--default-action redirect\|404` | Action pour les requêtes non correspondantes |
| `--no-ip-filter` | Omettre les blocs d'autorisation/refus d'IP |
| `--no-header-check` | Omettre les règles de validation d'en-tête |
| `--alias DOMAIN:ALIAS` | Ajouter un alias de nom de serveur (répétable) |
| `--header NAME:VALUE` | Ajouter un en-tête de réponse personnalisé (répétable) |

## Command Post (Tableau de bord multi-instances)

Lors de l'exécution de plusieurs instances d'InfraGuard sur différents VPS ou fournisseurs cloud, le Command Post agrège les statistiques, les requêtes et les événements en direct de tous les nœuds dans un seul tableau de bord.```
┌─────────────────────────────┐
│    Command Post Dashboard   │
│    http://localhost:9090    │
└──────────┬──────────────────┘
           │ parallel fetch
     ┌─────┼──────┬──────────┐
     ▼     ▼      ▼          ▼
   IG-1   IG-2   IG-3   ... IG-N
```
![InfraGuard Command Post](https://assets.kitploit.com/production/public/readmes/13111/97b0b192f3c200dc9f6a38cbaa39926100c4214f689c19c496d6cc2da54a44d7.png)

### Démarrage rapide```bash
# 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
```
### Configuration

Créez `config/command-post.yaml` :```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}"
```
### Ce qu'il affiche

- **Statistiques fusionnées** -- total des requêtes, autorisées, bloquées, cumulées sur toutes les instances
- **Barre d'état des instances** -- statut vert/rouge pour chaque nœud connecté
- **Journal des requêtes entrelacées** -- requêtes de toutes les instances triées par horodatage, chacune étiquetée avec le nom de son instance
- **Top des IP bloquées fusionné** -- agrégé sur toutes les instances
- **Statistiques par domaine** -- domaines de toutes les instances avec taux de blocage recalculés
- **Flux d'événements en direct** -- événements WebSocket multiplexés de tous les nœuds
- **Actions de blocage/liste blanche** -- diffusion vers toutes les instances ou une instance spécifique

### Points de terminaison de l'API

| Point de terminaison | Méthode | Description |
|---|---|---|
| `/api/instances` | GET | Lister toutes les instances avec leur état de santé |
| `/api/stats` | GET | Statistiques fusionnées de toutes les instances |
| `/api/requests` | GET | Journal des requêtes entrelacées de toutes les instances |
| `/api/intel/whitelist` | POST | Ajouter une IP à la liste blanche sur toutes les instances |
| `/api/intel/blocklist` | POST | Bloquer une IP sur toutes les instances |
| `/api/intel/blocklist` | DELETE | Débloquer une IP sur toutes les instances |
| `/ws/events` | WS | Événements en direct multiplexés de toutes les instances |

## Déploiement Docker

### Démarrage rapide```bash
cp .env.example .env
# Edit .env with your domain, teamserver, and token
docker compose up -d
```
Cela démarre deux services :
- **proxy** -- le redirecteur sur les ports 443 et 80
- **dashboard** -- l'interface web sur le port 8080

### Avec Let's Encrypt```bash
# 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
```
Exigences pour Let's Encrypt :
- Le port 80 doit être accessible depuis Internet
- `INFRAGUARD_DOMAIN` doit résoudre vers l'IP publique de cet hôte
- `INFRAGUARD_DOMAIN_EMAIL` doit être une adresse e-mail valide

### Avec les bases de données GeoIP```bash
# 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
```
### Avec PwnDrop (livraison de payload)```bash
# 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
```
Configurez ensuite les routes de contenu dans votre configuration pour proxyfier les chemins de payload vers PwnDrop :```yaml
domains:
  cdn.example.com:
    content_routes:
      - path: "/downloads/*"
        backend:
          type: "pwndrop"
          target: "http://pwndrop:80"
          auth_token: "${PWNDROP_TOKEN}"
```
### Avec Ollama (génération de profil assistée par IA)```bash
# Start the Ollama service
docker compose --profile ollama up -d ollama

# Pull the default model (~5 GB)
docker compose --profile ollama exec ollama ollama pull qwen3:8b

# The dashboard's AI chat panel will connect automatically
```
La variable d'environnement du tableau de bord `INFRAGUARD_OLLAMA_URL` est préconfigurée dans docker-compose.yml. Lorsqu'Ollama est en cours d'exécution, le bouton bascule de l'Assistant IA apparaît dans la page des leurres et des profils du tableau de bord.

### Mise à l'échelle```bash
# Run multiple redirector nodes
docker compose up -d --scale proxy-node=3
```
Décommentez le service `proxy-node` dans `docker-compose.yml` pour l'activer.

### Volumes

| Volume | Objectif |
|---|---|
| `./config` | Fichiers de configuration (montés en lecture seule) |
| `./examples` | Profils C2 (montés en lecture seule) |
| `./rules` | Listes de blocage ingérées et fichiers sources de règles (montés en lecture seule) |
| `./data` | Base de données SQLite et profils générés (persistés) |
| `certs` | Certificats TLS (partagés entre le proxy et certbot) |
| `geoip` | Bases de données GeoLite2 (peuplées par le service `geoip-update`) |
| `pwndrop-data` | Fichiers téléversés et base de données de PwnDrop |
| `ollama-data` | Poids et configuration des modèles Ollama |

> Sur les hôtes Linux, exécutez `chown -R 1000:1000 config/` si vous souhaitez que les mutations pilotées par le tableau de bord
> (drop-action, échange de profil, activation de plugin) soient persistées dans `config.yaml`. L'uid non-root du
> conteneur a besoin de la permission d'écriture sur le montage.

## Déploiement Kubernetes

Le chart Helm situé sous `deploy/helm/infraguard/` déploie le proxy, le tableau de bord, le StatefulSet Redis,
et un HPA qui met à l'échelle le proxy sur la métrique personnalisée `infraguard_active_beacons`
(nécessite `prometheus-adapter` dans le cluster). Consultez la page
[Déploiement Kubernetes](https://infraguard.whispergate.org/docs/deployment/kubernetes/) du wiki
pour le guide complet.```bash
# One-shot install
helm install infraguard deploy/helm/infraguard \
    --namespace infraguard --create-namespace \
    -f my-values.yaml

# Get the API token the chart minted
kubectl get secret -n infraguard infraguard-secrets \
    -o jsonpath='{.data.INFRAGUARD_API_TOKEN}' | base64 -d
```
Les sondes du chart interrogent `/health` sur le listener HTTPS avec `scheme: HTTPS`, donc le conteneur a besoin d'un bloc `tls:` dans la config (le fallback auto-signé convient).

## Contributions

- Mgeeky - Idée originale ([RedWarden](https://github.com/mgeeky/RedWarden))
- curi0usJack - [règles .htaccess](https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10)
- Profils
  - threatexpress - [jquery-c2.3.14.profile](https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.3.14.profile)
  - InfinityCurve - [Profil Havoc](https://github.com/whispergate/infraguard/blob/main/examples/kaine.toml)
- Frameworks C2
  - [Cobalt Strike](https://www.cobaltstrike.com/) - Prise en charge des profils Malleable C2
  - [Mythic](https://github.com/its-a-feature/Mythic) - Prise en charge des profils HTTPX + staging de fichiers
  - [Brute Ratel C4](https://bruteratel.com/) - Prise en charge des profils de configuration serveur
  - [Sliver](https://github.com/BishopFox/sliver) - Prise en charge des profils HTTP C2
  - [Havoc](https://www.infinitycurve.org/) - Prise en charge des profils TOML
  - [Nighthawk](https://nighthawkc2.io/) - Prise en charge des configurations de listener JSON
  - [PoshC2](https://github.com/nettitude/PoshC2) - Prise en charge des configurations YAML

Si vous souhaitez contribuer au projet, veuillez créer une nouvelle branche avec le nom de version et spécifier le même nom de version dans la pull request. Ex. : branch=v1.2.3 | [v1.2.3] Ajout de l'élément blah.

## Licence

Licence BSD 2-Clause. Voir [LICENSE](https://github.com/whispergate/infraguard/blob/main/LICENSE) pour plus de détails.

Copyright (c) 2026, Whispergate
Télécharger l’outil