Segue aqui o 3 tutorial de como conseguir explorar uma das máquinas virtuais disponível no Vulnhub e que pode te ajudar com os cenários de Capture The Flag (CTF) e situações semelhantes.
Antes de qualquer coisa, precisamos começar com a enumeração dos serviços ativos na máquina de destino usando o nmap:
nmap -sS -sV -sC -Pn kyoptrix3.com
Note que temos 2 (duas) opções apenas nesse caso que é o serviço SSH sendo executado na porta padrão 22 ou uma aplicação WEB com o título Ligoat Security.
Minha escolha foi a aplicação WEB e após o acesso a página padrão fui verificar o código-fonte da página em busca de maiores informações e notei que se trata de um CMS Lotus.
Posteriormente, efetuei a consulta de exploits disponíveis para esse CMS e encontrei os seguintes resultados:
Tive que testar todas as opções para ver qual funcionaria com o nosso exploit, entretanto, por uma questão de não usar o metasploit, verifiquei que a versão que poderia funcionar está disponível apenas em Ruby (.rb).
Pesquisei na GitHub e encontrei um arquivo com extensão .sh que tem a mesma funcionalidade, será esse mesmo que vou usar!
Efetuei o download copiando o arquivo com a extensão .sh e verifiquei as instruções de uso, sendo que é necessário informar o IP ou Hostname e depois o path padrão, optei por usar o que está no exemplo, e o comando ficou exatamente o 2 exemplo demostrado a seguir.
Certo, parece que o exploit vai funcionar!!! Agora precisamos inserir o endereço IP para obter o reverse shell, porta e método utilizado para receber a conexão remota (nesse caso vamos escolher a opção 1 por abrir uma conexão nc -nlvp 4444).
Funcionou, estamos com acesso ao kioptrix3. Para facilitar o uso da shell utilizei o método Shell Spawning para ter interpretador melhor através do comando python -c ‘import pty; pty.spawn(“/bin/bash”)’ e com isso facilita o uso durante a execução dos comandos.
Usualmente, existem informações sensíveis em arquivos de configuração como usuário e senha. Nesse caso fiz uma pesquisa procurando por arquivos com a extensão .php e que tem o nome config conforme demonstrado a seguir:
Encontramos 2 (dois) arquivos e ao acessar o primeiro nos deparamos com informações de acesso ao banco de dados MySQL.
Em posse dessas informações, tivemos acesso ao banco de dado MySQL através do phpMyAdmin. Verifiquei a existência de algumas bases de dados e uma chamada galleria chamou bastante atenção. Dentro dessa base, existe uma tabela com contas de desenvolvedores. Executamos uma query e verifiquei que existem 2 (dois) usuários, dreg e lonefarret, e coletamos suas senhas com hash md5.
Por se tratar de um formato de hash bastante conhecido, inserimos os hashes md5 das contas obtidas em base de dados na internet e obtivemos as senha de acesso para ambos usuários.
Certo, agora conseguimos a senha de acesso de ambos os usuários e podemos acessar a maquina via protocolo SSH. Nesse caso vamos usar a conta de acesso loneferret.
Ao acessar a home do usuário loneferret, efetuei a leitura do arquivo CompanyPolicy.README e verificou que esse usuário pode usar o sudo ht.
Ao tentar usar o comando sudo ht obtive o erro de terminal e tive que exportar o terminal com o comando export TERM=xterm para que fosse possível usar o comando.
Com acesso ao sudo ht, foi possível ter acesso para edição do arquivo /etc/sudoers.
Agora inseri os parâmetros ALL=(ALL) ALL para o usuário loneferret e com isso elevar os privilégios de acesso.
Feito isso, usamos o comando sudo /bin/bash e tivemos acesso a conta ROOT, Yeah!
Informações sobre o autor
Dennis Silva é Arquiteto de Segurança da Informação com +10 anos trabalhando com Tecnologia da Informação e iniciou sua carreira em uma das Big Four como auditoria de sistemas.
Trabalhou como Coordenador de Segurança da Informação na maior empresa de desenvolvimento de software na América Latina. Anteriormente, atuou como consultor de Segurança da Informação e seu objetivo principal era identificar e avaliar os riscos de Segurança da Informação inerentes ao negócio e identificar os controles existentes através de testes de invasão na infraestrutura interna/externa, aplicações Web e ERPs com SAP e TOTVS.
Responsável pela implementação da certificação ISO/EIC 27001:2013 na maior empresa de desenvolvimento de software da América Latina, potencializando a principal oferta de comercialização do software em nuvem como serviço (SaaS) em datacenter próprio.