Sei sulla pagina 1di 3

www.invasao.com.br http://www.invasao.com.br/coluna-marcos-14.

php

Conexão reversa

Normalmente, quando um invasor instala um trojan ou um backdoor


(porta dos fundos) em uma máquina, ele utiliza o clássico modo
cliente-servidor. O software abre uma porta na máquina alvo, e o
invasor precisa saber o endereço ip dessa máquina para poder se
conectar a ela. Mas e quando não é possível que o invasor saiba o
endereço ip, ou melhor ainda, se essa máquina estiver dentro de uma
rede interna (intranet) com um endereço ip privado? Ex: 192.168.0.2.
O invasor nunca poderia utilizar esse ip para se conectar.

Como ele poderia fazer então? Ele teria que utilizar o conceito de
conexão reversa. Em vez de se conectar ao alvo, fazer o alvo se conectar de volta ao invasor .
Isso possui várias vantagens:

- Para múltiplos alvos, não há necessidade de saber os endereços ips.


- Qualquer computador dentro de uma rede interna pode ser alvo (mesmo os que
acessam via proxy)
- Esse tipo de ataque consegue burlar a maioria das configurações de firewall

Para exemplificar, vamos utilizar o programa NETCAT (o famoso canivete suíço do TCP/IP) para
realizar uma conexão reversa simples. Primeiro, damos uma olhada geral nas suas opções:

Podemos ver que o programa possui muitas funções diferentes, e pode agir tanto como cliente
(como uma espécie de super-telnet) quanto como servidor. Para nosso ataque funcionar, vamos
precisar abrir dois prompts de comando, e digitar o seguinte:

1 de 3 24/10/2007 15:06
www.invasao.com.br http://www.invasao.com.br/coluna-marcos-14.php

Em cada uma das janelas, pedimos ao NETCAT (comando nc) que escute ( -L ) em uma
determinada porta ( –p ), só mostre conexões em formato numérico ( -n ) e nos mostre todo tipo
de tráfego que passar por essa porta ( -vv). Estando então agindo como servidor, abrimos as
portas 53 e 79 no nosso sistema (lembra que somos o invasor?). Agora, como faremos para o
sistema alvo se conectar de volta ao nosso ip?

Enviamos via bat, ou executamos via active x em alguma página, métodos existem muitos... o
que terá de ser feito é o seguinte:

Está vendo esse símbolo ( | )? Nós o chamamos de pipe... ele serve para concatenar a saída de
um comando para a entrada de outro. No exemplo acima, eu fiz o seguinte...

“Conecte-se ao endereço ip 200.97.69.233 na porta 53, concatene a saída para o programa


cmd.exe e envie o resultado dessa saída para uma conexão feita ao ip 200.97.69.233 na porta
79”.

Em sistemas Linux/Unix, basta trocar o cmd.exe por /bin/sh (o interpretador de comandos). O


que nós fizemos foi: o sistema alvo vai se conectar na minha porta 53, capturar o que eu digitar,
processar pelo seu interpretador de comandos e enviar o resultado para uma conexão na minha
porta 79. Teoricamente então, quando eu digitar o comando dir na minha janela de comandos que
está monitorando a porta 53, vou ver o resultado do comando na janela da porta 79. Complicado?
Nem tanto... vamos ver o resultado

Pronto, digitei alguns comandos na primeira janela e recebi o resultado na Segunda. Com isso,
conseguimos realizar a conexão reversa.

Se você desanimou por achar muito trabalhoso, eu tenho uma boa notícia. Alguns trojans gráficos

2 de 3 24/10/2007 15:06
www.invasao.com.br http://www.invasao.com.br/coluna-marcos-14.php

Se você desanimou por achar muito trabalhoso, eu tenho uma boa notícia. Alguns trojans gráficos
já conseguem realizar conexão reversa (entre outras coisas fantásticas que abordaremos em
outras matérias). Um desses é o Beast, demonstrado na imagem abaixo.

Essas bolhas verdes na verdade são conexões reversas sendo realizadas. Na versão definitiva, as
bolhas foram trocadas por Ets, mas o princípio é o mesmo. Quem se interessar, pode pegar o
NETCAT em http://packetstormsecurity.org e o Beast em http://www.areyoufearless.com .

3 de 3 24/10/2007 15:06

Potrebbero piacerti anche