
पावरशेल टूल जो सक्रिय निर्देशिका (Active Directory) की गणना को स्वचालित करता है।
व्यापक Active Directory सुरक्षा मूल्यांकन — शून्य निर्भरताएँ, एकल फ़ाइल, उपयोग के लिए तैयार।
adPEAS एक PowerShell-आधारित सुरक्षा मूल्यांकन उपकरण है जो Active Directory वातावरण में गलत कॉन्फ़िगरेशन, कमज़ोरियों और विशेषाधिकार वृद्धि (privilege escalation) पथों की पहचान करता है। यह पेनेट्रेशन टेस्टर, सुरक्षा ऑडिटर और रेड टीमों के लिए डिज़ाइन किया गया है, जिन्हें एक विश्वसनीय, स्व-निहित उपकरण चाहिए जो किसी भी Windows सिस्टम पर काम करे — न RSAT, न ActiveDirectory मॉड्यूल, न कोई तृतीय-पक्ष निर्भरता।
adPEAS v2 adPEAS v1 का पूर्ण पुनर्लेखन है। यह पुराने DirectoryEntry/DirectorySearcher दृष्टिकोण को एक एकीकृत System.DirectoryServices.Protocols.LdapConnection आर्किटेक्चर से प्रतिस्थापित करता है और मूल Kerberos प्रमाणीकरण, उन्नत रिपोर्टिंग और आक्रामक संचालन जोड़ता है — सब कुछ शुद्ध PowerShell में।
adPEAS में नए हैं? आर्किटेक्चर, प्रमाणीकरण और आंतरिक कार्यप्रणाली की गहन जानकारी के लिए Quick-Start Guide देखें या blog.sekurity.de पर ब्लॉग श्रृंखला पढ़ें।
| श्रेणी | मुख्य बातें |
|---|---|
| प्रमाणीकरण | Credentials, PKINIT, Pass-the-Cert, NT-Hash, AES keys, Windows auth, स्वचालित फ़ॉलबैक के साथ Kerberos-first |
| सुरक्षा जाँचें | Domain config, Kerberoast, ASREPRoast, ACLs, DCSync, delegation, AD CS escalation paths, GPO दुरुपयोग, LAPS, BitLocker recovery keys, पुराने सिस्टम |
| रिपोर्टिंग | Console (रंग-कोडित), plain text, इंटरैक्टिव HTML, JSON निर्यात |
| आक्रामक संचालन | Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, RBCD, Shadow Credentials, Pass-the-Ticket |
| BloodHound | अंतर्निहित BloodHound CE कलेक्टर (ZIP निर्यात) |
| OPSEC मोड | सक्रिय परीक्षण छोड़ें (Kerberoast, ASREPRoast, BloodHound) |
| परिनियोजन | एकल .ps1 फ़ाइल, कोई RSAT नहीं, कोई बाहरी मॉड्यूल नहीं, ऑफ़लाइन और air-gapped में काम करता है |
ActiveDirectory मॉड्यूल, RSAT, या बाहरी PowerShell मॉड्यूल की आवश्यकता नहीं है।
| फ़ाइल | आकार | उपयोग का मामला |
|---|---|---|
adPEAS.ps1 | ~4.5 MB | विकास, डिबगिंग, कोड समीक्षा |
adPEAS_min.ps1 | ~3-4 MB | छोटे फ़ुटप्रिंट के साथ नियमित उपयोग |
adPEAS_ultra.ps1 | ~3 MB | न्यूनतम आकार, कोई टिप्पणी नहीं |
adPEAS_obf.ps1 | <1 MB | सबसे छोटा आकार, स्थानांतरण के लिए अस्पष्ट (obfuscated) |
सभी चार संस्करण कार्यात्मक रूप से समान हैं। अपने परिनियोजन परिदृश्य के आधार पर चुनें।
# Clone the repository
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
main शाखा में हमेशा सभी चार वेरिएंट का एक नवीनतम बिल्ड मौजूद रहता है, जिसे हर फ़िक्स और फ़ीचर के साथ फिर से बनाया जाता है, इसलिए ऊपर दिए गए रॉ URL नवीनतम कोड प्रदान करते हैं। उन बिल्ड्स में एक डेवलपमेंट वर्ज़न स्ट्रिंग (2.5.1+20260917-1759) होती है। प्रत्येक टैग किए गए GitHub Release के साथ चार स्थिर बिल्ड्स डाउनलोड करने योग्य एसेट्स के रूप में संलग्न होते हैं, जिनमें एक साफ़ वर्ज़न स्ट्रिंग (2.5.1) होती है — यदि आपको कोई ज्ञात, उद्धरण-योग्य वर्ज़न चाहिए तो उन्हीं का उपयोग करें। स्वयं स्रोत से निर्माण करने के लिए:
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
.\Build-Release.ps1
यह रिपॉज़िटरी रूट में सभी चार वेरिएंट (adPEAS.ps1, adPEAS_min.ps1, adPEAS_ultra.ps1, adPEAS_obf.ps1) उत्पन्न करता है। इसके लिए Windows PowerShell 5.1 आवश्यक है और कोई अतिरिक्त निर्भरता नहीं चाहिए।
# Option 1: Import as module (recommended)
Import-Module .\adPEAS.ps1
# Option 2: Dot-sourcing
. .\adPEAS.ps1
# Option 3: Read and execute in memory
Get-Content -Raw .\adPEAS.ps1 | Invoke-Expression
# Option 4: Load directly from GitHub into memory (no file on disk).
# Both variants work; on an older/hardened host that still defaults to TLS 1.0,
# prepend once: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 4a: WebClient - shortest. DownloadString detects and strips the file's UTF-8 BOM
# itself, so nothing extra is needed. WebClient is a legacy API but works everywhere.
Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1')
# 4b: Invoke-WebRequest - the modern cmdlet. Its .Content keeps the BOM as a leading
# U+FEFF that Invoke-Expression cannot parse, so TrimStart removes it first.
Invoke-Expression ((Invoke-WebRequest -Uri "https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1" -UseBasicParsing).Content.TrimStart([char]0xFEFF))
# Domain-joined machine (current user)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth
# With credentials
Invoke-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "P@ssw0rd!"
# OPSEC mode (skip Kerberoast, ASREPRoast, BloodHound)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSEC
# Connect once
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
# Run full scan
Invoke-adPEAS
# Or run individual checks
Get-KerberoastableAccounts
Get-ADCSVulnerabilities
Get-DangerousACLs
# Disconnect when done
Disconnect-adPEAS
# Credentials
Connect-adPEAS -Domain "contoso.com" -Credential (Get-Credential)
# Overpass-the-Hash (NT-Hash)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -NTHash "32ED87BDB5FDC5E9CBA88547376818D4"
# Pass-the-Key (AES256)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -AES256Key "4a3b2c1d5e6f..."
# PKINIT (Certificate)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx"
# Pass-the-Cert / Schannel (LDAPS, no Kerberos)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -PassTheCert
# LDAPS
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth -UseLDAPS
# All formats (default) — creates .txt, .html, and .json
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report
# HTML only
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report -Format HTML
# Offline report conversion from JSON
Convert-adPEASReport -InputJson ".\report.json" -OutputPath ".\new_report"
# Compare two scans (diff report)
Compare-adPEASReport -Baseline ".\scan_q1.json" -Current ".\scan_q2.json" -OutputPath ".\diff"