ABRAWEB

Publicidade

Tunelamento de pacotes TCP em ASP/PHP/JSP usando REDUH

Os golpes virtuais se tornaram uma constante realidade em todo o mundo. De acordo com pesquisa realizada pela McAfee, estima-se que em 2011 haverá um aumento no nível de sofisticação do conteúdo mal-intencionado disfarçado como emails, semelhantes a arquivos pessoais e/ou legítimos, desenvolvidos com o intuito de enganar as vítimas.

Muitas vezes, durante um pentest, são encontradas falhas em aplicações web que permitem que seja feito o upload de arquivos para o servidor.
Nesta hora, apesar da falha não proporcionar um acesso administrativo direto, ela fornece um canal muito rico em possibilidades. Uma destas possibilidades que iremos tratar hoje é reDuh criado pela SensePost para HTTP Tunneling e TCP redirects.
O reDuh é atualmente uma ferramenta que pode ser utilizada para criar circuitos TCP através de requisições HTTP validadas.
Por enquanto não foi divulgada nenhuma documentação completa a respeito da ferramenta e no próprio site eles dizem que estão elaborando um .ppt demonstrativo. Porém vamos citar um exemplo simples de utilização da ferramenta.

Vamos pensar no seguinte cenário:
Digamos que você consiga exploitar uma falha qualquer ou conseguiu acesso por meio de um usuário desprotegido a um FTP do servidor web, e consegue enviar e/ou criar uma página JSP no servidor remoto.
Este usuário permitiria acesso ao Terminal Service outros servidores que estão atrás deste servidor web, e você não pode efetuar uma conexào RDP porque o firewall bloqueia todas as conexões de Inbound que chegam para estes hosts e libera apenas a porta 80.



Então nesse momento entra em ação o reDuh. Você faz o upload do arquivo reDuh.jsp para o alvo, que poderia ser o http://web001.target.com/uploads/reDuh.jsp
Feito isto agora, é necessário utilizar o reDuhClient em sua máquina apontando ele para a pagina que você acabou de fazer upload:
$ java reDuhClient web001.target.com 80 /uploads/reDuh.jsp

Você pode administrar o reDuhClient conectando na porta de gerenciamente que ele ira subir (1010 por padrão).
Uma vez conectado na console de gerenciamento do reDuhClient digite:
createTunnel]1234:term-serv.target.com:3389

O que isto faria:
a) reDuhClient irá iniciar um socket Listen na porta 1324 e enviará uma mensagem HTTP para /uploads/reDuh.jsp que irá então abrir um socket para term-serv.target.com:3389.
b) Qualquer tráfego enviado para a o localhost socket na porta 1234 será codificado, e compactado em requests HTTP e depois enviado para o script /uploads/reDuh.jsp.
c) Qualquer tráfego vindo do servidor term-serv.target.com:3389 para o jsp é adicionado em uma query e enviado de volta para o reDuhClient quando ele requisitar.
Agora basta você iniciar o RDP Cliente de sua preferência e apontar para localhost:1234



O sistema pode gerenciar multiplas conexões, então enquanto a sessão RDP está acontecendo, nós podemos usar o manager e requisitar outros tuneis.
Neste exemplo utilizamos JsP, porém o mesmo se aplicaria caso o servidor utilizasse PHP, ASP ou JSP.

Isto pode ser muito perigoso dentro de servidores web de teste que muitas vezes acabam armazenando códigos vulneraveis e que ficam por vezes expostos na internet, tornando-se uma vitima fácil para um upload de uma ferramenta como esta que pode dar acesso a diversos outros sistemas internos da empresa.




Segurança na web
Inscrição | Indique a Associação | Sobre a ABRAWEB | F.A.Q. | Contato