
Anvil è uno strumento di valutazione della superficie d'attacco runtime-first per applicazioni Windows thick client, sviluppato per penetration tester e ricercatori di sicurezza che conducono valutazioni mirate della sicurezza delle applicazioni. Copre multiple classi di attacco in un singolo run mirato.
Escalation dei privilegi e valutazione della superficie d'attacco basate sul runtime per client Windows spessi (thick client).
Anvil è uno strumento di escalation dei privilegi e valutazione della superficie d'attacco per applicazioni Windows thick client, basato sul runtime. Invece di scansionare ciecamente il filesystem, abbina la cattura di Procmon con l'API Windows AccessCheck per segnalare solo quei percorsi che vengono sia osservati a runtime sia confermati scrivibili da utenti standard, eliminando il rumore dei falsi positivi che affligge gli strumenti di enumerazione generici.
La maggior parte degli strumenti di valutazione dei thick client copre una o due classi di attacco. Anvil è costruito sull'idea che l'osservazione a runtime, l'exploitability verificata tramite ACL e un'ampia superficie d'attacco dovrebbero coesistere nella stessa esecuzione mirata, con una pipeline a gate che mantiene i risultati utilizzabili.
Ogni candidato attraversa quattro gate sequenziali prima di essere segnalato.
Gate Rigidi
AccessCheck di WindowsGate Logici dei Moduli
Supersede, OverwriteIf, ecc.) + guardia di scrivibilità cross-user.sys del kernel esclusiRisoluzione del Target
Lo strumento risolve il target in un percorso eseguibile (da --exe, --service o --pid). Se si tratta di un servizio, vengono recuperati ServiceInfo, PID corrente e stato.
Cattura Procmon
Il livello di integrità del processo viene letto immediatamente dopo l'avvio (mentre il processo è ancora attivo) e memorizzato nel contesto.
Analisi Filtrata per Modulo
Ogni modulo richiede un esportazione CSV filtrata da Procmon utilizzando il proprio filtro .pmc (salvato in filters/). Il CSV viene analizzato e vengono applicati una serie di gate:
Correlazione Statica
Il modulo com esegue un'ulteriore passata statica — analizza il binario target alla ricerca di CLSID incorporati e li verifica contro HKLM e HKCU — per individuare opportunità di hijack non esercitate durante la finestra di cattura. Queste vengono contrassegnate con un tag [Correlazione Statica].
Reportistica
I risultati vengono stampati sul terminale (con codifica a colori) e opzionalmente salvati in JSON o in un report HTML autonomo.
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