Continuo publicando soluções enviadas para finalização de máquinas da plataforma HackTheBox .
Neste artigo, vamos nos aprofundar no LDAP, decodificar a senha VNC, descompilar aplicativos dotNet, descriptografar AES facilmente e recuperar objetos excluídos do Active Directory.
A conexão com o laboratório é via VPN. É recomendável 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 alguma coisa sobre segurança da informação.
Informação organizacional
Recon
Esta máquina tem um endereço IP de 10.10.10.182, que adicionei a / etc / hosts.
10.10.10.182 cascade.htb
A primeira etapa é verificar as portas abertas. Uma vez que leva muito tempo para escanear todas as portas com nmap, primeiro farei isso usando masscan. Verificamos todas as portas TCP e UDP da interface tun0 a 500 pacotes por segundo.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.182 --rate=500
Muitas portas estão abertas no host. Agora vamos examiná-los com o nmap para filtrar e selecionar os que precisamos.
nmap cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88
Agora, para obter informações mais detalhadas sobre os serviços executados nas portas, execute uma varredura com a opção -A.
nmap -A cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88
Como de costume, a primeira coisa a fazer é começar listando o SMB - enum4linux.
enum4linux -a cascade.htb
Nós salvamos uma lista de usuários e seus membros do grupo. Vamos ver o que o LDAP tem a oferecer.
Ponto de entrada
Usamos JXplorer para trabalhar com LDAP. Vamos nos conectar e ver todos os objetos.
E do usuário Ryan Thompson encontramos o atributo cascadeLegacyPwd.
Nós decodificamos base64 e obtemos a senha.
DO UTILIZADOR
Depois de encontrar as credenciais, vamos ver os recursos SMB disponíveis para nós usando CrackMapExec.
cme smb cascade.htb -u "r.thompson" -p "rY4n5eva" --shares
Vamos nos conectar ao recurso de dados.
smbclient -U r.thompson //10.10.10.182/Data
Vamos repassar tudo recursivamente.
Agora vamos baixar e ver esses arquivos.
get "IT\Email Archives\Meeting_Notes_June_2018.html"
get "IT\Logs\Ark AD Recycle Bin\ArkAdRecycleBin.log"
get IT\Logs\DCs\dcdiag.log
get "IT\Temp\s.smith\VNC Install.reg"
No primeiro arquivo, eles falam sobre a transferência de rede e que a senha TempAdmin é a mesma que a senha normal de administrador.
A partir do segundo arquivo, observe para nós os direitos do usuário ArkSvc.
Não há nada de interessante no terceiro arquivo. Mas no quarto encontramos a senha VNC para o usuário s.smith.
Nós decodificamos com vncpasswd . Indicamos que queremos decodificar a senha (-d) e passá-la na forma Hex.
vncpasswd.py -d -H 6bcf2a4b6e5aca0f
Se olharmos para a saída de enum4linux, podemos ver que este usuário é um membro dos grupos de usuários de gerenciamento remoto. Vamos tentar fazer o login através do serviço winrm com esta senha.
evil-winrm -i cascade.htb -u s.smith -p sT333ve2
USUÁRIO 2
Vamos ver os recursos SMB deste usuário:
cme smb cascade.htb -u s.smith -p sT333ve2 --shares
Auditoria $ recurso disponível.
smbclient -U s.smith //10.10.10.182/Audit$
Vamos baixar tudo que existe.
Há um banco de dados entre os arquivos baixados, abrindo-o, você pode inserir as credenciais na tabela LDAP.
Mas eles não cabem em lugar nenhum, aparentemente a senha é criptografada, mas descriptografada usando o programa. Isso tem CascCrypto.dll. Além disso, tanto o programa quanto a biblioteca são escritos em C #.
Vamos descompilar o programa usando dnSpy. Encontramos o local onde a senha é lida do banco de dados e transferida para a função de descriptografia. A chave também é transferida para lá.
Depois de descompilar a biblioteca, descobrimos o modo de criptografia e o vetor de inicialização.
Assim, temos os seguintes parâmetros:
Agora precisamos descriptografar. Vamos fazer isso no site da CyberChef .
E obtemos a senha. Conforme segue de enum4linux, este usuário pertence aos grupos Usuários de Gerenciamento Remoto e Lixeira AD. Como você pode lembrar, esse usuário era necessário para transferir objetos. E o usuário TempAdmin possui a mesma senha do administrador. Mas foi removido.
Vamos dar uma olhada em objetos remotos.
Get-ADObject -IncludeDeletedObjects -Filter {IsDeleted -eq $True}
E encontramos o objeto que procurávamos. Vamos ver seus atributos.
Get-ADObject -Filter {SamAccountName -eq 'TempAdmin'} -IncludeDeletedObjects -Properties *
E nós decodificamos a senha.
Vamos nos conectar ao WinRM e pegar a bandeira.
evil-winrm -i cascade.htb -u Administrator -p baCT3r1aN00dles
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.