HackTheBox. Passo a passo Traverxec. RCE no servidor web nostromo, técnica GTFOBins

imagem

Continuo publicando soluções enviadas para processamento adicional no site da HackTheBox .

Neste artigo, obtemos o RCE no servidor web nostromo, obtemos o shell meterpreter na sessão ativa de metasploit, cavamos as configurações nostromo, ajustamos a senha de criptografia de chave SSH e usamos a técnica GTFOBins para aumentar os privilégios.

A conexão ao laboratório é via VPN. É recomendável não conectar-se a partir de um computador de trabalho ou de um host em que os dados importantes estejam disponíveis, pois você entra em uma rede privada com pessoas que sabem alguma coisa no campo da segurança da informação :)

Informações Organizacionais
, , Telegram . , , .

. , - , .

Recon


Esta máquina possui um endereço IP 10.10.10.165, que eu adiciono ao / etc / hosts.

10.10.10.165    traverxec.htb

Primeiro, examinamos portas abertas. Como leva muito tempo para varrer todas as portas com o nmap, primeiro farei isso com o masscan. Examinamos todas as portas TCP e UDP da interface tun0 a uma velocidade de 1000 pacotes por segundo.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.165 --rate=1000

imagem

Agora, para obter informações mais detalhadas sobre os serviços que operam nas portas, executaremos uma varredura com a opção -A.

nmap -A traverxec.htb -p22,80

imagem

Portanto, temos o SSH e o servidor da web Nostromo.

Vamos verificar o servidor da Web Nostromo para explorações conhecidas para a versão 1.9.6. Para esses fins, você pode usar o searchsploit, este programa oferece a capacidade de trabalhar convenientemente com explorações que estão no banco de dados exploit-db .

imagem

Como você pode ver no resultado, a segunda exploração não nos convém e a primeira possui uma marca Metasploit, que indica que este módulo foi implementado para o contexto da Metasploit Framework.

Ponto de entrada


Baixe o msfconsole e faça uma pesquisa de exploração.

imagem

Agora sabemos o nome completo da exploração e podemos usá-la. Depois de carregar a exploração, analisaremos as informações sobre ela. Então, descobriremos as opções básicas para seu uso e uma descrição da própria exploração.

imagem

imagem

Bem! Essa exploração é adequada para a nossa versão do nostromo. Definimos as opções básicas e verificamos a operação da exploração.

imagem

Por conveniência, temos uma concha metro-metro. Para fazer isso, envie a sessão para trabalhar em segundo plano - Ctrl + Z e confirme. E se olharmos para as sessões de trabalho, veremos a que acabou de ser minimizada.

imagem

Para obter o shell do meterpreter em uma sessão em execução, você pode usar o módulo de pós-operação post / multi / manage / shell_to_meterpreter. Use rapidamente este módulo da seguinte maneira.

imagem

Somos informados de que o shell meterpreter está aberto na segunda sessão. Portanto, lançamos a segunda sessão.

imagem

DO UTILIZADOR


E a primeira coisa que você precisa dar uma olhada no host. Para fazer isso, carregue o script de enumeração para Linux na máquina.

imagem

Em seguida, chame o shell, dê o direito de executar e executar o script.

imagem

Analisando a saída, encontramos o hash da senha em .htpasswd.

imagem

Girar ainda mais é uma perda de tempo ... Percebendo isso e sem saber para onde ir além, foi decidido analisar as configurações do servidor da web. Felizmente, o diretório é indicado no caminho para este arquivo.

imagem

Em seguida, observe o arquivo nhttp.conf.

imagem

O fato é que o diretório raiz no nostromo é especificado no arquivo de configuração como homedirs_public. Ou seja, este é o diretório public_www. Este diretório está localizado no diretório inicial do usuário (homedirs - / home) (serveradmin - david@traverxec.htb). Resumindo o acima, o arquivo index.html está localizado no diretório / home / david / public_www. Para que os usuários possam acessar esta página, o diretório deve ter permissões de leitura para todos.

imagem

Os palpites estão confirmados. Além disso, vemos algum tipo de diretório, vamos ver o que está lá.

imagem

Lá encontramos um backup dos arquivos SSH. Faça o download deles.

imagem

Descompacte os arquivos.

imagem

E temos uma chave de usuário privada, mas ao tentar conectar, é solicitada uma senha. Isso significa que a chave está criptografada.

imagem

Mas podemos percorrer isso. Primeiro, trazemos para o formato desejado.

imagem

Salve o hash em um arquivo e role pelo dicionário rockyou.txt usando JohnTheRipper.

imagem

Portanto, encontramos a senha de criptografia da chave. Usando-o e uma chave, nos conectamos via SSH.

imagem

RAIZ


Examinamos o que temos no diretório de usuários.

imagem

No diretório bin, encontramos um arquivo interessante. Vamos ver que tipo de script.

imagem

Este script imprime linhas e, em seguida, executa um comando no sub sudo, cuja saída passa para cat, o que é muito interessante. Execute este comando e veja uma saída bastante massiva.

imagem

Redirecionar para gato imediatamente me levou a pensar em usar a tecnologia GTFOBins. A conclusão é que, a partir de diferentes utilitários do sistema, podemos ler, gravar arquivos, executar comandos, etc. Um exemplo de como fazer isso para diferentes programas pode ser encontrado aqui .

O fato é que, se apertarmos a janela do terminal e executarmos o comando sem converter a saída em cat, a saída será automaticamente enviada para less, onde podemos obter o shell usando! / Bin / sh. Como o comando é executado no sudo, obtemos um shell com o máximo de privilégios.

imagem

imagem

imagem

imagem

Então, temos o usuário root no sistema.

Você pode se juntar a nós no Telegram . Lá você encontra materiais interessantes, cursos mesclados e software. Vamos montar uma comunidade na qual haverá pessoas versadas em muitas áreas da TI, para que possamos sempre ajudar uns aos outros em qualquer problema de segurança da TI e da informação.

All Articles