From Deploy WAR (Tomcat) to Shell (FreeBSD)

O objetivo deste artigo é demonstrar como a implementação insegura de serviços na rede, pode facilitar o comprometimento de toda a infraestrutura de sua empresa.

[ Hits: 8.893 ]

Por: Roberto Soares (3spreto) em 01/09/2014 | Blog: http://codesec.blogspot.com


Let's hacking



O objetivo deste artigo, é demonstrar como a implementação insegura de serviços na rede, pode facilitar o comprometimento de toda a infraestrutura de sua empresa. Neste caso, a demonstração será com a instalação padrão do Apache Tomcat [1], em um servidor com o sistema operacional FreeBSD [2], sem nenhum ajuste nas configurações ou hardening no pós-instalação.

Durante um teste de intrusão, foi descoberto que determinado servidor executava a aplicação Tomcat (porta 8080) e que o mesmo utilizava credenciais padrão [3] (tomcat:tomcat), assim, foi possível acessar sua interface administrativa, conforme figura 1:
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 1 - Interface Administrativa

O Tomcat possui uma falha bem conhecida e explorada, que é a criação de arquivos WAR maliciosos, podendo realizar o seu deploy [4] e ganhar acesso ao servidor, possibilitando executar comandos internos e ter controle do servidor.

Para explorar esta falha, usamos o Metasploit [5], criando um arquivo WAR com o comando msfpayload (figura 2).
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 2 - Msfpayload criando arquivo WAR.

O msfpayload utiliza um nome randômico na geração do arquivo JSP. Para visualizar este nome, é necessário extrair o conteúdo de convisolabs.war e anotar seu nome (figura 3).
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 3 - Nome JSP gerado.

Fazemos o deploy do arquivo convisolabs.war (figura 4 e 5).
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 4 - Arquivo WAR em deploy.

Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 5 - Realizado o deploy.

Acessamos nosso backdoor através do nosso browser (figura 6). Lembrando que é necessário deixar o Metasploit em modo listen (figura 7).
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 6 - Acessando o backdoor pela URL.

Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 7 - Metasploit com shell conectado.

Na figura 7, ganhamos acesso ao servidor com usuário limitado (www), o próximo passo é escalar privilégios para tornarmos um usuário sem restrição (root), facilitando a expansão do comprometimento.

Para esta tarefa, usamos um módulo [6] presente no Metasploit (figura 8) que exige, ao menos, um diretório para a gravação de arquivos. Por padrão, o módulo vem configurado para usar o diretório /tmp, em nosso caso, não foi necessário alterar o diretório final. Desta forma, foi possível escalar privilégios e obter acesso irrestrito ao servidor.
Linux: From Deploy WAR (Tomcat) to Shell (FreeBSD)
Figura 8 - Novo shell com usuário root.

Os melhores hardwares e softwares não resolvem, se não há um planejamento adequado ao disponibilizar algum tipo de serviço na internet.

Resultado: FreeBSD (9.1) Owned by Tomcat.

Conclusão

Problemas e falhas existem em qualquer aplicação. Como profissionais de segurança da informação, é nosso dever diminuir essa exposição reduzindo a superfície do ataque e corrigindo as falhas, com o objetivo de dificultar uma possível invasão.

O trabalho de segurança em uma aplicação WEB, ou qualquer outro software que está relacionado à segurança da infraestrutura que o suporta, não limitando-se somente à blindagem da aplicação.

Até a próxima.
Postado previamente, em:
   

Páginas do artigo
   1. Let's hacking
Outros artigos deste autor

Vazamento de informações vitais via "HP Operations Manager Perfd"

Intrusão simples com Metasploit

Metasploit Community Edition - Instalation

CouchDB - For Fun and Profit

Metasploit Adobe Exploit

Leitura recomendada

Chkrootkit - Como determinar se o sistema está infectado com rootkit

SSH Connection With non-NIST Russian Cipher and Distro for Military Use

Nmap - Escaneando sua Rede e Mantendo-a Segura

Instalando o antivírus BitDefender no Linux

Configurando o IDS - Snort / Honeypot (parte 2)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts