HackTheBox. Passo a passo do OpenAdmin. RCE no OpenNetAdmin e GTFOBins em nano

imagem

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

Neste artigo, exploraremos o RCE no OpenNetAdmin, investigaremos as configurações do servidor da Web, perfuraremos a porta com o SSH Forwarding, quebraremos a senha da chave SSH e usaremos 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 algo no campo da segurança da informação :)

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

. , - , .

Recon


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

10.10.10.171    openadmin.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 500 pacotes por segundo.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.171   --rate=500

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 openadmin.htb -p22,80

imagem

Portanto, o serviço executa o SSH e o servidor da Web Apache. Dê uma olhada no que está localizado no site.

imagem

Nós encontramos a página principal do Apache. Nesses casos, os sites podem não estar localizados no diretório inicial do serviço. Para encontrá-los, você precisa classificar os diretórios. Para fazer isso, use o programa gobuster (supostamente o scanner mais rápido). Selecionamos o modo de varredura de diretório (dir), o dicionário (-w), o número de fluxos (-t), as extensões de página (-x), também a saída expandida das páginas (-e) e o URL (-u).

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb

imagem

Na saída, há muita resposta com o código 403 para filtrá-los, indicamos os códigos de resposta (-s) que precisamos.

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb -s “200,204,301,302,307,401”

imagem

E encontramos vários diretórios. Agora vamos dar uma olhada em tudo para descobrir o que está localizado lá.

imagem

imagem

imagem

E apenas em um desses sites, existe a função Login. Mas se você tentar fazer isso, vamos para a página do OpenNetAdmin.

imagem

Nesse caso, como você pode ver, a versão 18.1.1 é usada.

Ponto de entrada


Vamos procurar explorações para esta versão.

imagem

E para esta versão, há uma exploração do RCE. O código já está no banco de dados local, vamos dar uma olhada.

imagem

Assim, o script usa um parâmetro - este é o URL. (Na inicialização, tive erros, então você pode abrir o arquivo através do mcedit e remover ^ M caracteres).

imagem

USER1


Estamos no diretório inicial.

imagem

E estamos cercados por um grande número de arquivos.

imagem

Alguns deles podem conter credenciais. Vejamos todos os arquivos com nomes de usuário recursivamente.

imagem

E não há resultados. Mas haverá muitos resultados ao pesquisar a palavra "passar".

imagem

Agora dê uma olhada em toda a configuração.

imagem

Esta é a senha para conectar-se ao banco de dados. Vamos tentar para os usuários. E efetuamos login com sucesso como usuário jimmy.

imagem

USER2


Primeiro, execute o script de enumeração base LinEnum .

imagem

A conclusão precisa ser analisada com muito cuidado, toda linha !!! E a única coisa na qual você pode se apegar na saída do script é a associação ao grupo.

imagem

Jimmy e Joanna estão no mesmo grupo interno. Vamos ver os arquivos pertencentes a este grupo.

imagem

A julgar pela localização - este é o site. Analisamos arquivos. O primeiro a assistir é o principal.

imagem

Se estivermos autorizados, eles nos mostrarão a chave SSH privada do usuário joanna. Segue-se do arquivo de índice que iremos para o main após autorização bem-sucedida. Ele também contém um hash de senha SHA512.

imagem

O hash quebra facilmente com a ajuda deste site .

imagem

Resta aprender como chegar ao site. As portas para acessar cada site podem ser encontradas no arquivo de configuração correspondente para cada site no diretório / etc / apache2 / sites-available para apache.

imagem

Como você pode ver, existe um internal.conf que nos interessa. Agora encaminhe a porta SSH.

imagem

A partir da configuração, fica claro que podemos acessar o site da máquina local na porta 52846 no domínio internal.openadmin.htb. Vamos colocar a porta em funcionamento - ou seja, redirecionar nossa porta local 52846 para a porta remota 52846. Essa técnica é chamada de encaminhamento de porta SSH.

imagem

Agora, na máquina local, faça uma entrada no arquivo / etc / hosts.
127.0.0.1 internal.openadmin.htb
E abordaremos através do navegador o endereço internal.openadmin.htb : 52846 / index.php.

imagem

Efetue login com credenciais conhecidas e obtenha uma chave SSH privada.

imagem

Nós salvamos em um arquivo e atribuímos direitos.

imagem

Mas, ao tentar se conectar, eles nos pedem a senha da chave, porque ela é criptografada.

imagem

Podemos rolar pela tecla. Para fazer isso, vamos trazê-lo para o formato John'a e, em seguida, forneceremos o arquivo com a chave já convertida no formato para bruto.

imagem

E encontre com sucesso a senha. Já estamos conectados com a chave e a senha.

imagem

RAIZ


Uma das coisas a serem verificadas são as configurações do sudo para executar comandos sem uma senha.

imagem

A linha NOPASSWD diz que podemos executar este comando no sudo sem uma senha. Nesse caso, o comando nano é chamado. Existe uma técnica como GTFOBins, que permite o uso de vários utilitários para ler, gravar arquivos ou executar comandos inteiros. Uma lista completa de utilitários e seus recursos pode ser encontrada aqui . Vamos dar uma olhada em como obter shell usando o nano.

imagem

Execute nosso comando com sudo.

imagem

Agora, seguindo a ordem dos comandos, selecione a opção para ler o arquivo.

imagem

Agora a opção para executar comandos.

imagem

E insira a última linha da instrução.

imagem

E nós obtemos o shell em nome da raiz.

imagem

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

All Articles