
InfraGuard è un proxy e gestore di reindirizzamento Command & Control che protegge la tua infrastruttura Red Team dall'attribuzione delle minacce.

Tracker di infrastruttura red team e redirector C2 -- un'alternativa moderna a [RedWarden](https://github.com/mgeeky/RedWarden).
InfraGuard si colloca tra Internet e il tuo teamserver C2, convalidando ogni richiesta in entrata rispetto al tuo profilo C2 malleabile e bloccando tutto ciò che non è conforme. Scanner, bot e sonde del blue team vengono reindirizzati a un sito esca, mentre il traffico beacon legittimo passa attraverso il tuo teamserver.


## Architettura

## Funzionalità
### Proxying e Listener
- **Proxying multi-dominio** -- proxy di più domini contemporaneamente, ciascuno con profili C2, upstream e regole indipendenti
- **Listener multi-protocollo** -- listener HTTP/HTTPS, HTTP/3 (QUIC), WebSocket, gRPC, DNS, MQTT e TCP-tunnel in esecuzione simultanea con intelligence IP condivisa e tracciamento degli eventi
- **Circuit breaker** -- protezione dagli errori per-upstream con stati closed/open/half-open; ricade sull'azione di drop del dominio quando i backend sono irraggiungibili
- **Failover di protocollo** -- failover e failback automatici tra i protocolli dei listener ordinati per priorità
### Supporto ai profili C2
- **Validazione dei profili C2** -- analizza e applica i profili Cobalt Strike, Mythic, Brute Ratel C4, Sliver, Havoc, Nighthawk e PoshC2 come regole del redirector
- **Profili hot-swappable** -- scambia il profilo C2 attivo di un dominio a runtime dalla dashboard senza riavviare il proxy
- **Procedura guidata di generazione dei profili** -- genera nuovi profili C2 da zero per tutti gli 8 tipi supportati tramite un modulo guidato, oppure importa e carica profili esistenti con rilevamento automatico del tipo e validazione
- **Generazione di profili assistita dall'AI** -- l'integrazione opzionale con Ollama fornisce un pannello di chat nella dashboard per assistenza nella creazione dei profili e consigli OPSEC
### Pipeline di filtraggio
- **Pipeline di filtraggio basata su punteggio** -- 10 filtri contribuiscono ciascuno con un punteggio da 0.0 a 1.0; una soglia configurabile determina blocco/consenso. Filtri: JA3, IP, bot, header, DNS, geo, profilo, replay, enumerazione, sandbox.
- **Filtraggio delle impronte TLS JA3** -- blocca Masscan, ZGrab2, Shodan, curl, Python requests e Nmap a livello di handshake TLS prima che venga scambiato qualsiasi dato HTTP; funziona tramite header del reverse-proxy o protocollo asyncio personalizzato; la modalità allowlist opzionale impone il JA3 del beacon
- **Rilevamento di sandbox e browser headless** -- accumulo di punteggio su segnali HTTP: UA HeadlessChrome, Accept-Language mancante, Chrome senza sec-ch-ua, UA di scanner Safe Links e msnbot, ordinamento Accept non-browser
- **Rilevamento di enumerazione dei percorsi** -- tracciamento degli URI univoci per-IP in una finestra scorrevole; blocca dirbuster/ffuf/gobuster prima che mappino lo spazio degli URI
- **Rilevamento di enumerazione di sottodomini DNS** -- traccia le risposte NXDOMAIN per IP client; blocca automaticamente gli IP di origine al superamento della soglia
- **Anti-bot / anti-crawling** -- oltre 40 pattern noti di User-Agent di scanner/bot, rilevamento di anomalie negli header
- **Protezione dal replay** -- rifiuta le richieste duplicate tramite hash del contenuto; gli hash sono persistiti su SQLite così la protezione sopravvive ai riavvii
- **Azioni di drop** -- redirect, reset TCP, proxy verso sito esca o tarpit (risposta slow-drip per far perdere tempo allo scanner)
### Intelligence
- **Intelligence IP** -- blocklist CIDR integrate per 19 range di vendor di sicurezza (Shodan, Censys, Rapid7, ecc.), filtraggio GeoIP, corrispondenza di parole chiave su reverse DNS
- **Feed di threat intel** -- aggiornamento automatico delle blocklist da fonti pubbliche (abuse.ch, Emerging Threats, Spamhaus DROP, Binary Defense) con intervallo di aggiornamento configurabile e caching su disco
- **Blocco dinamico degli IP** -- blocca gli IP al di fuori dei range in whitelist; auto-whitelist degli IP dopo N richieste C2 valide
- **Arricchimento della whitelist** -- i CIDR in whitelist vengono arricchiti automaticamente con dati ASN, organizzazione, paese e continente all'avvio tramite database GeoIP
- **Rilevamento di burn** -- monitoraggio dei log di Certificate Transparency tramite crt.sh, auto-monitoraggio della reputazione del dominio tramite URLhaus/OpenPhish/Google Safe Browsing e rilevamento di analisti cross-dominio quando un singolo IP accede a più domini dell'operatore
- **Punteggio di confidenza del burn** -- punteggio continuo da 0 a 100 basato su 6 segnali ponderati: diversità JA3, picchi di volume, nuovi ASN, esposizione nei log CT, hit di reputazione e tentativi di autenticazione falliti. Include azioni raccomandate: monitorare, ruotare o burn immediato.
- **Iniezione di canary token** -- pixel di tracciamento, link honeypot e form honeypot iniettati automaticamente nelle pagine esca per rilevare l'indagine del blue team
- **Monitoraggio DNS passivo** -- interroga CIRCL PDNS per la risoluzione esterna dei tuoi domini; rileva nuovi record, picchi di NXDOMAIN e prima esposizione
### Distribuzione dei payload
- **Route di distribuzione dei contenuti** -- servi payload, esche e file statici a percorsi specifici tramite PwnDrop, file store di Mythic, filesystem locale o backend proxy HTTP; distribuzione condizionale opzionale per servire contenuti reali ai target ed esche agli scanner
- **Staging dei file Mythic** -- il backend `mythic_file` fa da proxy a `/direct/download/{uuid}` di Mythic su URL puliti; UUID fisso o modalità proxy; controllo degli accessi fornito dallo stack di filtri di InfraGuard
- **Token payload monouso** -- token emessi automaticamente quando un beacon viene inserito dinamicamente in whitelist; applicazione atomica monouso su SQLite impedisce il replay degli URL da parte di analisti o sandbox; TTL e numero massimo di utilizzi configurabili
- **Rate limiting per-route** -- limitatore di velocità di download per-IP a finestra scorrevole sulle route dei contenuti; superato il limite viene servita l'esca scanner configurata o un 429
- **Guardie di distribuzione** -- keying dell'ambiente per le route dei contenuti: richiedi IP del beacon, allowlist UA, valori di header richiesti, header vietati; i controlli falliti servono l'azione di drop del dominio, non un 403 grezzo
- **Token di campagna di phishing** -- proteggi le pagine di phishing dietro token per-campagna incorporati nei link email; lista statica di token o token auto-validanti firmati HMAC con TTL configurabile
### Resilienza
- **Rotazione dell'infrastruttura** -- rotazione blue-green con un clic tramite Terraform su 5 provider cloud con controlli pre-flight, rollback e stato cifrato con age
- **Pianificazione della rotazione** -- policy di rotazione automatizzate: intervallo fisso, attivata da burn, soglia di conteggio richieste e rolling scaglionato
- **Watchdog di auto-rotazione** -- interroga a intervalli il punteggio di burn e la scadenza dei certificati; ruota automaticamente quando viene superata la soglia di burn o un certificato ha meno di N giorni rimanenti, oppure ricade in modalità solo-allerta con un limite di costo
- **Circuit breaker** -- tracciamento degli errori per-upstream con stati HEALTHY / PROBING / TRIPPED e timeout di recupero configurabile, mostrati in tempo reale nel widget Upstreams della dashboard
- **Domain fronting** -- routing C2 basato su CDN tramite split dell'header SNI/Host con stripping degli header CDN e protezione SSRF
- **Dead man's switch** -- TTL dell'heartbeat dell'operatore che arresta automaticamente l'inoltro C2 se l'operatore non effettua il check-in
- **Mirror purple-team** -- duplicato fire-and-forget degli eventi consentiti verso un collector blue-team per il punteggio dell'engagement
- **Backend di stato condiviso (Redis)** -- cache di replay cross-node opzionale, whitelist dinamica, beacon session bag e rate-limit di drop così le repliche scalate orizzontalmente vedono lo stesso stato
- **Edge proxy** -- Cloudflare Worker e AWS Lambda per il domain fronting attraverso l'infrastruttura CDN, blocco geografico edge e riscrittura dell'host
### Dashboard e strumenti per l'operatore
- **Dashboard web** -- SPA in tempo reale con pagina di login, feed delle richieste live, statistiche per dominio, IP bloccati principali, streaming di eventi via WebSocket e azioni inline di blocco/whitelist/sblocco
- **Gestione delle pagine esca** -- elenca, visualizza in anteprima e modifica le pagine HTML esca direttamente dalla dashboard; **Canary Overview** per-dominio (toggle pixel / link nascosto / form nascosto) e un pannello **Canary Hits** che mostra ogni scanner o sandbox che ha scaricato una risorsa esca
- **Token esca con endpoint di callback dedicati** -- pixel di tracciamento iniettato, link nascosto e form nascosto generano ciascuno un evento `canary_hit` su `/_ig/px|hp|hf?c=<token>`; gli hit finiscono nel DB di tracciamento con `filter_result=canary_hit` e vengono trasmessi in tempo reale alla pagina Decoys e a qualsiasi plugin di alerting sottoscritto
- **Scheda Plugins** -- elenca i plugin caricati con toggle runtime `enable / disable` (senza riavvio) e un **Plugin Marketplace** per aggiungere con un clic uno dei 29 plugin integrati; ogni modifica persiste su `config.yaml` e finisce come commit nel repo di config-history
- **Command Post** -- dashboard di aggregazione multi-istanza che unisce statistiche, richieste ed eventi live da più nodi InfraGuard in un'unica vista, con una **Fleet Map** (MapLibre) che traccia ogni proxy più ogni IP sorgente bloccato alla sua lat/lon geolocalizzata e un toggle plugin fan-out per operazioni cross-istanza
- **Terminal UI** -- TUI basata su Textual con schermata di login, polling API live, log delle richieste con colori
- **Report di engagement** -- report HTML, JSON o CSV autonomi con suddivisioni per-dominio, efficacia dei filtri e audit trail dell'operatore
- **Metriche Prometheus** -- endpoint `/metrics` che espone contatori di richieste, istogrammi di latenza degli upstream, stato del circuit breaker, freschezza dei feed, connessioni attive e il gauge `infraguard_active_beacons` su cui scala l'HPA di Helm
- **OpenTelemetry** -- esportatore opt-in di tracce + metriche OTLP; il profilo compose di observability avvia un collector OTEL più Prometheus + dashboard di panoramica Grafana auto-provisionata
- **Helm chart Kubernetes** -- proxy, dashboard, Redis StatefulSet, ServiceMonitor e HPA sul gauge dei beacon attivi; fornito in `deploy/helm/infraguard/`
### Integrazioni e plugin
- **Integrazione SIEM** -- plugin integrati per Elasticsearch, Wazuh e Syslog (CEF/JSON) con inoltro in batch
- **Alert webhook** -- plugin integrati per Discord (embed), Slack (Block Kit), webhook generico, **PagerDuty** (Events API v2, dedup con chiave) e **Telegram** (chat operativa bidirezionale: `/status`, `/sessions`, `/kill`, `/ack` dal telefono)
- **Plugin di rilevamento** -- regole YARA sui corpi delle richieste, lookup GreyNoise Community, classificatore ML di bot (regressione logistica su JA4 + UA + timing), canary di risposta (canarytokens.org), fingerprinting p0f v3, arricchimento JA4/JA4H, arricchimento GeoIP
- **Manipolatori di risposta** -- riscrittore HTML, watermark dei payload, stripper di firme, JS challenge, cache mimicry, slow tarpit, shadow-block (restituisce 200 agli scanner così non si adattano mai)
- **Integrazione Phishing.club** -- ricevitore webhook firmato HMAC che acquisisce eventi di phishing e inserisce automaticamente in whitelist gli IP dei target che cliccano
- **Sistema di plugin** -- architettura event-driven con hook `on_event`, configurazione per-plugin e filtraggio degli eventi; ogni plugin può essere attivato o caricato dalla scheda **Plugins** della dashboard senza riavvio, e la modifica persiste su `config.yaml` con un commit di audit nella config-history
### Configurazione e deployment
- **Cifratura della configurazione** -- cifratura age (file completo) e SOPS (per-valore) con supporto al file `.env`
- **Validazione della configurazione** -- strumento CLI di diff e oltre 20 controlli di validazione di sicurezza, operativi e TLS
- **Gestione delle API key** -- crea, revoca e ruota le API key con rate limit per-chiave, tracciamento dell'utilizzo e quote
- **Generazione della configurazione dei backend** -- genera configurazioni Nginx, Caddy o Apache con TLS, filtraggio IP, controlli sugli header, alias e header personalizzati
- **Ingestione di regole** -- importa blocklist IP e pattern User-Agent da file `.htaccess` e `robots.txt` esistenti
- **Deployment Docker** -- Dockerfile + docker-compose con Let's Encrypt opzionale, downloader GeoIP, server payload PwnDrop e assistente AI Ollama
- **Supporto GeoIP** -- tutti e tre i database GeoLite2 (City, ASN, Country) con download automatico in Docker
- **Fallback TLS self-signed** -- genera automaticamente i certificati quando i percorsi configurati non esistono
- **Supporto variabili d'ambiente** -- file `.env` caricato automaticamente; la sintassi `${VAR}` funziona in tutti i valori e le chiavi di configurazione
- **Endpoint di health configurabile** -- cambia il percorso del controllo di salute per evitare il fingerprinting
- **Logging strutturato** -- log strutturati in formato JSON tramite structlog
- **Tracciamento e persistenza** -- SQLite in modalità WAL per logging delle richieste, statistiche, registro dei nodi, hash di replay e token dei payload
## Guida all'installazione
Consulta la [Wiki Page](https://infraguard.whispergate.org/docs/getting-started/installation/) per l'installazione
## Riferimento 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
```
### Opzioni del generatore
Il comando `generate` accetta flag aggiuntivi per la personalizzazione dell'operatore:
| Flag | Descrizione |
|---|---|
| `--listen-port PORT` | Sovrascrive la porta di ascolto (predefinita: dalla configurazione) |
| `--ssl-cert PATH` | Sovrascrive il percorso del certificato SSL |
| `--ssl-key PATH` | Sovrascrive il percorso della chiave SSL |
| `--redirect-url URL` | Sovrascrive l'URL di reindirizzamento per le richieste bloccate |
| `--default-action redirect\|404` | Azione per le richieste non corrispondenti |
| `--no-ip-filter` | Omette i blocchi di autorizzazione/negazione IP |
| `--no-header-check` | Omette le regole di validazione degli header |
| `--alias DOMAIN:ALIAS` | Aggiunge un alias del nome server (ripetibile) |
| `--header NAME:VALUE` | Aggiunge un header di risposta personalizzato (ripetibile) |
## Command Post (Dashboard Multi-Istanza)
Quando si eseguono più istanze di InfraGuard su VPS o provider cloud diversi, il Command Post aggrega statistiche, richieste ed eventi live da tutti i nodi in un'unica dashboard.```
┌─────────────────────────────┐
│ Command Post Dashboard │
│ http://localhost:9090 │
└──────────┬──────────────────┘
│ parallel fetch
┌─────┼──────┬──────────┐
▼ ▼ ▼ ▼
IG-1 IG-2 IG-3 ... IG-N
```

### Avvio rapido```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
```
### Configurazione
Crea `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}"
```
### Cosa mostra
- **Statistiche aggregate** -- richieste totali, consentite, bloccate sommate su tutte le istanze
- **Barra di stato delle istanze** -- stato verde/rosso per ogni nodo connesso
- **Log delle richieste interlacciato** -- richieste da tutte le istanze ordinate per timestamp, ciascuna contrassegnata con il nome della sua istanza
- **IP bloccati principali aggregati** -- aggregati su tutte le istanze
- **Statistiche per dominio** -- domini da tutte le istanze con tassi di blocco ricalcolati
- **Feed eventi live** -- eventi WebSocket multiplexati da tutti i nodi
- **Azioni di blocco/whitelist** -- distribuite a tutte le istanze o a una specifica
### Endpoint API
| Endpoint | Metodo | Descrizione |
|---|---|---|
| `/api/instances` | GET | Elenca tutte le istanze con stato di salute |
| `/api/stats` | GET | Statistiche aggregate da tutte le istanze |
| `/api/requests` | GET | Log delle richieste interlacciato da tutte le istanze |
| `/api/intel/whitelist` | POST | Aggiunge un IP alla whitelist su tutte le istanze |
| `/api/intel/blocklist` | POST | Blocca un IP su tutte le istanze |
| `/api/intel/blocklist` | DELETE | Sblocca un IP su tutte le istanze |
| `/ws/events` | WS | Eventi live multiplexati da tutte le istanze |
## Deployment Docker
### Avvio rapido```bash
cp .env.example .env
# Edit .env with your domain, teamserver, and token
docker compose up -d
```
Questo avvia due servizi:
- **proxy** -- il redirector sulle porte 443 e 80
- **dashboard** -- l'interfaccia web sulla porta 8080
### Con 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
```
Requisiti per Let's Encrypt:
- La porta 80 deve essere raggiungibile da internet
- `INFRAGUARD_DOMAIN` deve risolvere all'IP pubblico di questo host
- `INFRAGUARD_DOMAIN_EMAIL` deve essere un indirizzo email valido
### Con database 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
```
### Con PwnDrop (distribuzione del 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
```
Poi configura le route dei contenuti nella tua configurazione per inoltrare i percorsi del payload a PwnDrop:```yaml
domains:
cdn.example.com:
content_routes:
- path: "/downloads/*"
backend:
type: "pwndrop"
target: "http://pwndrop:80"
auth_token: "${PWNDROP_TOKEN}"
```
### Con Ollama (generazione del profilo assistita dall'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 variabile d'ambiente della dashboard `INFRAGUARD_OLLAMA_URL` è preconfigurata in docker-compose.yml. Quando Ollama è in esecuzione, l'interruttore dell'Assistente AI appare nella pagina dei decoy e dei profili della dashboard.
### Scalabilità```bash
# Run multiple redirector nodes
docker compose up -d --scale proxy-node=3
```
Decommenta il servizio `proxy-node` in `docker-compose.yml` per abilitarlo.
### Volumi
| Volume | Scopo |
|---|---|
| `./config` | File di configurazione (montati in sola lettura) |
| `./examples` | Profili C2 (montati in sola lettura) |
| `./rules` | Blocklist importate e file sorgente delle regole (montati in sola lettura) |
| `./data` | Database SQLite e profili generati (persistiti) |
| `certs` | Certificati TLS (condivisi tra proxy e certbot) |
| `geoip` | Database GeoLite2 (popolati dal servizio `geoip-update`) |
| `pwndrop-data` | File caricati e database di PwnDrop |
| `ollama-data` | Pesi dei modelli e configurazione di Ollama |
> Su host Linux, esegui `chown -R 1000:1000 config/` se vuoi che le modifiche guidate dalla dashboard
> (drop-action, cambio profilo, attivazione/disattivazione plugin) vengano persistite in `config.yaml`. L'uid
> non-root del container necessita dei permessi di scrittura sul mount.
## Deployment su Kubernetes
Il chart Helm in `deploy/helm/infraguard/` distribuisce il proxy, la dashboard, il
StatefulSet Redis e un HPA che scala il proxy sulla metrica personalizzata
`infraguard_active_beacons` (richiede `prometheus-adapter` nel cluster). Consulta la pagina
[Kubernetes Deployment](https://infraguard.whispergate.org/docs/deployment/kubernetes/)
della wiki per la guida completa.```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
```
Le probe del chart colpiscono `/health` sul listener HTTPS con `scheme: HTTPS`, quindi
il container necessita di un blocco `tls:` nella configurazione (il fallback self-signed va bene).
## Contributi
- Mgeeky - Idea originale ([RedWarden](https://github.com/mgeeky/RedWarden))
- curi0usJack - [Regole .htaccess](https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10)
- Profili
- threatexpress - [jquery-c2.3.14.profile](https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.3.14.profile)
- InfinityCurve - [Profilo Havoc](https://github.com/whispergate/infraguard/blob/main/examples/kaine.toml)
- Framework C2
- [Cobalt Strike](https://www.cobaltstrike.com/) - Supporto profilo Malleable C2
- [Mythic](https://github.com/its-a-feature/Mythic) - Supporto profilo HTTPX + file staging
- [Brute Ratel C4](https://bruteratel.com/) - Supporto profilo di configurazione server
- [Sliver](https://github.com/BishopFox/sliver) - Supporto profilo HTTP C2
- [Havoc](https://www.infinitycurve.org/) - Supporto profilo TOML
- [Nighthawk](https://nighthawkc2.io/) - Supporto configurazione listener JSON
- [PoshC2](https://github.com/nettitude/PoshC2) - Supporto configurazione YAML
Se desideri contribuire al progetto, crea un nuovo branch con il nome della versione e specifica lo stesso nome della versione nella pull request. Es. branch=v1.2.3 | [v1.2.3] Aggiunto elemento blah.
## Licenza
Licenza BSD 2-Clause. Vedi [LICENSE](https://github.com/whispergate/infraguard/blob/main/LICENSE) per i dettagli.
Copyright (c) 2026, Whispergate