
Anvil es una herramienta de evaluación de superficies de ataque que prioriza el tiempo de ejecución para aplicaciones de cliente grueso de Windows, creada para probadores de penetración e investigadores de seguridad que realizan evaluaciones de seguridad de aplicaciones específicas. Cubre múltiples clases de ataque en una única ejecución focalizada.
Escalada de privilegios y evaluación de superficie de ataque en tiempo de ejecución para clientes pesados de Windows.
Anvil es una herramienta de escalada de privilegios y evaluación de superficie de ataque basada en tiempo de ejecución para aplicaciones cliente pesadas de Windows. En lugar de escanear el sistema de archivos a ciegas, combina la captura de Procmon con Windows AccessCheck para informar solo aquellas rutas que son observadas en tiempo de ejecución y confirmadas como escribibles por usuarios estándar, eliminando el ruido de falsos positivos que afecta a las herramientas de enumeración genéricas.
La mayoría de las herramientas de evaluación de clientes pesados cubren una o dos clases de ataque. Anvil está construido en torno a la idea de que la observación en tiempo de ejecución, la explotabilidad verificada por ACL y una amplia superficie de ataque deberían coexistir en una misma ejecución dirigida, con un pipeline de compuertas que mantenga la salida procesable.
Cada candidato pasa por cuatro compuertas secuenciales antes de ser reportado.
Compuertas Duras
AccessCheck de WindowsCompuertas de Lógica de Módulo
Supersede, OverwriteIf, etc.) + guarda de escritura entre usuarios.sys excluidasResolución del Objetivo
La herramienta resuelve el objetivo a una ruta de ejecutable (desde --exe, --service o --pid). Si es un servicio, se recupera ServiceInfo con el PID y estado actuales.
Captura con Procmon
El nivel de integridad del proceso se lee inmediatamente después del lanzamiento (mientras el proceso está vivo) y se almacena en el contexto.
Análisis Filtrado por Módulo
Cada módulo solicita una exportación CSV filtrada de Procmon usando su propio filtro .pmc (almacenado en filters/). El CSV se analiza y se aplican varias compuertas:
Correlación Estática
El módulo com realiza una pasada estática adicional: escanea el binario objetivo en busca de CLSID incrustados y verifica cada uno contra HKLM y HKCU para descubrir oportunidades de secuestro no ejercidas durante la ventana de captura. Estas se marcan con una etiqueta [Correlación Estática].
Reporte
Los hallazgos se imprimen en la terminal (con código de colores) y opcionalmente se escriben en JSON o un reporte HTML independiente.
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