reDuh: TCP Tunnel through HTTP Requests

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 web. 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.

Abaixo seguem os links para Download da Ferramenta:

Download reDuhClient (the local proxy) | Download reDuhu Server Pages (JSP/PHP/ASP)

Aqui também os slides da apresentação na BlackHat 2008 onde o pessoal utilizou o reDuh como exemplo na apresentaçào sobre TCP Redirections and Tunnels.

Espero que gostem.

Good Hacking 4 All.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s