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
Anvil — Anvil é uma ferramenta de avaliação de superfície de ataque com foco em runtime para aplicações thick client do Windows, desenvolvida para testadores de penetração e pesquisadores de segurança que conduzem avaliações direcionadas de segurança de aplicações. Ela cobre múltiplas classes de ataque em uma única execução direcionada. | Kitploit
Ferramentas/GitHubGitHub/shellkraft/anvil
Escalada de PrivilégiosReconhecimentoAnálise de VulnerabilidadesExploraçãoPós-ExploraçãoTestes de PenetraçãoAnálise de BináriosRed Teaming
GitHubshellkraft/anvil

Anvil

Ver Repositório
3744há 5 mesesRevisado pelo Kitploit

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 →

Sobre

Anvil é uma ferramenta de avaliação de superfície de ataque com foco em runtime para aplicações thick client do Windows, desenvolvida para testadores de penetração e pesquisadores de segurança que conduzem avaliações direcionadas de segurança de aplicações. Ela cobre múltiplas classes de ataque em uma única execução direcionada.

Compartilhar

logotipo


Avaliação de escalada de privilégios e superfície de ataque baseada em tempo de execução para thick clients Windows.

Anvil é uma ferramenta de avaliação de escalada de privilégios e superfície de ataque baseada em tempo de execução para aplicações thick client Windows. Em vez de escanear o sistema de arquivos às cegas, ela combina captura Procmon com Windows AccessCheck para reportar apenas caminhos que são observados em tempo de execução e confirmados como graváveis por usuários padrão, eliminando o ruído de falsos positivos que aflige ferramentas genéricas de enumeração.


Índice

  • Principais Funcionalidades
  • Como Funciona
  • Módulos
  • Requisitos
  • Ferramentas Sysinternals
  • Instalação
  • Distribuição
  • Uso
  • Exemplos
  • Saída
  • Modelo de Severidade
  • Filtros
  • Aviso Legal

Principais Funcionalidades

A maioria das ferramentas de avaliação de thick clients cobre uma ou duas classes de ataque. Anvil foi construída em torno da ideia de que observação em tempo de execução, explorabilidade verificada por ACL e uma ampla superfície de ataque devem coexistir na mesma execução direcionada — com um pipeline de portões que mantém a saída acionável.

Pipeline de Falsos Positivos

Cada candidato passa por quatro portões sequenciais antes de ser reportado.

Portões Rígidos

  • A integridade do processo deve ser High ou SYSTEM IL
  • O caminho não deve estar dentro de System32, SysWOW64 ou Program Files
  • Diretório gravável por um usuário padrão — verificado via API AccessCheck do Windows

Portões Lógicos de Módulo

  • Symlink: flags de disposição (Supersede, OverwriteIf, etc.) + proteção de gravabilidade entre usuários
  • COM: CLSID do registro correlacionado a um caminho de DLL ausente ou gravável
  • Binário: ordem PATH verificada — entradas graváveis que aparecem antes de System32 apenas
  • Caminho sem aspas: diretórios fantasmas intermediários confirmados como graváveis, caminhos de kernel .sys excluídos

Como Funciona

  1. Resolução do Alvo
    A ferramenta resolve o alvo para um caminho executável (a partir de --exe, --service ou --pid). Se for um serviço, ServiceInfo é recuperado com PID e estado atuais.

  2. Captura Procmon

    • Para um serviço, o Procmon é iniciado e então o serviço é reiniciado de forma limpa (com esperas de transição de estado). O novo PID é capturado.
    • Para um EXE comum, o processo é iniciado com integridade Medium (usando um token do Explorer duplicado) para simular um usuário padrão. O PID é registrado.

    O nível de integridade do processo é lido imediatamente após a inicialização (enquanto o processo está ativo) e armazenado no contexto.

  3. Análise Filtrada por Módulo
    Cada módulo solicita uma exportação CSV filtrada do Procmon usando seu próprio filtro .pmc (armazenado em filters/). O CSV é analisado e uma série de portões são aplicados:

    • Integridade ≥ High
    • Caminho não está em um diretório protegido do sistema
    • Diretório gravável por um usuário padrão (AccessCheck)
    • Lógica adicional específica do módulo (ex.: disposição para symlinks, correlação registro-arquivo para COM)
  4. Correlação Estática
    O módulo com realiza uma passagem estática adicional — escaneando o binário alvo em busca de CLSIDs embutidos e verificando cada um contra HKLM e HKCU — para revelar oportunidades de sequestro não exercitadas durante a janela de captura. Estes são sinalizados com uma tag .


Arquitetura

root@kitploit:~
flowchart TB
    %% Phase 1
    subgraph Phase1["Phase 1: Target & Runtime Discovery"]
        TR["Target Resolver<br/>--exe / --service / --pid"] -->
        IL["Integrity Gate<br/>Medium-IL launch / Service restart"] -->
        PM["Procmon Engine<br/>Runtime FS / Reg / Pipe events"]
    end

    %% Phase 2
    subgraph Phase2["Phase 2: Signal Reduction"]
        direction LR
        PF["Per-Module PMC Filters<br/>High-signal traces only"] -->
        CSV["Filtered CSV Export"]
    end

    %% Phase 3
    subgraph Phase3["Phase 3: Exploitability Gates"]
        HG["Hard Gates<br/>High-Integrity target<br/>Not protected path"] -->
        ACL["AccessChk Validation<br/>Writable by standard user"] -->
        LG["Logic Gates<br/>Module-specific rules"]
    end

    %% Phase 4
    subgraph Phase4["Phase 4: Correlation"]
        RT["Runtime Findings"]
        ST["Static Correlation<br/>COM: CLSID binary scan / registry"]
    end

    %% Phase 5
    subgraph Phase5["Phase 5: Reporting"]
        SV["Severity Engine<br/>P1–P5"] --> OUT["Console Output"]
        SV --> JSON["JSON Report"]
        SV --> HTML["HTML Report"]
    end

    %% Cross-phase flow
    PM --> PF
    CSV --> HG
    LG --> RT
    ST -.-> RT
    RT --> SV

    %% Styling
    classDef p1 fill:#0f2a44,stroke:#4cc9f0,color:#e6f1ff
    classDef p2 fill:#2b193d,stroke:#f72585,color:#fde8f3
    classDef p3 fill:#1f2d1c,stroke:#7ae582,color:#eaf7ea
    classDef p4 fill:#3a1f1f,stroke:#ffb703,color:#fff3d6
    classDef p5 fill:#0b2e2a,stroke:#00f5d4,color:#e6fffb

    class Phase1 p1
    class Phase2 p2
    class Phase3 p3
    class Phase4 p4
    class Phase5 p5
    linkStyle default stroke:#9aa4b2,stroke-width:2px

Comparação



Módulos

Todos os módulos baseados em Procmon exigem um arquivo de filtro .pmc correspondente no diretório filters/ (veja Filtros).


Requisitos

Python

  • Python 3.8 ou superior
  • Deve ser executado como Administrador
  • Windows 10 / Server 2016 ou mais recente

Pacotes Python

Anvil instala automaticamente suas duas dependências na primeira execução. Você também pode instalá-las manualmente:

root@kitploit:~
pip install rich pefile
root@kitploit:~
pip install rich>=13.0 pefile>=2023.2.7

Ferramentas Sysinternals

Anvil utiliza três binários Sysinternals.

Ordem de Resolução

Em cada execução, Anvil resolve cada ferramenta usando a seguinte prioridade:

  1. Flag explícita — --procmon, --handle ou --accesschk (veja abaixo)
  2. Cache do registro — HKCU\Software\Anvil (gravado na primeira resolução bem-sucedida)
  3. PATH — pesquisa padrão where
  4. Download automático — baixado de live.sysinternals.com e armazenado em %LOCALAPPDATA%\Anvil\sysinternals\

Uma vez que uma ferramenta é resolvida por qualquer rota, seu caminho é gravado no cache do registro. Execuções subsequentes ignoram completamente as etapas 1–3 e vão direto ao caminho em cache.

Falha no Download

Se uma ferramenta não puder ser baixada (sem internet, firewall ou proxy), Anvil imprime um erro estruturado e sai imediatamente. Uma mensagem de erro é exibida listando a(s) ferramenta(s) ausente(s) e a flag a ser usada.

Fornecendo Binários Manualmente

Forneça o caminho para qualquer binário via sua flag. Anvil irá copiá-lo para %LOCALAPPDATA%\Anvil\sysinternals\ e gravar o caminho no cache do registro — a flag nunca mais precisará ser usada após a primeira execução.

root@kitploit:~
python anvil.py --exe "C:\App\target.exe" --procmon   "D:\Tools\Procmon64.exe" --handle    "D:\Tools\handle.exe" --accesschk "D:\Tools\accesschk.exe"

Instalação

root@kitploit:~
# Clone o repositório
git clone https://github.com/shellkraft/Anvil.git
cd Anvil

# Execute — as dependências são instaladas automaticamente na primeira varredura
python.exe anvil.py

Dica: Sempre inicie seu terminal com Executar como Administrador antes de executar o Anvil.


Distribuição

Compilar para um executável autônomo

Requer PyInstaller (pip install pyinstaller):

root@kitploit:~
python -m PyInstaller --onefile --console --add-data "filters;filters" --add-data "modules/logo.png;." --icon .\modules\logo.ico --name Anvil anvil.py

O binário de saída estará em dist\Anvil.exe. Nenhuma instalação do Python é necessária na máquina alvo.

Nota: O Windows SmartScreen pode bloquear o executável compilado na primeira execução, pois ele não está assinado.

Binário pré-compilado

Um Anvil.exe pré-compilado está disponível na página de Releases — se confiar em binários aleatórios da internet está no seu modelo de ameaça.

VersãoSHA-256VirusTotal
V1.0.00ecf5a62...4/72

O SHA-256 pode ser verificado com certutil -hashfile Anvil.exe SHA256 (Windows) ou sha256sum Anvil.exe (Linux).


Uso

root@kitploit:~
python anvil.py [--exe CAMINHO | --service NOME | --pid PID] [opções]

Alvo (um obrigatório)

FlagDescrição
--exe CAMINHOExecutável alvo. Iniciado com IL Medium para captura Procmon.
--service NOMENome do serviço Windows. Executável resolvido do registro; serviço reiniciado para capturar a inicialização.
--pid PIDAnexar a um processo já em execução. Procmon captura atividade em andamento.

Seleção de Módulos

FlagPadrãoDescrição
--modules LISTAallLista separada por vírgulas de módulos a executar.

Nomes dos módulos: dll, com, registry, binary, configs, installdir, memory, symlink, unquoted, pesec, pipes

Caminhos Sysinternals

Captura

FlagPadrãoDescrição
--procmon-runtime SEG30Janela de captura Procmon em segundos. Aumente para aplicativos de inicialização lenta.

Saída


Exemplos

Varredura básica de uma aplicação desktop:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --report report.html

Janela de captura mais longa para um aplicativo de inicialização lenta:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --procmon-runtime 60 --scan-install-dir

Alvo como serviço Windows:

root@kitploit:~
python anvil.py --service MyAppSvc --modules dll,binary,unquoted,registry

Anexar a um processo já em execução:

root@kitploit:~
python anvil.py --pid 4872 --report report.html --verbose

Executar apenas módulos específicos:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules dll,symlink,unquoted

Varrer memória do processo por strings personalizadas adicionais:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules memory --memory-strings "InternalSecret,DevPassword"

Máquina com ar desconectado — forneça Sysinternals manualmente (copiado uma vez):

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --procmon "E:\Sysint\Procmon64.exe" --handle "E:\Sysint\handle.exe" --accesschk "E:\Sysint\accesschk.exe"

Saída

Terminal

Cores por severidade com blocos de detalhes opcionais --verbose. Requer o pacote rich (instalado automaticamente).

Imagem

JSON (--report findings.json)

Array legível por máquina de objetos de achado:

root@kitploit:~
[
  {
    "severity": "P1",
    "module": "DLL Hijacking",
    "message": "[System→User] Phantom DLL: version.dll",
    "detail": "DLL name   : version.dll\nAttempted  : C:\\ProgramData\\MyApp\\version.dll\n..."
  }
]

HTML (--report report.html) [Recomendado]

Relatório autocontido em um único arquivo com:

  • Resumo executivo e detalhamento de severidade
  • Tabelas de achados por módulo
  • Filtragem por severidade ou classe de vulnerabilidade
  • Detalhes completos ao expandir
  • Metadados da varredura (alvo, timestamps, nível de integridade)
Imagem

Modelo de Severidade


Filtros

Todos os arquivos de filtro .pmc estão incluídos no diretório filters/ do repositório — nenhuma configuração necessária. Módulos baseados em Procmon os detectarão automaticamente.

Recriando um filtro

Se um arquivo de filtro for perdido ou corrompido, recrie-o no Procmon usando as regras acima: Filter → Filter… para configurar as condições, depois File → Export Configuration… e salve em filters/<nome>.pmc.

Anvil detectará automaticamente o arquivo .pmc na próxima execução para aquele módulo.


Aviso Legal

Anvil é projetada para pesquisa de segurança, caça a bugs (bug bounty) e testes de penetração autorizados. Use-a apenas em sistemas que você possui ou para os quais possui permissão explícita por escrito para avaliar.

Notas operacionais

  • Anvil reinicia serviços durante a captura — isso interrompe brevemente o serviço alvo na máquina avaliada
  • O módulo de memória anexa a um processo ativo; certifique-se de que isso é aceitável no ambiente alvo antes de executar.
  • É necessário executar como Administrador — certifique-se de que isso está alinhado com as regras de engajamento da avaliação.
Baixar ferramenta
[Correlação Estática]
  • Relatório
    Os achados são exibidos no terminal (com código de cores) e opcionalmente escritos em JSON ou em um relatório HTML independente.

  • FuncionalidadeAnviLSpartacusRobberwinPEASProcmon
    Descoberta automatizada✅✅✅✅❌
    Descoberta verificada em tempo de execução✅❌❌❌✅
    Detecção de DLL fantasma✅✅❌❌◐
    Análise ciente da ordem de busca✅❌❌❌❌
    Validação de gravabilidade baseada em ACL✅ (AccessChk)◐◐Básico❌
    Filtragem de sinal por módulo✅ (filtros .pmc)❌❌❌❌
    Eliminação de falsos positivos (pipeline com portões)✅❌❌❌❌
    Reinicialização de serviço e recaptura de PID✅❌❌❌❌
    Simulação de usuário Medium-IL✅❌❌❌❌
    Sequestro de DLL (ciente de thick client)✅❌❌◐❌
    Correlação de sequestro COM✅❌❌❌❌
    Análise de ACL de pipe nomeado / impersonação✅❌❌❌❌
    Detecção de abuso de symlink / junção✅❌◐◐❌
    Segredos em memória (varredura de processo ativo)✅❌❌◐❌
    Análise de segurança/mitigação PE✅❌❌◐❌
    Avaliação de escalada de privilégio (não exploit)✅✅✅❌❌
    Exploração automatizada❌✅✅❌❌
    Pontuação de confiança / severidade✅ (P1–P5)❌❌❌❌
    Análise específica para alvo (exe / svc / pid)✅❌❌❌✅
    Relatórios estruturados (JSON / HTML)✅❌❌TXT❌
    Distribuição binária autocontida✅✅✅✅✅
    MóduloFlagO Que Verifica
    Sequestro de DLLdllEventos CreateFile para .dll — DLLs fantasmas e DLLs carregadas em diretórios graváveis
    Sequestro COMcomChaves de registro do servidor COM graváveis por usuários padrão; varredura binária por ProgIDs
    Sequestro BináriobinaryEventos CreateFile para .exe — plantio de EXE fantasma e diretórios de EXE graváveis
    Configurações InsegurasconfigsAcesso a arquivos de configuração (.ini, .xml, .json, .yaml, etc.) a partir de diretórios graváveis
    Diretório de InstalaçãoinstalldirACL raiz, EXEs com manifesto de elevação e subdiretórios graváveis
    Strings em MemóriamemoryVarredura de memória de processo ativo por credenciais, tokens, chaves de API, JWTs, strings de conexão
    Ataques SymlinksymlinkVetores de junção e symlink em caminhos temporários / appdata graváveis por usuário
    Caminho de Serviço Sem AspasunquotedServiços com ImagePaths sem aspas onde diretórios fantasmas intermediários são graváveis
    Escalada de Privilégio via RegistroregistryChaves de registro graváveis por usuários padrão que controlam comportamento de serviço/aplicação
    Flags de Segurança PEpesecAusência de ASLR, DEP, CFG, SafeSEH e Authenticode em binários alvo
    ACL de Pipe NomeadopipesPipes nomeados com DACLs permissivas ou ACEs capazes de impersonação
    BinárioUsado PorDownload
    Procmon64.exeTodos os módulos baseados em ProcmonProcessMonitor.zip
    handle.exeMódulo de ACL de Pipe NomeadoHandle.zip
    accesschk.exeMódulo de ACL de Pipe Nomeado — enumeração de DACL de pipeAccessChk.zip
    FlagDescrição
    --procmon CAMINHOCaminho para Procmon64.exe. Copiado para %LOCALAPPDATA%\Anvil\sysinternals\
    --handle CAMINHOCaminho para handle.exe. Copiado para %LOCALAPPDATA%\Anvil\sysinternals\
    --accesschk CAMINHOCaminho para accesschk.exe. Copiado para %LOCALAPPDATA%\Anvil\sysinternals\
    FlagPadrãoDescrição
    --report ARQUIVO—Gerar um relatório — a extensão determina o formato: .json para JSON, .html (ou qualquer outro) para um relatório HTML autocontido.
    --verbosedesligadoImprimir blocos de detalhes completos de achados no terminal.
    --no-colordesligadoDesabilitar saída de cores ANSI.
    --skip-authenticodedesligadoPular verificações de assinatura Authenticode (mais rápido para diretórios de instalação grandes).
    --scan-install-dirdesligadoIncluir todas as DLLs no diretório de instalação nas verificações de segurança PE.
    --memory-strings STR,...—Strings adicionais separadas por vírgulas para pesquisar na memória do processo.
    NívelRótuloCVSS TípicoSignificado
    P1Crítico8.0 – 8.8Escalada de privilégio acionada automaticamente (sem interação do usuário)
    P2Alto7.0 – 7.9Explorável com interação do usuário ou gatilho mais fraco
    P3Configuração Incorreta4.0 – 6.9Caminhos sem aspas, mitigações ausentes — não diretamente explorável
    P4Baixo Impacto0.1 – 3.9Vetores informativos com impacto limitado no mundo real
    P5InformativoN/AContexto e observações, não vulnerabilidades
    ArquivoMóduloRegras de Filtro Principais
    filters/dll.pmcSequestro de DLLOperation is CreateFile, Path ends with .dll
    filters/binary.pmcSequestro BinárioOperation is CreateFile, Path ends with .exe
    filters/config.pmcConfigurações InsegurasOperation is CreateFile (filtro de extensão no código)
    filters/com.pmcSequestro COMOperation is RegQueryKey, Path contains HKLM
    filters/symlink.pmcAtaques SymlinkOperation is CreateFile