
Anvil Windows thick client अनुप्रयोगों के लिए एक runtime-first आक्रमण सतह मूल्यांकन उपकरण है, जो penetration testers और सुरक्षा शोधकर्ताओं के लिए बनाया गया है जो लक्षित अनुप्रयोग सुरक्षा मूल्यांकन करते हैं। यह एक ही लक्षित रन में कई आक्रमण वर्गों को कवर करता है।
रनटाइम-प्रथम विशेषाधिकार वृद्धि और विंडोज थिक क्लाइंट के लिए आक्रमण सतह आकलन।
Anvil एक रनटाइम-प्रथम विशेषाधिकार वृद्धि और आक्रमण सतह आकलन उपकरण है जो विंडोज थिक क्लाइंट अनुप्रयोगों के लिए है। यह फ़ाइल सिस्टम को आँख मूंदकर स्कैन करने के बजाय, Procmon कैप्चर को Windows AccessCheck के साथ जोड़ता है ताकि केवल उन पथों की रिपोर्ट की जा सके जो रनटाइम पर देखे गए हैं और मानक उपयोगकर्ताओं द्वारा लिखने योग्य पाए गए हैं, जिससे सामान्य गणना उपकरणों को परेशान करने वाले गलत सकारात्मक शोर को समाप्त किया जा सके।
अधिकांश थिक क्लाइंट आकलन उपकरण एक या दो आक्रमण वर्गों को कवर करते हैं। Anvil इस विचार के आसपास बनाया गया है कि रनटाइम अवलोकन, ACL-सत्यापित शोषण क्षमता, और एक विस्तृत आक्रमण सतह सभी एक ही लक्षित रन में रहनी चाहिए — एक गेटेड पाइपलाइन के साथ जो आउटपुट को कार्रवाई योग्य रखता है।
प्रत्येक उम्मीदवार रिपोर्ट होने से पहले चार अनुक्रमिक गेट्स को पार करता है।
हार्ड गेट्स
AccessCheck API के माध्यम से सत्यापितमॉड्यूल लॉजिक गेट्स
Supersede, OverwriteIf, आदि) + क्रॉस-उपयोगकर्ता लिखने योग्यता गार्ड.sys पथ बहिष्कृतलक्ष्य समाधान
उपकरण लक्ष्य को एक निष्पादन योग्य पथ ( --exe, --service, या --pid से ) में हल करता है। यदि यह एक सेवा है, तो ServiceInfo को वर्तमान PID और स्थिति के साथ प्राप्त किया जाता है।
Procmon कैप्चर
प्रक्रिया अखंडता स्तर लॉन्च के तुरंत बाद पढ़ा जाता है (जब प्रक्रिया जीवित हो) और संदर्भ में संग्रहीत किया जाता है।
प्रति-मॉड्यूल फ़िल्टर किया गया विश्लेषण
प्रत्येक मॉड्यूल Procmon से अपने स्वयं के .pmc फ़िल्टर ( filters/ में संग्रहीत ) का उपयोग करके एक फ़िल्टर किया गया CSV निर्यात का अनुरोध करता है। CSV को पार्स किया जाता है, और गेटों की एक श्रृंखला लागू की जाती है:
स्थिर सहसंबंध
com मॉड्यूल एक अतिरिक्त स्थिर पास करता है — लक्ष्य बाइनरी को एम्बेडेड CLSID के लिए स्कैन करता है और प्रत्येक को HKLM और HKCU के विरुद्ध जाँचता है — कैप्चर विंडो के दौरान उपयोग नहीं किए गए हाइजैक अवसरों को सतह पर लाने के लिए। इन्हें [Static Correlation] टैग के साथ चिह्नित किया जाता है।
रिपोर्टिंग
निष्कर्ष टर्मिनल पर मुद्रित किए जाते हैं (रंग कोडिंग के साथ) और वैकल्पिक रूप से JSON या एक स्टैंडअलोन HTML रिपोर्ट में लिखे जाते हैं।
flowchart TB
%% Phase 1
subgraph Phase1["Phase 1: लक्ष्य और रनटाइम खोज"]
TR["लक्ष्य समाधानकर्ता<br/>--exe / --service / --pid"] -->
IL["अखंडता गेट<br/>Medium-IL लॉन्च / सेवा पुनरारंभ"] -->
PM["Procmon इंजन<br/>रनटाइम FS / Reg / Pipe घटनाएँ"]
end
%% Phase 2
subgraph Phase2["Phase 2: सिग्नल कमी"]
direction LR
PF["प्रति-मॉड्यूल PMC फ़िल्टर<br/>केवल उच्च-सिग्नल ट्रेस"] -->
CSV["फ़िल्टर किया गया CSV निर्यात"]
end
%% Phase 3
subgraph Phase3["Phase 3: शोषण क्षमता गेट"]
HG["हार्ड गेट्स<br/>उच्च-अखंडता लक्ष्य<br/>संरक्षित पथ नहीं"] -->
ACL["AccessChk सत्यापन<br/>मानक उपयोगकर्ता द्वारा लिखने योग्य"] -->
LG["लॉजिक गेट्स<br/>मॉड्यूल-विशिष्ट नियम"]
end
%% Phase 4
subgraph Phase4["Phase 4: सहसंबंध"]
RT["रनटाइम निष्कर्ष"]
ST["स्थिर सहसंबंध<br/>COM: CLSID बाइनरी स्कैन / रजिस्ट्री"]
end
%% Phase 5
subgraph Phase5["Phase 5: रिपोर्टिंग"]
SV["गंभीरता इंजन<br/>P1–P5"] --> OUT["कंसोल आउटपुट"]
SV --> JSON["JSON रिपोर्ट"]
SV --> HTML["HTML रिपोर्ट"]
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