Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Kage-DFIR-toolkit — Console de triagem DFIR para hosts Windows que encadeia coleta de artefatos, linhas do tempo correlacionadas com Sigma, varreduras YARA, inspeção de sockets e contas, enriquecimento de indicadores e uma pontuação de risco calibrada. | Kitploit
Ferramentas/GitHubGitHub/karim852/kage-dfir-toolkit
Ferramentas DefensivasGerenciamento de Indicadores de Comprometimento (IOC)Análise de VulnerabilidadesScripting e AutomaçãoAnálise ForenseColeta de InformaçõesAnálise de MalwareForensia DigitalInteligência de Ameaças

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Resposta a Incidentes
Análise de Logs
GitHubkarim852/kage-dfir-toolkit

Kage-DFIR-toolkit

Console de triagem DFIR para hosts Windows que encadeia coleta de artefatos, linhas do tempo correlacionadas com Sigma, varreduras YARA, inspeção de sockets e contas, enriquecimento de indicadores e uma pontuação de risco calibrada.

Ver RepositórioSite
8110há 3 diasAinda não revisado
Compartilhar

KAGE — DFIR Toolkit


Aponte o Kage para um host Windows suspeito e ele executa toda a triagem em uma única cadeia: o CyLR coleta os artefatos, o Hayabusa correlaciona os logs de eventos com o Sigma, o THOR Lite procura correspondências YARA, o VirusTotal e o AbuseIPDB qualificam os indicadores, e o provedor de IA da sua escolha redige o relatório. Cada etapa é transmitida ao vivo, sela o que produziu e pode ser reproduzida isoladamente.```bash pip install -r requirements.txt python -m dfirconsole # → http://127.0.0.1:8787

root@kitploit:~
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/55114/7d59d87cd6f41f9d8dc66e4da743e6c6728a7156a06f9de9bdc18cdfd1fbb5cd/de22d9f23b6327fc806bbd1febb370cdca42f33eff3718eca9a0864eeb7d87e2-display-v1.webp" alt="Visão geral do Kage" width="100%">
  <br><sub>A visão geral: onze etapas seladas à esquerda, o log de
  execução em streaming, e a pontuação dividida em seus quatro componentes.</sub>
</p>

---

## 📑 Índice

- [Instalação](#-installation)
- [Executando sua primeira varredura](#-running-your-first-scan)
- [Adicionando o THOR Lite manualmente](#-adding-thor-lite-manually)
- [A cadeia](#-the-chain)
- [Pontuação de risco](#-risk-score)
- [Alertas](#-alerts)
- [Contexto do sistema](#-system-context)
- [Logging e auditoria](#-logging--audit)
- [YARA](#-yara)
- [Selos](#-seals)
- [Visualizações](#-views)
- [Configuração](#-configuration)
- [Referência da CLI](#-cli-reference)
- [Solução de problemas](#-troubleshooting)
- [Versão Linux](#-linux-version--in-progress)
- [Créditos](#-credits)

---

## 📦 Instalação

### Requisitos

| | |
|---|---|
| SO | Windows 10 / 11 ou Windows Server |
| Python | 3.10+ de [python.org](https://www.python.org/downloads/), **instalado para todos os usuários** |
| Permissões | **Administrador**  |
| Disco | alguns GB livres para a coleta |


### Instalar```powershell
# 1. Extract Kage anywhere — Desktop, C:\Kage, a USB stick, it does not matter
cd C:\Kage

# 2. Install the dependencies
pip install -r requirements.txt

# 3. Check the environment before touching a host
python preflight.py

preflight.py relata o que está pronto e o que está faltando.``` Workspace : C:\Kage System : Windows 11 Python : 3.12.3

Dependencies [ok] module fastapi [ok] module uvicorn [ok] module httpx

Rights and disk space [ok] console running as administrator [ok] free space: 84.2 GB

Tooling [!] CyLR in C:\Kage\tools\cylr → the "Locate the tooling" step downloads it [!] THOR Lite → optional step — it will simply be skipped

root@kitploit:~
### Iniciar — como Administrador```powershell
python -m dfirconsole

Ou clique com o botão direito em launch.bat → Executar como administrador, o que trata do virtualenv, da instalação e abre o navegador por você.``` Kage DFIR Toolkit 1.5.0 code C:\Kage\dfirconsole workspace C:\Kage open http://127.0.0.1:8787

root@kitploit:~
> **O workspace é onde você o iniciou.** Nada para configurar. Ferramentas,
> evidências e saída ficam todas ao lado do console.

### Experimente sem risco primeiro```powershell
python -m dfirconsole --demo

O modo de demonstração constrói uma intrusão sintética — anexo malicioso, PowerShell codificado, Defender desativado, roubo de credenciais, persistência, C2, cópias de sombra eliminadas — e executa toda a cadeia sobre ela. Nada na sua máquina é tocado. A melhor forma de aprender a interface antes de um incidente real.


🚀 Executar a sua primeira análise

Passo 1 — Abrir a consola

Inicie como administrador, abra http://127.0.0.1:8787 e verifique se a barra de estado mostra live run · Windows e não demonstration mode.

Passo 2 — Dar um nome ao caso

Clique em Settings:

CampoExemploPorque é importante
Referência do casoINC-2026-0042dá nome ao relatório, ao log e ao arquivo
AnalistaN. Delaunayaparece no cabeçalho do relatório

Deixe Workspace folder vazio — ele deteta a pasta de lançamento por si próprio. Clique em Save.

Passo 3 — Aquecer antes de se comprometer

A coluna da esquerda é a cadeia de custódia. Cada passo tem uma caixa de seleção; todas estão marcadas por predefinição exceto a análise YARA.

Para uma primeira execução, desmarque tudo exceto:``` ☑ Prepare the workspace ☑ Exclude the folder from Defender ☑ Locate the tooling ☑ Update the Sigma rules

root@kitploit:~
Clique em **Run 4 steps**. Cerca de um minuto. Isto descarrega o CyLR e o Hayabusa e
confirma que a sua elevação funciona realmente *antes* de começar algo demorado.

### Passo 4 — Recolher e analisar

Assim que esses quatro estiverem selados, marque o resto:```
☑ Collect the artefacts        CyLR — a few minutes, several GB
☑ Capture the system context   accounts, sockets, disk root, log coverage
☑ Build the timeline           Hayabusa correlates against Sigma
☑ Analyse the timeline         score, alert families, indicators

Clique em Run e acompanhe o fluxo do log de execução. Cada etapa concluída recebe um selo — um SHA-256 que você pode verificar depois.

Passo 5 — Leia os resultados

OndeO que você obtém
Overviewpontuação de risco com seus quatro componentes, alertas por família
Alertstodos os alertas, filtráveis por severidade e família
Systemcontas, sockets vinculados a processos, pastas estranhas, cobertura de logs
Indicatorshashes, IPs e domínios extraídos da linha do tempo

Clique em qualquer linha da tabela para abrir o painel de leitura: todos os campos, a linha de comando completa, todos os dados brutos. ← → para navegar entre os itens, Esc para fechar.

Passo 6 — Enriquecer e concluir (opcional)

Com as chaves de API configuradas:``` ☑ Enrich the indicators VirusTotal + AbuseIPDB reputation ☑ Write the summary the AI drafts the report

root@kitploit:~
Sem chaves, ambos são marcados como *skipped* e um **write-up local** é produzido
em vez disso — mesma estrutura, sem chamada de rede.

### Passo 7 — Exportação

No canto superior direito do dashboard:

- **Report** — HTML imprimível, treze secções numeradas, pronto para PDF
- **JSON** — o estado completo, selos incluídos
- **Log** — tudo o que a consola produziu

> 💡 **Reproduzir um único passo:** faça duplo clique na sua etiqueta na coluna da esquerda. Útil
> quando o Hayabusa falha mas a recolha está bem — sem necessidade de recolher duas vezes.

---

## 🔦 Adicionar o THOR Lite manualmente

O scan YARA é o único passo que o Kage **não consegue** configurar por si. A Nextron exige
registo, por isso o binário não pode ser obtido por um script. O CyLR e o Hayabusa
descarregam-se sozinhos; o THOR não.

### 1. Obter o arquivo

Registe-se e descarregue em
[nextron-systems.com/thor-lite](https://www.nextron-systems.com/thor-lite/).
Receberá o scanner **e um ficheiro de licença** (`.lic`) — normalmente por email.

### 2. Colocá-lo em `tools\thor\`

O Kage já criou essa pasta por si no primeiro arranque. Copie o conteúdo do arquivo
para lá, **mantendo tudo junto**:```
C:\Kage\
└── tools\
    └── thor\                    ← everything goes here
        ├── thor64-lite.exe        the scanner
        ├── yourname.lic           the licence — THOR will not start without it
        ├── config\                from the archive
        ├── signatures\            from the archive — the YARA rules themselves
        └── custom-signatures\     from the archive

Por que mantê-los juntos? O THOR é executado a partir do diretório que contém seu executável e resolve suas assinaturas relativas a esse diretório. Copiar apenas o binário resulta em um scanner sem nada para escanear.

As outras duas ferramentas ficam ao lado dele, cada uma em sua própria pasta:``` tools
├── cylr\ CyLR.exe ← downloaded automatically ├── hayabusa\ hayabusa-.exe ← downloaded automatically └── thor\ thor64-lite.exe + .lic ← you place this one

root@kitploit:~
### 3. Verificar```powershell
python preflight.py

| -s | --server | string | http://localhost:8080 | URL do servidor | | -t | --token | string | | Token de autenticação | | -o | --output | string | ./output | Diretório de saída | | -f | --format | string | json | Formato de saída (json, yaml, csv) | | -v | --verbose | bool | false | Ativar saída detalhada | | -q | --quiet | bool | false | Suprimir toda a saída | | -c | --config | string | ~/.tool/config.yaml | Caminho do arquivo de configuração | | -n | --no-color | bool | false | Desativar saída colorida | | -d | --debug | bool | false | Ativar modo de depuração | | -h | --help | | | Exibir mensagem de ajuda |

Exemplos

root@kitploit:~
# Basic usage
tool scan --target example.com

# With authentication
tool scan --target example.com --token "your-api-token"

# Output to specific directory
tool scan --target example.com --output /tmp/results

# Verbose mode with JSON output
tool scan --target example.com --verbose --format json

# Using configuration file
tool scan --config /path/to/config.yaml

# Multiple targets
tool scan --target example.com,test.com,localhost

Arquivo de Configuração

root@kitploit:~
# ~/.tool/config.yaml
server: http://localhost:8080
token: your-api-token
output: ./output
format: json
verbose: false
quiet: false
no_color: false
debug: false

# Scan settings
scan:
  timeout: 30
  threads: 10
  retries: 3
  follow_redirects: true
  user_agent: "Tool/1.0"

# Filters
filters:
  exclude:
    - "*.test.com"
    - "internal.*"
  include:
    - "*.example.com"

Uso Avançado

Pipeline

root@kitploit:~
# Pipe results to other tools
tool scan --target example.com --format json | jq '.vulnerabilities[]'

# Read targets from file
cat targets.txt | tool scan --stdin

# Chain multiple scans
tool scan --target example.com --format json | \
  tool analyze --stdin --format table

Integração com CI/CD

root@kitploit:~
# .github/workflows/security.yml
name: Security Scan
on:
  push:
    branches: [main]
  schedule:
    - cron: '0 0 * * *'

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run security scan
        run: |
          tool scan --target ${{ github.event.repository.html_url }} \
            --token ${{ secrets.TOOL_TOKEN }} \
            --format json \
            --output results/
      - name: Upload results
        uses: actions/upload-artifact@v3
        with:
          name: scan-results
          path: results/

Docker

root@kitploit:~
# Build image
docker build -t tool:latest .

# Run container
docker run --rm -v $(pwd)/output:/app/output tool:latest \
  scan --target example.com

# With environment variables
docker run --rm \
  -e TOOL_TOKEN=your-token \
  -e TOOL_SERVER=http://localhost:8080 \
  tool:latest scan --target example.com

Docker Compose

root@kitploit:~
version: '3.8'
services:
  tool:
    build: .
    volumes:
      - ./output:/app/output
      - ./config:/app/config
    environment:
      - TOOL_TOKEN=${TOOL_TOKEN}
      - TOOL_SERVER=http://tool-server:8080
    depends_on:
      - tool-server

  tool-server:
    image: tool-server:latest
    ports:
      - "8080:8080"
    volumes:
      - ./data:/data

API

Autenticação

root@kitploit:~
# Get token
curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "password"}'

# Use token
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://localhost:8080/api/scan

Endpoints

MétodoEndpointDescrição
GET/api/healthVerificação de integridade
GET/api/versionInformações da versão
POST/api/auth/loginAutenticar e obter token
POST/api/auth/logoutInvalidar token
GET/api/scansListar todos os scans
POST/api/scansCriar novo scan
GET/api/scans/{id}Obter detalhes do scan
DELETE/api/scans/{id}Excluir scan
GET/api/scans/{id}/resultsObter resultados do scan
GET/api/vulnerabilitiesListar vulnerabilidades
GET/api/vulnerabilities/{id}Obter detalhes da vulnerabilidade

Exemplos de API

root@kitploit:~
# Create scan
curl -X POST http://localhost:8080/api/scans \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "example.com",
    "options": {
      "timeout": 30,
      "threads": 10
    }
  }'

# Get scan results
curl -H "Authorization: Bearer YOUR_TOKEN" \
  http://localhost:8080/api/scans/123/results

# List vulnerabilities
curl -H "Authorization: Bearer YOUR_TOKEN" \
  "http://localhost:8080/api/vulnerabilities?severity=high&limit=10"

Solução de Problemas

Problemas Comuns

ProblemaSolução
Conexão recusadaVerifique se o servidor está em execução e se a porta está correta
Falha na autenticaçãoVerifique seu token e certifique-se de que ele não expirou
Permissão negadaExecute com privilégios elevados ou ajuste as permissões de arquivo
Tempo limite esgotadoAumente o valor de timeout nas configurações
Memória insuficienteReduza o número de threads ou aumente a memória disponível
Arquivo de configuração não encontradoVerifique o caminho e certifique-se de que o arquivo existe

Modo de Depuração

root@kitploit:~
# Enable debug mode
tool scan --target example.com --debug

# With verbose output
tool scan --target example.com --debug --verbose

# Save debug logs
tool scan --target example.com --debug 2> debug.log

Logs

root@kitploit:~
# View logs
tail -f /var/log/tool/tool.log

# Filter errors
grep ERROR /var/log/tool/tool.log

# Search by date
grep "2024-01-15" /var/log/tool/tool.log

Contribuindo

Contribuições são bem-vindas! Por favor, siga estas diretrizes:

  1. Faça um fork do repositório
  2. Crie uma branch de funcionalidade (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add amazing feature')
  4. Faça push para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Diretrizes de Desenvolvimento

  • Siga o estilo de código existente
  • Adicione testes para novas funcionalidades
  • Atualize a documentação conforme necessário
  • Execute o linter antes de fazer commit
root@kitploit:~
# Run tests
make test

# Run linter
make lint

# Format code
make fmt

# Build binary
make build

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Agradecimentos

  • Contributor 1
  • Contributor 2
  • Contributor 3

Suporte

  • 📖 Documentação
  • 💬 Discord
  • 🐛 Rastreador de Problemas
  • 📧 Email

Aviso: Esta ferramenta destina-se apenas a testes de segurança autorizados e fins educacionais. Sempre obtenha permissão adequada antes de testar qualquer sistema.``` Tooling [ok] CyLR in C:\Kage\tools\cylr [ok] Hayabusa in C:\Kage\tools\hayabusa [ok] THOR Lite: C:\Kage\tools\thor\thor64-lite.exe [ok] THOR licence file (*.lic)

root@kitploit:~
Se a linha da licença mostrar `[!]`, o THOR inicia e para imediatamente.

### 4. Escolha o escopo — isto decide tudo

**Settings → YARA scan folder:**

| Valor | Examina | Demora |
|---|---|---|
| *(vazio)* | os artefactos que o CyLR acabou de recolher | minutos |
| `C:\Users\target` | um perfil de utilizador | minutos |
| `C:\` | todo o volume do sistema | **horas** |

Marque **YARA scan** na cadeia e execute-a. Os veredictos aparecem em tempo real à medida que os ficheiros são
examinados — alertas, avisos, notificações *e* ficheiros limpos, cada um com o seu hash.

**Sem limite de tempo por predefinição.** Uma varredura de três horas é uma decisão, não uma anomalia.
Defina um em minutos se quiser um teto.

> Sem o THOR, o passo reporta-se como *ignorado* e a cadeia continua.
> Perde o eixo YARA da pontuação — nada mais.

---

## 🔗 A cadeia

Onze passos. Marque o que precisa, faça duplo clique numa etiqueta para repetir um sozinho.

| # | Passo | O que realmente é executado |
|---|---|---|
| 01 | Preparar a área de trabalho | árvore de pastas, verificação de elevação e espaço livre |
| 02 | Excluir do Defender | `Add-MpPreference -ExclusionPath <workspace>` |
| 03 | Localizar as ferramentas | resolve e descarrega o CyLR + Hayabusa das releases do GitHub |
| 04 | Recolher os artefactos | `CyLR.exe -od evidence\ -of <case>.zip -v` |
| 05 | Capturar o contexto do sistema | `systeminfo` · `Get-LocalUser` · `netstat -ano` · `tasklist` · `auditpol` |
| 06 | Atualizar as regras Sigma | `hayabusa update-rules` |
| 07 | Construir a linha temporal | `hayabusa <csv\|dfir>-timeline -d <Logs> -o hayabusa-output.csv -r <rules>` |
| 08 | Analisar a linha temporal | pontuação, famílias de alertas, extração de indicadores |
| 09 | Varredura YARA *(opcional)* | `thor64-lite.exe --nocsv -p <chosen folder>` |
| 10 | Enriquecer os indicadores | VirusTotal v3 · AbuseIPDB v2 |
| 11 | Escrever o resumo | o seu fornecedor de IA, ou um relatório local |

O subcomando do Hayabusa é lido do seu próprio output de ajuda, pelo que v3
(`csv-timeline`) e v4 (`dfir-timeline`) funcionam ambos, e flags não suportadas são
descartadas em vez de fazer falhar o comando.

---

## 🎯 Pontuação de risco

Uma **prioridade de triagem, não uma prova** — e nunca publicada sem o seu detalhamento.```
80 / 100        Compromise confirmed by multiple sources
                CONFIDENCE HIGH · 441 events analysed

SEVERITY        45 / 45   8 critical, 10 high, 3 medium
KILL CHAIN      25 / 25   10 ATT&CK tactics, 7 decisive
REPUTATION       0 / 20   no indicator confirmed externally
CORROBORATION   10 / 10   3 YARA detections · 3 active connections to public hosts

Quatro eixos independentes, cada um com limite máximo. É isso que impede que uma regra ruidosa disparada trezentas vezes chegue ao mesmo veredito que uma intrusão genuína em múltiplos estágios.

A confiança é separada da severidade. Ela conta quantas fontes independentes concordam e se a cobertura de logging foi suficiente — portanto, uma pontuação alta baseada apenas no Sigma é lida como uma forte pista, nunca uma confirmação:

PontuaçãoConfiança altaConfiança baixa
≥ 70Comprometimento confirmado por múltiplas fontesComprometimento altamente provável — corroboração ainda limitada
≥ 45Comprometimento provável — contenção recomendadaFortes indícios de uma única fonte
≥ 25Atividade suspeita que requer qualificação
≥ 10Sinais fracos, nenhum comprometimento estabelecido
< 10Nada conclusivo

Recalculada a cada nova fonte que chega — após a linha do tempo, após o YARA, após o enriquecimento.


🚨 Alertas

Alerts

A severidade diz quão urgente. As famílias dizem de que tipo.``` FAMILIES AUTHENTICATION 4 INFECTION 1 EXECUTION 6 NETWORK 5 EVASION 5 OTHER 0

TIMESTAMP LEVEL FAMILY RULE ID 09/09 10:26 CRITICAL EVASION Windows Defender Disabled 5001 09/09 11:09 CRITICAL EVASION Volume Shadow Copies Deleted 4688 09/09 11:15 CRITICAL EVASION Security Event Log Cleared 1102 09/09 10:32 CRITICAL AUTH LSASS Memory Access 10

root@kitploit:~
Classificado primeiro pelo ID do evento, depois pelo texto. **Quando os dois divergem, o texto prevalece**: um `4688` é uma criação de processo, mas `vssadmin delete shadows` pertence a Evasion, porque é aí que um analista o vai procurar.

**As contagens da família correspondem sempre à tabela.** Calculadas sobre os alertas que realmente chegam à lista — um badge que promete linhas que não consegues encontrar é um bug, não um detalhe.

**O histograma segue a seleção.** Com uma família ativa, a janela observada é redesenhada na cor dessa família e um tick marca o seu momento de maior atividade.

**A triagem não se sinaliza a si própria.** O THOR escreve no registo de eventos do Windows enquanto corre, e analisar uma pasta de binários ofensivos faz com que o Hayabusa sinalize o nosso próprio scanner. Esses eventos são excluídos, contados à parte, e o total é reportado.

---

## 🖥️ Contexto do sistema

![System](https://assets.kitploit.com/production/public/readmes/55114/494e7e1bb34b7b03f5b7e800592cfdf863bdb9a431741fdb0f649c3b68d6c156/bb8311c0496b844b63ccd1324ed83f6341ea79b251d9709156a3007cf0856728-display-v1.webp)

O que nenhum registo de eventos te diz, capturado em modo só de leitura:```
NETWORK — 7 listening, 4 established, 8 flagged

RISK    PROTO  LOCAL              REMOTE                PROCESS
HIGH    TCP    10.20.4.11:52233   45.155.205.233:8443   powershell.exe
        → active connection to the Internet · powershell.exe should not
          open a socket · remote port 8443 associated with offensive tooling
HIGH    TCP    0.0.0.0:3389       —                     TermService.exe
        → exposed listener on RDP

ROOT C:\ — 3 flagged entries

HIGH    C:\Tools    folder   created 0 day(s) ago
        → non-standard entry at the disk root · name suggests tooling
HIGH    C:\Temp     folder   → frequently abused location

Cada socket é associado ao seu processo proprietário por PID — essa referência cruzada é o que torna powershell.exe mantendo uma conexão com um host público legível à primeira vista.

Contas locais são verificadas quanto à associação ao grupo Administradores, estado dormente-mas-habilitado e último logon. Endereços públicos de conexões estabelecidas entram automaticamente na lista de indicadores: um endereço com o qual se está a comunicar durante a triagem vale pelo menos tanto quanto um lido de uma entrada de log com três dias.


📋 Registo & auditoria

Uma triagem só vale o que a máquina concordou registar.``` LOGGING & AUDIT — coverage 51/100 · partial coverage

Blind spots: Sysmon · PowerShell (script blocks) · Process creation · Credential validation

STATE CHANNEL IMPORTANCE EVENTS ACTIVE Security critical 84 213 MISSING Sysmon critical — EMPTY PowerShell (script blocks) critical — ACTIVE System important 12 045 DISABLED WinRM important —

root@kitploit:~
Dezesseis canais classificados como **ativo / vazio / desativado / ausente** — a
distinção importa: um canal vazio está a um comando de ser corrigido, um ausente
requer uma implantação. Treze subcategorias de `auditpol` lidas em conjunto.

A pontuação de cobertura fica ao lado da pontuação de risco. *Risco 80, cobertura 51* significa que o
veredito baseia-se em metade da informação disponível — e o relatório diz isso.

---

## 🔬 YARA

![YARA](https://assets.kitploit.com/production/public/readmes/55114/df6f94f96898cb6fe67b411fb2cca4992dd405c79fddd66f62a733d980ae6712/1a10ad7edad120344352316350746e57ccb2715e60545839b807ec50b90d7fea-display-v1.webp)```
8 verdicts

VERDICT   DETECTION                   FILE                         HASH        SCORE
ALERT     YARA rule HKTL_Rubeus       C:\AD\Tools\Rubeus.exe       9c4133ee…   100
ALERT     YARA rule HKTL_AmsiTrigger  C:\AD\Tools\AmsiTrigger.exe  af7af55c…    95
ALERT     YARA rule PS_Reverse_Shell  C:\AD\Tools\PowerShellTcp…   ab1e98e8…    80
WARNING   Suspicious filename         C:\AD\Tools\svchost32.exe    6b6f1901…    —
NOTICE    File checked - signed       C:\AD\Tools\chrome.exe       c5a10bff…    —
CLEAN     Clean                       C:\AD\Tools\notepad.exe      20eded6a…    —

A página é preenchida durante a varredura, não apenas quando algo é encontrado. É isso que separa nada encontrado de nada examinado.

A varredura começa no primeiro achado real. O THOR abre cada execução com uma dúzia de linhas de banner — versão, build, hostname, diretório de trabalho, lista de argumentos, uptime — e encerra com um resumo. Nada disso descreve o host sendo examinado, então nada disso chega à visualização. Hashes de alertas são enviados para a lista de indicadores, prontos para o VirusTotal.


🔐 Selos

Cada etapa concluída é selada com um SHA-256, e o selo declara o que cobre:``` ✔ Analyse the timeline SEALED 0.1s seal 31d1991a65598de8 — content of hayabusa-output.csv

✔ Exclude the folder from Defender SEALED 6.2s seal 8f2c04b71ae93d55 — execution record (no file produced)

root@kitploit:~
Quando uma etapa produziu arquivos, o selo é o hash **do seu conteúdo** — execute-o novamente mais tarde e terá a prova de que o artefato não foi alterado. Quando não produziu nenhum, o selo cobre apenas o registro de execução, e diz isso em vez de implicar mais.

---

## 🧭 Views

Cada view tem o seu próprio URL, não recarrega nada e não perde nada — a análise vive no servidor e uma atualização completa restaura-a.

| Endereço | Conteúdo |
|---|---|
| `/` | pipeline, registo de execução, detalhe por família |
| `/alerts` | alertas por severidade e família |
| `/indicators` | indicadores com reputação VirusTotal / AbuseIPDB |
| `/system` | máquina, contas, rede, raiz do disco, cobertura |
| `/yara` | veredictos THOR, em direto durante a análise |
| `/attack` | táticas ATT&CK inferidas |
| `/summary` | relatório escrito |
| `/log` | registo completo, descarregável |

### Execução em direto

![Running](https://assets.kitploit.com/production/public/readmes/55114/7d59d87cd6f41f9d8dc66e4da743e6c6728a7156a06f9de9bdc18cdfd1fbb5cd/de22d9f23b6327fc806bbd1febb370cdca42f33eff3718eca9a0864eeb7d87e2-display-v1.webp)

Cada comando é transmitido à medida que é executado. As etapas selam uma a uma; o relógio para quando a cadeia para.

### Indicadores

![Indicators](https://assets.kitploit.com/production/public/readmes/55114/feeec5daae6714d372a341b70bc4e83ed6ceedb6780e7c9e4ecdf72856b0820d/a3032a688ed12892c1b4f706c425a68c672a7e9ba2fa692cafcddcb97b0ab55d-display-v1.webp)

Hashes, IPs e domínios extraídos da linha temporal, dos sockets ativos e dos hits YARA — cada um com a sua reputação assim que o enriquecimento é executado.

### Táticas ATT&CK

![ATT&CK](https://assets.kitploit.com/production/public/readmes/55114/fcbd2e24b8d976dd4501ea8a9f494dd2a0d5c721e29fdad39b72cbf1ae6fc84d/aa9d6b084e07dee8b3c434ba242c8a673ff27646c35797a7f220ac4634f49130-display-v1.webp)

### Painel de leitura

![Reading pane](https://assets.kitploit.com/production/public/readmes/55114/981757fcd7d07204cb68e2f519e767b6ba0fc8df2006f1b6e60f715f90f40358/5cba75a55cbfdc9b9f730ba87b534827572c038e915249ae403a4ee239c6012f-display-v1.webp)

Qualquer linha, em qualquer lugar, abre em detalhe: todos os campos, a linha de comando completa, os dados brutos do THOR. `←` `→` para navegar entre itens, `Esc` para fechar, **Copy** para JSON.

### Resumo escrito

![Summary](https://assets.kitploit.com/production/public/readmes/55114/eb0d4073a80a1a7473628edb8b1f1b65051ccaa26f22da5395e9cfb9464be65d/e87c4ef1c83d88c315c7441d45d346b3b4244938f5c44503c274840ed69687a4-display-v1.webp)

Factos observados separados dos avaliados, linguagem calibrada e uma secção explícita de lacunas de evidência que nomeia o que o registo não poderia ter mostrado.

### Definições

![Settings](https://assets.kitploit.com/production/public/readmes/55114/1918d3196caf26ade883d7aca57eb65f822343458eb39e2f4beb268828fe6dbd/54a2ce0ae8e4a042f3481f86d711ff3e81aada244d757a206500c98aab838d5d-display-v1.webp)

### Registo de execução

![Log](https://assets.kitploit.com/production/public/readmes/55114/224b63b447f6f086d19f15ee8a97b42fab165ace44352bd553a4a2ab2b3bce15/e4a05e035c4723b13fe6f64c2849bab2437d419404e09f87d94ea955850ce619-display-v1.webp)

---

## 📄 O relatório

`/api/report.html` — autónomo, escuro, treze secções numeradas, pronto para imprimir em PDF. Sem recursos externos: permanece legível daqui a dez anos numa máquina offline.

### Veredicto e pontuação

![Report — verdict](https://assets.kitploit.com/production/public/readmes/55114/3149977077614f42327c539f192eeeb863b6f374ac6b056fd8d4dfab7c1dd798/5b0115c1b5728cbfa065848281db11cdc9e559aca9af0f0274f763102bc33590-display-v1.webp)

A pontuação nunca aparece sem os seus quatro componentes, para que o leitor possa contestar um eixo em vez de um número opaco.

### Constatações e contenção

![Report — findings](https://assets.kitploit.com/production/public/readmes/55114/0c1af7a16efb412d544e669245c1fab1e065b33230e318e2045b01844f01d98d/4b2a5d02acc7b9b5942a616fd0626e1381a08cde8dd68fa30cd79e7fd66f3db6-display-v1.webp)

### Lacunas de evidência e cadeia de custódia

![Report — chain of custody](https://assets.kitploit.com/production/public/readmes/55114/6a54ae63177a4d621519899c4f4806baea394df0f9bddba763652cb193416bdf/a5566c04f369eaba37d2e17f51e56a473fb3c9288844594ed9a558054f68c0a0-display-v1.webp)

Cada etapa com o seu selo e **o que esse selo cobre** — o conteúdo de um ficheiro nomeado, ou apenas o registo de execução.

> Ao imprimir para PDF, marque *Background graphics* nas opções do navegador, caso contrário o fundo escuro é descartado.

---

## ⚙️ Configuração

### Estrutura das ferramentas

Cada ferramenta tem a sua própria pasta, e cada uma inclui um README a explicar o que deve conter.```
<workspace>/
├── tools/
│   ├── cylr/        CyLR.exe                 ← downloaded automatically
│   ├── hayabusa/    hayabusa-<version>.exe   ← downloaded automatically
│   └── thor/        thor64-lite.exe + .lic   ← manual, registration required
├── evidence/        collection archive, unpacked
└── output/          timeline, logs, enrichment cache

CyLR e Hayabusa instalam-se sozinhos. O passo Localizar as ferramentas consulta a API de releases do GitHub, escolhe o asset atual para Windows x64 e descompacta-o na pasta correta. Fixar uma versão significa que o download quebra no dia em que o upstream avança; resolvê-la significa que a consola continua a funcionar sem supervisão. Um URL fixado assume o controlo se a API estiver inacessível.

Chaves de API — todas opcionais

Tudo funciona sem uma única chave. Os passos não configurados são marcados como skipped, nunca failed.

Onde ficam as credenciais. O repositório inclui apikeys.env.example, um modelo com valores vazios. Copie-o e mantenha a cópia local:```powershell copy apikeys.env.example apikeys.env notepad apikeys.env

root@kitploit:~
| `-s` | `--server` | `SERVER` | `http://localhost:8080` | URL do servidor |
| `-t` | `--token` | `TOKEN` | `null` | Token de autenticação |
| `-u` | `--username` | `USERNAME` | `null` | Nome de usuário para autenticação básica |
| `-p` | `--password` | `PASSWORD` | `null` | Senha para autenticação básica |
| `-k` | `--insecure` | `INSECURE` | `false` | Ignorar erros de certificado TLS |
| `-c` | `--config` | `CONFIG` | `null` | Arquivo de configuração |
| `-v` | `--verbose` | `VERBOSE` | `false` | Saída detalhada |
| `-d` | `--debug` | `DEBUG` | `false` | Saída de depuração |
| `-q` | `--quiet` | `QUIET` | `false` | Modo silencioso |
| `-f` | `--format` | `FORMAT` | `json` | Formato de saída |
| `-o` | `--output` | `OUTPUT` | `null` | Arquivo de saída |
| `-n` | `--no-color` | `NO_COLOR` | `false` | Desabilitar saída colorida |
| `-h` | `--help` | `HELP` | `false` | Mostrar mensagem de ajuda |
| `-V` | `--version` | `VERSION` | `false` | Mostrar versão |

### Exemplos

```bash
# Iniciar o servidor
$ ./server

# Iniciar o servidor em uma porta específica
$ ./server -p 8080

# Iniciar o servidor com um arquivo de configuração
$ ./server -c config.yaml

# Iniciar o servidor com saída detalhada
$ ./server -v

# Iniciar o servidor com saída de depuração
$ ./server -d

# Iniciar o servidor em modo silencioso
$ ./server -q

# Iniciar o servidor com um formato de saída específico
$ ./server -f json

# Iniciar o servidor com um arquivo de saída
$ ./server -o output.json

# Iniciar o servidor com saída colorida desabilitada
$ ./server -n

# Mostrar mensagem de ajuda
$ ./server -h

# Mostrar versão
$ ./server -V

Configuração

O servidor pode ser configurado usando um arquivo de configuração. O formato do arquivo de configuração é YAML. O arquivo de configuração padrão é config.yaml.

root@kitploit:~
# Endereço do servidor
server:
  # Endereço de escuta
  address: "0.0.0.0"
  # Porta de escuta
  port: 8080
  # Tempo limite de leitura
  read_timeout: 10s
  # Tempo limite de escrita
  write_timeout: 10s
  # Tempo limite de ociosidade
  idle_timeout: 10s
  # Tempo limite de desligamento
  shutdown_timeout: 10s
  # Habilitar TLS
  tls: false
  # Arquivo de certificado TLS
  cert_file: ""
  # Arquivo de chave TLS
  key_file: ""
  # Habilitar autenticação
  auth: false
  # Token de autenticação
  token: ""
  # Nome de usuário para autenticação básica
  username: ""
  # Senha para autenticação básica
  password: ""
  # Habilitar CORS
  cors: false
  # Origens permitidas para CORS
  cors_origins: []
  # Habilitar limitação de taxa
  rate_limit: false
  # Limite de taxa
  rate_limit_value: 100
  # Habilitar registro de logs
  log: false
  # Nível de log
  log_level: "info"
  # Formato de log
  log_format: "json"
  # Arquivo de log
  log_file: ""
  # Habilitar métricas
  metrics: false
  # Caminho das métricas
  metrics_path: "/metrics"
  # Habilitar verificação de integridade
  health: false
  # Caminho da verificação de integridade
  health_path: "/health"
  # Habilitar pprof
  pprof: false
  # Caminho do pprof
  pprof_path: "/debug/pprof"
  # Habilitar interface web
  web: false
  # Caminho da interface web
  web_path: "/"
  # Habilitar API
  api: false
  # Caminho da API
  api_path: "/api"
  # Habilitar GraphQL
  graphql: false
  # Caminho do GraphQL
  graphql_path: "/graphql"
  # Habilitar WebSocket
  websocket: false
  # Caminho do WebSocket
  websocket_path: "/ws"
  # Habilitar gRPC
  grpc: false
  # Porta do gRPC
  grpc_port: 9090
  # Habilitar HTTP/2
  http2: false
  # Habilitar HTTP/3
  http3: false
  # Porta do HTTP/3
  http3_port: 8443
  # Habilitar QUIC
  quic: false
  # Porta do QUIC
  quic_port: 8443
  # Habilitar TCP
  tcp: false
  # Porta do TCP
  tcp_port: 8080
  # Habilitar UDP
  udp: false
  # Porta do UDP
  udp_port: 8080
  # Habilitar Unix Socket
  unix: false
  # Caminho do Unix Socket
  unix_path: "/tmp/server.sock"
  # Habilitar systemd
  systemd: false
  # Habilitar systemd socket
  systemd_socket: false
  # Habilitar systemd notify
  systemd_notify: false
  # Habilitar systemd watchdog
  systemd_watchdog: false
  # Habilitar systemd journal
  systemd_journal: false
  # Habilitar systemd log
  systemd_log: false
  # Habilitar systemd log level
  systemd_log_level: "info"
  # Habilitar systemd log format
  systemd_log_format: "json"
  # Habilitar systemd log file
  systemd_log_file: ""
  # Habilitar systemd log output
  systemd_log_output: ""
  # Habilitar systemd log target
  systemd_log_target: ""
  # Habilitar systemd log identifier
  systemd_log_identifier: ""
  # Habilitar systemd log facility
  systemd_log_facility: ""
  # Habilitar systemd log priority
  systemd_log_priority: ""
  # Habilitar systemd log tag
  systemd_log_tag: ""
  # Habilitar systemd log source
  systemd_log_source: ""
  # Habilitar systemd log line
  systemd_log_line: ""
  # Habilitar systemd log file
  systemd_log_file: ""
  # Habilitar systemd log function
  systemd_log_function: ""
  # Habilitar systemd log code
  systemd_log_code: ""
  # Habilitar systemd log errno
  systemd_log_errno: ""
  # Habilitar systemd log user
  systemd_log_user: ""
  # Habilitar systemd log group
  systemd_log_group: ""
  # Habilitar systemd log pid
  systemd_log_pid: ""
  # Habilitar systemd log tid
  systemd_log_tid: ""
  # Habilitar systemd log comm
  systemd_log_comm: ""
  # Habilitar systemd log exe
  systemd_log_exe: ""
  # Habilitar systemd log cmdline
  systemd_log_cmdline: ""
  # Habilitar systemd log cap
  systemd_log_cap: ""
  # Habilitar systemd log audit
  systemd_log_audit: ""
  # Habilitar systemd log unit
  systemd_log_unit: ""
  # Habilitar systemd log slice
  systemd_log_slice: ""
  # Habilitar systemd log cgroup
  systemd_log_cgroup: ""
  # Habilitar systemd log session
  systemd_log_session: ""
  # Habilitar systemd log owner
  systemd_log_owner: ""
  # Habilitar systemd log boot
  systemd_log_boot: ""
  # Habilitar systemd log machine
  systemd_log_machine: ""
  # Habilitar systemd log hostname
  systemd_log_hostname: ""
  # Habilitar systemd log kernel
  systemd_log_kernel: ""
  # Habilitar systemd log architecture
  systemd_log_architecture: ""
  # Habilitar systemd log os
  systemd_log_os: ""
  # Habilitar systemd log container
  systemd_log_container: ""
  # Habilitar systemd log runtime
  systemd_log_runtime: ""
  # Habilitar systemd log scope
  systemd_log_scope: ""
  # Habilitar systemd log user unit
  systemd_log_user_unit: ""
  # Habilitar systemd log user slice
  systemd_log_user_slice: ""
  # Habilitar systemd log user cgroup
  systemd_log_user_cgroup: ""
  # Habilitar systemd log user session
  systemd_log_user_session: ""
  # Habilitar systemd log user owner
  systemd_log_user_owner: ""
  # Habilitar systemd log user boot
  systemd_log_user_boot: ""
  # Habilitar systemd log user machine
  systemd_log_user_machine: ""
  # Habilitar systemd log user hostname
  systemd_log_user_hostname: ""
  # Habilitar systemd log user kernel
  systemd_log_user_kernel: ""
  # Habilitar systemd log user architecture
  systemd_log_user_architecture: ""
  # Habilitar systemd log user os
  systemd_log_user_os: ""
  # Habilitar systemd log user container
  systemd_log_user_container: ""
  # Habilitar systemd log user runtime
  systemd_log_user_runtime: ""
  # Habilitar systemd log user scope
  systemd_log_user_scope: ""
  # Habilitar systemd log user unit
  systemd_log_user_unit: ""
  # Habilitar systemd log user slice
  systemd_log_user_slice: ""
  # Habilitar systemd log user cgroup
  systemd_log_user_cgroup: ""
  # Habilitar systemd log user session
  systemd_log_user_session: ""
  # Habilitar systemd log user owner
  systemd_log_user_owner: ""
  # Habilitar systemd log user boot
  systemd_log_user_boot: ""
  # Habilitar systemd log user machine
  systemd_log_user_machine: ""
  # Habilitar systemd log user hostname
  systemd_log_user_hostname: ""
  # Habilitar systemd log user kernel
  systemd_log_user_kernel: ""
  # Habilitar systemd log user architecture
  systemd_log_user_architecture: ""
  # Habilitar systemd log user os
  systemd_log_user_os: ""
  # Habilitar systemd log user container
  systemd_log_user_container: ""
  # Habilitar systemd log user runtime
  systemd_log_user_runtime: ""
  # Habilitar systemd log user scope
  systemd_log_user_scope: ""
``````ini
# apikeys.env — sits next to launch.bat
VT_API_KEY=your_virustotal_key
ABUSEIPDB_API_KEY=your_abuseipdb_key

AI_PROVIDER=groq
AI_API_KEY=your_provider_key
AI_MODEL=

Onde obtê-las

ChaveNível gratuitoRegisto
VT_API_KEY4 pedidos/minuto, 500/diavirustotal.com
ABUSEIPDB_API_KEY1 000 verificações/diaabuseipdb.com
AI_API_KEYvaria — Groq e Ollama são gratuitosconsulte a tabela de fornecedores abaixo

Também as pode definir como variáveis de ambiente em vez de um ficheiro, o que é normalmente o que pretende num contentor ou numa estação de trabalho de resposta partilhada:```powershell $env:VT_API_KEY = "..." python -m dfirconsole

root@kitploit:~
### Provedores de resumo

Cada um tem seu próprio endpoint, conectado explicitamente, então escolher Groq nunca envia sua
chave para OpenAI.

| Provedor | Endpoint | Modelo padrão |
|---|---|---|
| Anthropic | `api.anthropic.com` | `claude-sonnet-4-6` |
| OpenAI | `api.openai.com/v1` | `gpt-4o` |
| Groq | `api.groq.com/openai/v1` | `llama-3.3-70b-versatile` |
| Mistral | `api.mistral.ai/v1` | `mistral-large-latest` |
| OpenRouter | `openrouter.ai/api/v1` | `anthropic/claude-sonnet-4` |
| Ollama | `localhost:11434/v1` | `llama3.1` — sem chave |
| None | — | write-up local |

Camadas gratuitas pequenas são tratadas: Groq permite 12 000 tokens por minuto, então o
payload é medido em relação a esse teto e, em caso de rejeição por tamanho, é reenviado com
menos alertas e detalhes mais curtos. O veredito sobrevive; apenas a evidência de suporte
diminui.

O modelo é mantido a um padrão — observado separado do avaliado, linguagem calibrada,
declarações quantificadas, lacunas de evidência explícitas e a explicação benigna considerada.

---

## 📟 Referência da CLI```
python -m dfirconsole                  console on 127.0.0.1:8787
python -m dfirconsole --port 9000      custom port
python -m dfirconsole --demo           synthetic data, no collection
python preflight.py                    environment check
python preflight.py D:\CASE42          check another workspace

python -m pytest tests/ -q             115 tests
python tests/ui_check.py               browser: full chain, reading pane
python tests/ui_nav.py                 browser: navigation, counts, histogram
python tests/ui_flood.py               browser: 6000 log lines at once

Execuções no navegador precisam de pip install playwright && playwright install chromium.


🔧 Resolução de problemas

"Administrator rights required" / exclusão do Defender recusada O Kage não está elevado. Feche-o, clique com o botão direito em launch.bat → Executar como administrador, ou abra o PowerShell como administrador primeiro.

did not find executable … python.exe O seu Python veio da Microsoft Store, que instala por utilizador e desaparece numa sessão de administrador. Reinstale a partir de python.org, para todos os utilizadores.

O CyLR não produziu nenhum arquivo / a recolha está vazia Adicione --force-native em Settings → CyLR arguments. Isto abandona a leitura NTFS em bruto em favor da API do Windows, que funciona quando a deteção de partições falha num disco.

O THOR inicia e depois fica em silêncio A sua licença está em falta ou expirou, ou signatures\ não foi copiado para junto do binário. Execute preflight.py para confirmar.


🐧 Versão Linux — em progresso

Uma cadeia de triagem Linux está a ser construída na mesma consola, mesmas vistas, mesmo modelo de pontuação. Os parsers já são agnósticos à plataforma; o que muda é a camada de evidência:

WindowsLinux (em progresso)
Recolha CyLRRecolha UAC / CyLR Linux
EVTX + Hayabusa Sigmajournald / auth.log / syslog + Sigma
Get-LocalUser · auditpol/etc/passwd · /etc/shadow · regras auditd
netstat -ano + tasklistss -tunap
Anomalias na raiz do disco/tmp · /dev/shm · /var/tmp · cron · unidades systemd
THOR LiteTHOR Lite para Linux

Dê uma estrela ou siga o repositório para acompanhar o lançamento.


🙏 Créditos

O Kage é uma consola, não um coletor nem um scanner. O trabalho pesado pertence a estes projetos, e eles merecem a estrela muito mais do que este repositório:

FerramentaRepositórioPapel na cadeia
CyLRorlikoski/CyLRrecolha de artefactos em tempo real sobre NTFS em bruto
HayabusaYamato-Security/hayabusacorrelação Sigma, geração de cronologia
SigmaSigmaHQ/sigmaas regras de deteção por trás de cada alerta
THOR LiteNextronSystems/thor-liteanálise YARA e IOC
VirusTotalvirustotal.comreputação de hash, IP e domínio
AbuseIPDBabuseipdb.compontuação de abuso de IP
MITRE ATT&CKattack.mitre.orgo framework de táticas por trás do eixo da kill-chain

Respeite a licença e os termos de utilização de cada projeto — o THOR Lite em particular requer registo na Nextron e não é redistribuível.


🌐 Ecossistema

FerramentaDomínio
☁️Kumo 蜘蛛OSINT e reconhecimento de domínios
🌑Kage 影triagem DFIR de hosts

⚠️ Apenas para resposta a incidentes autorizada. Execute o Kage apenas em hosts que possui ou para os quais tem permissão escrita explícita de examinar.

Construído para aqueles que chegam depois. 影

Baixar ferramenta