
InfraGuard é um Proxy de Redirecionamento e Gerenciador de Command & Control que protege sua Infraestrutura de Red Team contra atribuição de ameaças.

Rastreador de infraestrutura de red team e redirecionador C2 -- uma alternativa moderna ao [RedWarden](https://github.com/mgeeky/RedWarden).
O InfraGuard fica entre a internet e o seu teamserver C2, validando cada requisição de entrada em relação ao seu perfil C2 maleável e bloqueando tudo o que não estiver em conformidade. Scanners, bots e sondagens de blue team são redirecionados para um site chamariz, enquanto o tráfego legítimo de beacon passa para o seu teamserver.


## Arquitetura

## Funcionalidades
### Proxy e Listeners
- **Proxy multi-domínio** -- faça proxy de vários domínios simultaneamente, cada um com perfis C2, upstreams e regras independentes
- **Listeners multi-protocolo** -- listeners HTTP/HTTPS, HTTP/3 (QUIC), WebSocket, gRPC, DNS, MQTT e túnel TCP rodando simultaneamente com inteligência de IP compartilhada e rastreamento de eventos
- **Circuit breaker** -- proteção contra falhas por upstream com estados closed/open/half-open; recorre à ação de drop do domínio quando os backends estão inacessíveis
- **Failover de protocolo** -- failover e failback automáticos entre protocolos de listener classificados por prioridade
### Suporte a Perfis C2
- **Validação de perfil C2** -- analisa e aplica perfis Cobalt Strike, Mythic, Brute Ratel C4, Sliver, Havoc, Nighthawk e PoshC2 como regras de redirecionador
- **Perfis hot-swappable** -- troque o perfil C2 ativo de um domínio em tempo de execução pelo dashboard sem reiniciar o proxy
- **Assistente de geração de perfis** -- gere novos perfis C2 do zero para todos os 8 tipos suportados por meio de um formulário guiado, ou importe e envie perfis existentes com detecção automática de tipo e validação
- **Geração de perfis assistida por IA** -- integração opcional com Ollama fornece um painel de chat no dashboard para ajuda na criação de perfis e aconselhamento de OPSEC
### Pipeline de Filtros
- **Pipeline de filtros baseado em pontuação** -- 10 filtros, cada um contribui com uma pontuação de 0.0--1.0; limiar configurável determina bloqueio/permissão. Filtros: JA3, IP, bot, header, DNS, geo, profile, replay, enumeration, sandbox.
- **Filtragem de fingerprint TLS JA3** -- bloqueie Masscan, ZGrab2, Shodan, curl, Python requests e Nmap na camada de handshake TLS antes que qualquer dado HTTP seja trocado; funciona via header de reverse-proxy ou protocolo asyncio personalizado; modo allowlist opcional impõe o JA3 do beacon
- **Detecção de sandbox e navegador headless** -- acúmulo de pontuação em sinais HTTP: UA HeadlessChrome, Accept-Language ausente, Chrome sem sec-ch-ua, UAs de scanner Safe Links e msnbot, ordenação de Accept não-navegador
- **Detecção de enumeração de caminhos** -- rastreamento de URI único por IP em uma janela deslizante; bloqueia dirbuster/ffuf/gobuster antes que mapeiem o espaço de URI
- **Detecção de enumeração de subdomínios DNS** -- rastreia respostas NXDOMAIN por IP de cliente; bloqueia automaticamente IPs de origem ao ultrapassar o limiar
- **Anti-bot / anti-crawling** -- mais de 40 padrões conhecidos de User-Agent de scanner/bot, detecção de anomalias em headers
- **Proteção contra replay** -- rejeita requisições duplicadas por hash de conteúdo; hashes persistidos em SQLite para que a proteção sobreviva a reinicializações
- **Ações de drop** -- redirecionar, reset TCP, proxy para site chamariz ou tarpit (resposta em gotejamento lento para desperdiçar o tempo do scanner)
### Inteligência
- **Inteligência de IP** -- blocklists CIDR integradas para 19 faixas de fornecedores de segurança (Shodan, Censys, Rapid7, etc.), filtragem GeoIP, correspondência de palavras-chave em DNS reverso
- **Feeds de threat intel** -- atualização automática de blocklists a partir de fontes públicas (abuse.ch, Emerging Threats, Spamhaus DROP, Binary Defense) com intervalo de atualização configurável e cache em disco
- **Bloqueio dinâmico de IP** -- bloqueie IPs fora de faixas permitidas; adicione IPs automaticamente à whitelist após N requisições C2 válidas
- **Enriquecimento de whitelist** -- CIDRs em whitelist são automaticamente enriquecidos com dados de ASN, organização, país e continente na inicialização via bancos de dados GeoIP
- **Detecção de burn** -- monitoramento de logs de Certificate Transparency via crt.sh, automonitoramento de reputação de domínio via URLhaus/OpenPhish/Google Safe Browsing e detecção de analista entre domínios quando um único IP acessa vários domínios do operador
- **Pontuação de confiança de burn** -- pontuação contínua de 0--100 a partir de 6 sinais ponderados: diversidade de JA3, picos de volume, novos ASNs, exposição em logs CT, hits de reputação e tentativas de autenticação falhas. Inclui ações recomendadas: monitorar, rotacionar ou burn imediato.
- **Injeção de canary token** -- pixels de rastreamento, links honeypot e formulários honeypot injetados automaticamente em páginas chamariz para detectar investigação de blue team
- **Monitoramento de DNS passivo** -- consulta o CIRCL PDNS para resolução externa dos seus domínios; detecta novos registros, picos de NXDOMAIN e exposição de primeira visualização
### Entrega de Payload
- **Rotas de entrega de conteúdo** -- sirva payloads, chamarizes e arquivos estáticos em caminhos específicos via PwnDrop, file store do Mythic, sistema de arquivos local ou backends de proxy HTTP; entrega condicional opcional para servir conteúdo real a alvos e chamarizes a scanners
- **Staging de arquivos do Mythic** -- backend `mythic_file` faz proxy do `/direct/download/{uuid}` do Mythic em URLs limpas; UUID fixo ou modo proxy; controle de acesso fornecido pela pilha de filtros do InfraGuard
- **Tokens de payload de uso único** -- tokens emitidos automaticamente quando um beacon é adicionado dinamicamente à whitelist; aplicação atômica de uso único em SQLite impede replay de URL por analistas ou sandboxes; TTL configurável e contagem máxima de uso
- **Rate limiting por rota** -- limitador de taxa de download por IP em janela deslizante nas rotas de conteúdo; exceder o limite serve o chamariz de scanner configurado ou 429
- **Guardas de entrega** -- chaveamento por ambiente para rotas de conteúdo: exigir IP do beacon, allowlist de UA, valores de header obrigatórios, headers proibidos; verificações falhas servem a ação de drop do domínio, não um 403 bruto
- **Tokens de campanha de phishing** -- restrinja páginas de phishing atrás de tokens por campanha embutidos em links de e-mail; lista estática de tokens ou tokens autovalidáveis assinados com HMAC com TTL configurável
### Resiliência
- **Rotação de infraestrutura** -- rotação blue-green com um clique via Terraform em 5 provedores de nuvem com verificações prévias, rollback e estado criptografado com age
- **Agendamento de rotação** -- políticas de rotação automatizadas: intervalo fixo, acionada por burn, limiar de contagem de requisições e rolling escalonado
- **Watchdog de autorrotação** -- consulta a pontuação de burn e a expiração de certificados em um intervalo; autorrotaciona quando o limiar de burn é atingido ou um certificado tem menos de N dias restantes, ou recorre ao modo somente alerta com limite de custo
- **Circuit breakers** -- rastreamento de falhas por upstream com estados HEALTHY / PROBING / TRIPPED e timeout de recuperação configurável, exibidos ao vivo no widget Upstreams do dashboard
- **Domain fronting** -- roteamento C2 baseado em CDN via divisão de header SNI/Host com remoção de headers de CDN e proteção SSRF
- **Dead man's switch** -- TTL de heartbeat do operador que interrompe automaticamente o encaminhamento C2 se o operador não fizer check-in
- **Espelho purple-team** -- duplicata fire-and-forget de eventos permitidos para um coletor de blue team para pontuação de engajamento
- **Backend de estado compartilhado (Redis)** -- cache de replay entre nós opcional, whitelist dinâmica, bag de sessão de beacon e rate-limit de drop para que réplicas escaladas horizontalmente vejam o mesmo estado
- **Proxies de borda** -- Cloudflare Worker e AWS Lambda para domain fronting através de infraestrutura CDN, bloqueio de país na borda e reescrita de host
### Dashboard e Ferramentas do Operador
- **Dashboard web** -- SPA em tempo real com página de login, feed de requisições ao vivo, estatísticas de domínio, IPs mais bloqueados, streaming de eventos via WebSocket e ações inline de block/whitelist/unblock
- **Gerenciamento de páginas chamariz** -- liste, visualize e edite páginas HTML chamariz diretamente pelo dashboard; **Canary Overview** por domínio (alternâncias de pixel / link oculto / formulário oculto) e um painel **Canary Hits** que revela cada scanner ou sandbox que puxou um recurso chamariz
- **Tokens chamariz com endpoints de callback dedicados** -- pixel de rastreamento injetado, link oculto e formulário oculto disparam cada um um evento `canary_hit` em `/_ig/px|hp|hf?c=<token>`; os hits chegam ao banco de dados de rastreamento com `filter_result=canary_hit` e são transmitidos ao vivo para a página Decoys e qualquer plugin de alerta inscrito
- **Aba Plugins** -- lista plugins carregados com alternâncias de `enable / disable` em tempo de execução (sem reiniciar) e um **Plugin Marketplace** para adicionar qualquer um dos 29 plugins integrados com um clique; cada mutação persiste em `config.yaml` e chega como um commit no repositório de histórico de configuração
- **Command Post** -- dashboard de agregação multi-instância que mescla estatísticas, requisições e eventos ao vivo de vários nós InfraGuard em uma única visualização, com um **Fleet Map** (MapLibre) que plota cada proxy mais cada IP de origem bloqueado em sua latitude/longitude geolocalizada e uma alternância de plugin de fan-out para operações entre instâncias
- **Terminal UI** -- TUI baseada em Textual com tela de login, polling de API ao vivo, log de requisições com código de cores
- **Relatórios de engajamento** -- relatórios HTML, JSON ou CSV autocontidos com detalhamento por domínio, eficácia de filtros e trilha de auditoria do operador
- **Métricas Prometheus** -- endpoint `/metrics` expondo contadores de requisições, histogramas de latência de upstream, estado do circuit breaker, atualidade dos feeds, conexões ativas e o gauge `infraguard_active_beacons` no qual o HPA do Helm escala
- **OpenTelemetry** -- exportador OTLP de traces + métricas opt-in; perfil de compose de observabilidade levanta um coletor OTEL mais Prometheus + dashboard de visão geral do Grafana autoprovisionado
- **Kubernetes Helm chart** -- proxy, dashboard, Redis StatefulSet, ServiceMonitor e HPA no gauge de beacons ativos; fornecido em `deploy/helm/infraguard/`
### Integrações e Plugins
- **Integração SIEM** -- plugins integrados para Elasticsearch, Wazuh e Syslog (CEF/JSON) com encaminhamento em lote
- **Alertas por webhook** -- plugins integrados para Discord (embeds), Slack (Block Kit), webhook genérico, **PagerDuty** (Events API v2, deduplicado por chave) e **Telegram** (chat de operações bidirecional: `/status`, `/sessions`, `/kill`, `/ack` pelo celular)
- **Plugins de detecção** -- regras YARA sobre corpos de requisição, consulta GreyNoise Community, classificador de bot por ML (regressão logística em JA4 + UA + timing), canary de resposta (canarytokens.org), fingerprinting p0f v3, enriquecimento JA4/JA4H, enriquecimento GeoIP
- **Manipuladores de resposta** -- reescritor HTML, marca d'água de payload, removedor de assinatura, desafio JS, mímica de cache, tarpit lento, shadow-block (retorna 200 a scanners para que nunca se adaptem)
- **Integração com Phishing.club** -- receptor de webhook assinado com HMAC que ingere eventos de phishing e adiciona automaticamente à whitelist IPs de alvos que clicaram
- **Sistema de plugins** -- arquitetura orientada a eventos com hooks `on_event`, configuração por plugin e filtragem de eventos; cada plugin pode ser alternado ou carregado pela aba **Plugins** do dashboard sem reiniciar, e a alteração persiste de volta em `config.yaml` com um commit de auditoria no histórico de configuração
### Configuração e Implantação
- **Criptografia de configuração** -- criptografia age (arquivo completo) e SOPS (por valor) com suporte a arquivo `.env`
- **Validação de configuração** -- ferramenta de diff via CLI e mais de 20 verificações de validação de segurança, operacionais e TLS
- **Gerenciamento de chaves de API** -- crie, revogue e rotacione chaves de API com limites de taxa por chave, rastreamento de uso e cotas
- **Geração de configuração de backend** -- gere configurações Nginx, Caddy ou Apache com TLS, filtragem de IP, verificações de header, aliases e headers personalizados
- **Ingestão de regras** -- importe blocklists de IP e padrões de User-Agent de arquivos `.htaccess` e `robots.txt` existentes
- **Implantação com Docker** -- Dockerfile + docker-compose com Let's Encrypt opcional, downloader de GeoIP, servidor de payload PwnDrop e assistente de IA Ollama
- **Suporte a GeoIP** -- todos os três bancos de dados GeoLite2 (City, ASN, Country) com download automático via Docker
- **Fallback de TLS autoassinado** -- gera certificados automaticamente quando os caminhos configurados não existem
- **Suporte a variáveis de ambiente** -- arquivo `.env` carregado automaticamente; sintaxe `${VAR}` funciona em todos os valores e chaves de configuração
- **Endpoint de health configurável** -- altere o caminho de verificação de saúde para evitar fingerprinting
- **Logging estruturado** -- logs estruturados em formato JSON via structlog
- **Rastreamento e persistência** -- SQLite com modo WAL para logging de requisições, estatísticas, registro de nós, hashes de replay e tokens de payload
## Guia de Instalação
Confira a [Página da Wiki](https://infraguard.whispergate.org/docs/getting-started/installation/) para instalação
## Referência da 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
```
### Opções do gerador
O comando `generate` aceita flags adicionais para personalização do operador:
| Flag | Descrição |
|---|---|
| `--listen-port PORT` | Substitui a porta de escuta (padrão: da configuração) |
| `--ssl-cert PATH` | Substitui o caminho do certificado SSL |
| `--ssl-key PATH` | Substitui o caminho da chave SSL |
| `--redirect-url URL` | Substitui a URL de redirecionamento para requisições bloqueadas |
| `--default-action redirect\|404` | Ação para requisições sem correspondência |
| `--no-ip-filter` | Omite blocos de permissão/negação de IP |
| `--no-header-check` | Omite regras de validação de cabeçalho |
| `--alias DOMAIN:ALIAS` | Adiciona alias de nome de servidor (repetível) |
| `--header NAME:VALUE` | Adiciona cabeçalho de resposta personalizado (repetível) |
## Command Post (Dashboard Multi-Instância)
Ao executar múltiplas instâncias do InfraGuard em diferentes VPSes ou provedores de nuvem, o Command Post agrega estatísticas, requisições e eventos ao vivo de todos os nós em um único dashboard.```
┌─────────────────────────────┐
│ Command Post Dashboard │
│ http://localhost:9090 │
└──────────┬──────────────────┘
│ parallel fetch
┌─────┼──────┬──────────┐
▼ ▼ ▼ ▼
IG-1 IG-2 IG-3 ... IG-N
```

### Início rápido```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
```
### Configuração
Crie `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}"
```
### O que ele mostra
- **Estatísticas mescladas** -- total de requisições, permitidas, bloqueadas somadas em todas as instâncias
- **Barra de saúde das instâncias** -- status verde/vermelho para cada nó conectado
- **Log de requisições intercalado** -- requisições de todas as instâncias ordenadas por timestamp, cada uma marcada com o nome da sua instância
- **IPs bloqueados principais mesclados** -- agregados em todas as instâncias
- **Estatísticas por domínio** -- domínios de todas as instâncias com taxas de bloqueio recalculadas
- **Feed de eventos ao vivo** -- eventos WebSocket multiplexados de todos os nós
- **Ações de bloqueio/whitelist** -- distribuir para todas as instâncias ou para uma específica
### Endpoints da API
| Endpoint | Método | Descrição |
|---|---|---|
| `/api/instances` | GET | Lista todas as instâncias com status de saúde |
| `/api/stats` | GET | Estatísticas mescladas de todas as instâncias |
| `/api/requests` | GET | Log de requisições intercalado de todas as instâncias |
| `/api/intel/whitelist` | POST | Adiciona um IP à whitelist em todas as instâncias |
| `/api/intel/blocklist` | POST | Bloqueia um IP em todas as instâncias |
| `/api/intel/blocklist` | DELETE | Desbloqueia um IP em todas as instâncias |
| `/ws/events` | WS | Eventos ao vivo multiplexados de todas as instâncias |
## Implantação com Docker
### Início rápido```bash
cp .env.example .env
# Edit .env with your domain, teamserver, and token
docker compose up -d
```
Isso inicia dois serviços:
- **proxy** -- o redirecionador nas portas 443 e 80
- **dashboard** -- a interface web na porta 8080
### Com 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
```
Requisitos para o Let's Encrypt:
- A porta 80 deve estar acessível a partir da internet
- `INFRAGUARD_DOMAIN` deve resolver para o IP público deste host
- `INFRAGUARD_DOMAIN_EMAIL` deve ser um endereço de email válido
### Com bases de dados 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
```
### Com PwnDrop (entrega 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
```
Em seguida, configure rotas de conteúdo na sua configuração para encaminhar caminhos de payload para o PwnDrop:```yaml
domains:
cdn.example.com:
content_routes:
- path: "/downloads/*"
backend:
type: "pwndrop"
target: "http://pwndrop:80"
auth_token: "${PWNDROP_TOKEN}"
```
### Com Ollama (geração de perfil assistida por 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
```
A variável de ambiente do dashboard `INFRAGUARD_OLLAMA_URL` está pré-configurada no docker-compose.yml. Quando o Ollama está em execução, o botão de alternância do Assistente de IA aparece na página de decoys e perfis do dashboard.
### Escalonamento```bash
# Run multiple redirector nodes
docker compose up -d --scale proxy-node=3
```
Descomente o serviço `proxy-node` em `docker-compose.yml` para ativar.
### Volumes
| Volume | Finalidade |
|---|---|
| `./config` | Arquivos de configuração (montados como somente leitura) |
| `./examples` | Perfis C2 (montados como somente leitura) |
| `./rules` | Listas de bloqueio ingeridas e arquivos de origem de regras (montados como somente leitura) |
| `./data` | Banco de dados SQLite e perfis gerados (persistidos) |
| `certs` | Certificados TLS (compartilhados entre proxy e certbot) |
| `geoip` | Bancos de dados GeoLite2 (populados pelo serviço `geoip-update`) |
| `pwndrop-data` | Arquivos enviados e banco de dados do PwnDrop |
| `ollama-data` | Pesos de modelo e configuração do Ollama |
> Em hosts Linux, execute `chown -R 1000:1000 config/` se quiser que mutações
> acionadas pelo dashboard (drop-action, troca de perfil, alternância de plugin)
> persistam de volta em `config.yaml`. O uid não-root do
> contêiner precisa de permissão de escrita no ponto de montagem.
## Implantação no Kubernetes
O Helm chart em `deploy/helm/infraguard/` implanta o proxy, o dashboard, o
StatefulSet do Redis e um HPA que escala o proxy com base na métrica
personalizada `infraguard_active_beacons` (requer `prometheus-adapter` no cluster). Consulte a página
[Implantação no Kubernetes](https://infraguard.whispergate.org/docs/deployment/kubernetes/)
da wiki para o guia completo.```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
```
As sondas do gráfico acessam `/health` no listener HTTPS com `scheme: HTTPS`, portanto o contêiner precisa de um bloco `tls:` na configuração (o fallback autoassinado é suficiente).
## Contribuições
- Mgeeky - Ideia Original ([RedWarden](https://github.com/mgeeky/RedWarden))
- curi0usJack - [regras .htaccess](https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10)
- Perfis
- threatexpress - [jquery-c2.3.14.profile](https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.3.14.profile)
- InfinityCurve - [Perfil Havoc](https://github.com/whispergate/infraguard/blob/main/examples/kaine.toml)
- Frameworks C2
- [Cobalt Strike](https://www.cobaltstrike.com/) - Suporte a perfil Malleable C2
- [Mythic](https://github.com/its-a-feature/Mythic) - Suporte a perfil HTTPX + file staging
- [Brute Ratel C4](https://bruteratel.com/) - Suporte a perfil de configuração do servidor
- [Sliver](https://github.com/BishopFox/sliver) - Suporte a perfil HTTP C2
- [Havoc](https://www.infinitycurve.org/) - Suporte a perfil TOML
- [Nighthawk](https://nighthawkc2.io/) - Suporte a configuração de listener JSON
- [PoshC2](https://github.com/nettitude/PoshC2) - Suporte a configuração YAML
Se você gostaria de contribuir com o projeto, então por favor crie um novo branch com o nome da versão e especifique o mesmo nome de versão no pull request. Ex.: branch=v1.2.3 | [v1.2.3] Adicionado item blah.
## Licença
Licença BSD 2-Clause. Consulte [LICENSE](https://github.com/whispergate/infraguard/blob/main/LICENSE) para detalhes.
Copyright (c) 2026, Whispergate