Corte a caixa. Eliminador passo a passo. DNS, FTP e vestígios de outro hack

imagem

Continuo publicando soluções enviadas para processamento adicional no site da HackTheBox . Espero que isso ajude pelo menos alguém a se desenvolver no campo da segurança da informação. Neste artigo, trabalharemos muito com FTP e DNS, usaremos o SQLi no serviço whois e também seguiremos os rastros de outro hack, a saber, encontraremos um shell, selecionaremos um parâmetro e analisaremos os logs e o dump de tráfego.

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 para você estejam disponíveis, pois você acaba em uma rede privada com pessoas que sabem alguma coisa no campo da segurança da informação :)

Informações Organizacionais
, - , :

  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

Recon


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

10.10.10.155	scavenger.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.155 --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 -A scavenger.htb -p 21,22,25,43,53,80

imagem

Na saída do nmap, você pode descobrir que os serviços FTP, SSH, SMTP estão em execução no host (disponível no domínio ib01.supersechosting.htb), também serviço whois usando o MariaDB DBMS (outro nome de domínio é destacado - www.supersechosting.htb ), serviço DNS e servidor web Apache.

Adicione os domínios encontrados ao / etc / hosts.

10.10.10.155    scavenger.htb ib01.supersechosting.htb www.supersechosting.htb

Vamos tentar encontrar mais nomes de DNS. Vamos tentar fazer uma transferência de zona DNS usando dig.

dig axfr supersechosting.htb @10.10.10.155

imagem

Adicione os dados da entrada em / etc / hosts.

10.10.10.155	scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb

Em seguida, acesse o serviço WHOIS, cuja principal aplicação é obter dados de registro sobre os proprietários de nomes de domínio, endereços IP e sistemas autônomos.

imagem

Como os bancos de dados SQL são usados, enviaremos uma solicitação com uma cotação e perceberemos um erro gerado pelo serviço.

imagem

Assim, a injeção SQL está presente.

imagem

Primeiro, calculamos o número de colunas, bem como a coluna que é exibida para o usuário.

imagem

Portanto, obtemos o número de colunas - 2 e o que é exibido primeiro. Em seguida, descobrimos as tabelas e os nomes das colunas.

imagem

E agora lemos todos os domínios que o serviço conhece.

imagem

Encontre os novos nomes que adicionamos ao / etc / hosts.

10.10.10.155	scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb justanotherblog.htb pwnhats.htb rentahacker.htb

Agora, realizaremos uma transferência de zona a partir do nome encontrado.

imagem

imagem

imagem

Assim, encontrando novos nomes, complementamos o arquivo / etc / hosts

10.10.10.155	scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb justanotherblog.htb pwnhats.htb rentahacker.htb www.justanotherblog.htb www.pwnhats.htb www.rentahacker.htb sec03.rentahacker.htb 

Ignorando todos os sites, não temos nada significativo, exceto uma mensagem de www.rentahacker.htb , da qual concluímos que o serviço já foi hackeado.

imagem

E indo para sec03.rentahacker.htb, vemos a confirmação disso.

imagem

Analise diretórios e arquivos usando o gobuster. Indicaremos o dicionário do dirb, o número de threads é 120, os códigos de resposta do servidor de interesse também são interessantes e o atraso de resposta permitido é de 20 segundos.

gobuster dir -w /usr/share/wordlists/dirb/big.txt -t 120 -e -x php -u http://sec03.rentahacker.htb/ -s "200,204,301,302,307,401" --timeout 20s

imagem

Encontramos uma página interessante - shell.php, quando acessada, nada acontece. Provavelmente isso está acontecendo, pois estamos acessando a página sem parâmetros. Vamos classificar os parâmetros usando wfuzz, especificando uma lista nos parâmetros e o fato de que o número de palavras na resposta não deve ser 0.

wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt --hw 0 http://sec03.rentahacker.htb/shell.php?FUZZ=id

imagem

Encontre o parâmetro, verifique.

imagem

Verifique o diretório / home.

imagem

Agora, procure no diretório inicial do usuário.

imagem

Examinamos as configurações do WordPress e obtemos o nome de usuário e a senha para conectar-se ao banco de dados.

imagem

Essa senha não se encaixava no SSH, mas foi para ftp e não nos deu nada. O host possui um serviço de email, portanto, faz sentido verificar as mensagens do usuário.

imagem

E encontramos mais uma credencial. Baixe tudo o que estiver em FTP.

wget -m --no-passive ftp://ib01ftp:YhgRt56_Ta@ftp.supersechosting.htb

imagem

Nós vamos para o diretório em que os arquivos são baixados e vemos o que temos. Há uma nota, um log e um despejo de tráfego.

imagem

Abra o Wireshark e veja o que está lá. A julgar pelo log, estamos interessados ​​na sessão HTTP, vamos ver todos os objetos HTTP: Arquivo -> Exportar Objetos -> HTTP.

imagem

De tudo o que foi apresentado, salve o código root.c

imagem

Em seguida, vá para a janela principal do Wireshark e verifique algumas credenciais. Portanto, temos três solicitações POST, a senha é transmitida a eles.

imagem

Essa senha é adequada para autenticação FTP.

imagem

Há também um diretório estranho - "...". Nele jazia root.ko.

imagem

imagem

Vamos analisar o código fonte.

imagem

Desde o início, fica claro com qual dispositivo estamos lidando. Verifique se este dispositivo está no sistema.

imagem

É isso mesmo, existe um dispositivo. No código, estamos interessados ​​em uma função que, após verificar a linha de entrada, fornecerá acesso em nome do usuário com uid igual a 0, ou seja, root.

imagem

Agora abra o programa no descompilador e encontre a função root_write.

imagem

O código é ligeiramente modificado e, em vez da linha g0tROot, a linha correta é g3tPr1v. Vamos voltar ao shell original e, após obter privilégios de root, veremos seu diretório inicial.

imagem

Nós pegamos a bandeira.

imagem

Você pode se juntar a nós no Telegram . Vamos montar uma comunidade na qual haverá pessoas versadas em muitas áreas da TI, para que possamos sempre ajudar-nos mutuamente em qualquer problema de segurança da informação e da TI.

All Articles