Hack The Box. Passo a passo Tabby. RCE para Tomcat e elevando privilégios via LXD



Continuo publicando soluções enviadas para finalização de máquinas do site HackTheBox .



Neste artigo, vamos obter o RCE no Tomcat, quebrar o arquivo zip e elevar os privilégios usando LXD.



Informação organizacional
, , Telegram . , , .



. , - , .



Recon



Esta máquina tem um endereço IP de 10.10.10.194, que adicionei a / etc / hosts.



10.10.10.194 	tabby.htb


A primeira etapa é verificar as portas abertas. Eu faço isso usando o seguinte script, que leva um argumento - o endereço do host que está sendo verificado:



#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1






A escolha é pequena, vamos começar pela porta 80, onde o próximo site nos encontra.







Olhando ao redor do site, notamos uma maneira interessante de exibir notícias (com uma pitada de LFI).







E também adicione outra entrada em / etc / hosts.



10.10.10.194    megahosting.htb


Vamos verificar se o LFI está disponível, eu uso o LFISuite para isso.















E encontramos LFI. Já que não temos mais, vamos para a porta 8080. Lá, somos recebidos por uma página da qual descobrimos que o Tomcat está sendo usado.







Chamamos sua atenção para um arquivo interessante. Ao clicar em outro link, você é saudado com uma janela de autenticação HTTP. Vamos ler o arquivo fornecido /usr/share/tomcat9/etc/tomcat-users.xml.







E existem credenciais com as quais podemos fazer login. A partir daqui, podemos obter o RCE usando o módulo tomcat_mgr_deploy.







Vamos definir os parâmetros necessários.







E obtemos o erro de caminho do arquivo.



Ponto de entrada



Depois de vagar um pouco, encontramos a ajuda, que contém o diretório de texto.











Vamos mostrar esse caminho.







E temos uma sessão de meterpreter. Para conduzir o reconhecimento rapidamente, vamos colocar o script LinPEAS no host e executá-lo.







Analisando cuidadosamente a saída, encontramos um arquivo interessante.







DO UTILIZADOR



Baixe e tente abri-lo. Mas é solicitada uma senha.











Vamos tentar iterar sobre isso.



fcrackzip -D -p ../tools/rockyou.txt 16162020_backup.zip






E encontramos a senha provável. Não há nada de interessante no arquivo em si, mas é uma senha de um usuário criada no sistema.







Para uma conexão conveniente, vamos criar uma chave SSH.







RAIZ



Vamos nos conectar via SSH usando uma chave privada e ver se o usuário está no grupo lxd.







LXD é um gerenciador de contêineres do sistema. Ele oferece uma interface de usuário semelhante a máquinas virtuais, mas usando contêineres Linux.



O kernel LXD é um daemon privilegiado que expõe APIs REST no soquete unix local, bem como na rede, se configurado para isso. Os clientes, como a ferramenta de linha de comando fornecida com o LXD, enviam solicitações por meio dessa API REST. Isso significa que independentemente de você estar acessando localhost ou remoto, tudo funciona da mesma forma.



Mas podemos executar comandos por meio dele, ou seja, como root. Para isso, precisaremos do seguinte software, baixe e construa as fontes. Carregue a imagem resultante para o host remoto. E após a parte preparatória, importamos nosso arquivo de imagem compatível com lxd.



lxc image import ./alpine-v3.12-x86_64-20200810_0015.tar.gz --alias ralf






Somos informados de que ele deve ser inicializado primeiro, mas isso pode ser feito mais tarde. Certifique-se de que a imagem esteja carregada.



lxc image list






Agora vamos inicializar.







Vamos criar um container com imagem e nome.



lxc init ralf ignite -c security.privileged=true


E vamos definir as configurações onde o disco será montado como / mnt / root.



lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true


Inicie e execute.



lxc start ignite
lxc exec ignite /bin/sh






E temos direitos de root.



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.



All Articles