Netcat - Mini introdução para leigos

Esse mini artigo tratará, de forma simples, das opções de uso do Netcat para principiantes.

[ Hits: 12.176 ]

Por: Narcochaos em 03/03/2014


Mini introdução ao Netcat para leigos



Salve, salve turma do VOL!

Bom, nessa simples abordagem, estarei falando sobre o Netcat para leigos.

Vamos ao que interessa.

Para quem não sabe, o Netcat é uma aplicação de terminal que é semelhante ao programa de Telnet, mas, tem muito mais recursos.

É uma versão "power" do programa Telnet tradicional. Além de funções básicas de Telnet, pode-se fazer várias outras coisas, como a criação de servidores de socket para escutar as conexões de entrada nas portas, transferir arquivos pelo terminal e etc.

Por isso, é chamado de "canivete suíço para TCP/IP", possui várias opções e você pode escolher para fazer determinados serviços de sua preferência.

Netcat é um serviço de rede de computadores para leitura e gravação de rede, usando conexões TCP ou UDP. Netcat é projetado para ser um dispositivo confiável, que pode ser usado diretamente, ou facilmente, conduzido por outros programas e scripts.

Ao mesmo tempo, é rico em ferramentas de depuração e investigação, uma vez que pode produzir quase qualquer tipo de correlação que você precisa e tem uma série de recursos internos.

Conceito de Telnet

A primeira coisa que o Netcat pode fazer, é ser utilizado como um programa de Telnet.

Olhe o seguinte exemplo:

nc -v google.com 80

Agora, o Netcat está ligado ao Google.com na porta 80, e é hora de enviar alguma mensagem. Vamos tentar buscar a página do índice.

Digite: GET index.html HTTP/1.1
E pressione a tecla Enter duas vezes.

Exemplo:

nc -v www.vivaolinux.com.br 80
  Connection to www.vivaolinux.com.br 80 port [tcp/http] succeeded!
  GET index.html HTTP/1.1
    
  HTTP/1.0 400 Bad Request
  Date: Sat, 01 Mar 2014 13:08:03 GMT
  Server: Apache
  Vary: Accept-Encoding
  Content-Length: 226
  Content-Type: text/html; charset=iso-8859-1
    
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>400 Bad Request</title>
  </head><body>
  <h1>Bad Request</h1>
  <p>Your browser sent a request that this server could not understand.<br />
  </p>
  </body></html>
   
   
A saída do vivaolinux.com.br foi recebida e repetiu no terminal.

Conceito de tomada simples

Para abrir um tipo de servidor de socket simples, utilize o comando a seguir:

nc -l -v 1234

O comando acima, pede para o Netcat ouvir a porta TCP 1234.

A opção -v, dá a saída detalhada para melhor compreensão. Agora, de outro terminal, tentar se conectar à porta 1234, usando o comando telnet da seguinte forma:

telnet localhost 1234
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  linux
  Hey vol
   
   
Após a ligação, enviamos alguns mensagens de teste, como "linux" e "hey vol", para o servidor de socket Netcat. O servidor ecoará os dados recebidos do cliente telnet.

nc -l -v 5555
  Conexão da porta 127.0.0.1 5555 [tcp / rplay] aceita
  linux
  Hey vol
   
   
Este é um completo sistema de chat. Digite algo no terminal e ele vai aparecer no terminal de telnet também. Portanto, esta técnica pode ser usada para bater papo entre duas máquinas.

Portas UDP

Netcat funciona com as portas UDP também, para iniciar um servidor Netcat usando portas UDP, usa-se a opção -u:

nc -v -ul 7000

Conecte-se a este servidor, usando Netcat de outro terminal:

nc localhost -u 7000

Agora, ambos os terminais podem conversar entre si:

netstat | grep 7000
  udp   0      0 localhost:42634     localhost:7000     Estabelecida
   
   
Agora, vamos falar, de nada mais nada menos, que sobre port scanning, que é uma das minhas opções preferidas de uso do Netcat. Se eu não estiver enganado, existe até um script aqui no VOL feito em Shell Script para auxiliar o uso do Nmap com Netcat juntos.

Chega de conversa e vamos ao que interessa.

Netcat também pode ser usado para port scanning. No entanto, este não é um uso adequado do Netcat e uma ferramenta mais aplicável como Nmap deve ser usada.

nc -v -n -z -w 1 192.168.2.9 75-85
  nc: connect to 192.168.2.9 port 75 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 76 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 77 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 78 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 79 (tcp) timed out: Operation now in progress
  Connection to 192.168.2.9 80 port [tcp/*] succeeded!
  nc: connect to 192.168.2.9 port 81 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 82 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 83 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 84 (tcp) timed out: Operation now in progress
  nc: connect to 192.168.2.9 port 85 (tcp) timed out: Operation now in progress
   
   
Onde:
  • O parâmetro -n, impede a pesquisa de DNS;
  • -z faz com que o Netcat não receba quaisquer dados do servidor;
  • E -w 1, faz com que o tempo limite de conexão depois de 1 segundo, fique na inatividade.

Copiar um arquivo de um sistema para o outro

Digamos que deseja-se copiar o arquivo vivaolinux.tar.gz a partir do Server1 para o Server2. Para fazer isso, execute o seguinte comando no exemplo abaixo:

Server2:

nc -lp 1234 > vivaolinux.tar.gz

No Server1, execute:

nc -w 1 server2.exemplo.com 1234 < vivaolinux.tar.gz

Para iniciar a transferência do arquivo.

Chat com o Netcat

Você pode usar o Netcat para conversar de um sistema com outro, ambos na linha de comando:

Server2:

nc -lp 1234

O Server2, então, espera até Server1 conectar na porta 1234:

No Server1, execute:

nc server2.exemplo.com 1234

Agora, você pode digitar mensagens em qualquer sistema e pressione Enter, que elas vão aparecer no outro sistema. Para fechar o bate-papo, pressione Ctrl+c em qualquer sistema.

Finalizando

Bom, é só isso pessoal.

Estou estudando muito e não tenho muito tempo, estou cansado e é só isso que eu consigo produzir.

Até mais, Nerds viciados por um bom café e GNU/Linux. (ahsuhaus)

   

Páginas do artigo
   1. Mini introdução ao Netcat para leigos
Outros artigos deste autor

Principais formas de anonimato ao navegar na Internet

Leitura recomendada

Snapshots de pacotes para o Debian

Abordagem de controle de banda com QoS

Instalando o Slackware em 15 minutos

Instalar o Go (Golang) no Debian e Ubuntu

Ubuntu - Manual do Iniciante

  
Comentários
[1] Comentário enviado por vinipsmaker em 03/03/2014 - 02:03h

Eu usava o telnet para fazer meus testes de rede e sempre esbarrava na dificuldade de criar um servidor para capturar os dados dos clientes. Na maioria das vezes acabava criando meu próprio servidor, que tinha uma carência de recursos tão chamativa que logo depois o projeto perdia a utilidade e era apagado.

Vou usar o netcat de agora em diante.
:D

Fui procurar e descobri que tem 3 variantes principais, a GNU, a BSD e a do pessoal do Nmap. Vi que a versão do pessoal do Nmap tinha mais recursos e estou usando ela. Mas responde aí, que variação tu usa?

[2] Comentário enviado por cromado em 03/03/2014 - 10:34h

Gosto de usar o Netcat para ver se a porta realmente está aberta entre os hosts, principalmente a UDP, que é mais complicada de depurar.
Administrador de Rede vive falando que liberaram as regras de Firewall, e pra você nada funciona. Netcat mata os Homi =).

[3] Comentário enviado por Narcochaos em 03/03/2014 - 11:06h

A do Nmap possui bastante variantes já que pode ser usado as duas variantes ambos no mesmo ambiente e até em conjunto.

[4] Comentário enviado por MAPOGOS em 03/03/2014 - 17:36h

Interessante esse bate papo entre maquinas, também revisando sobre Telnet e reelembrando que é um protocolo TCP/IP E UDP.O assunto agora são portas bloqueadas que também é o que mais encontra-se por ae nos Modens NetVirtua.Como sou tecnico da Net diretamente dia dia acesso remoto e serviços relacionados a portas bloqueadas.
Tem umas configurações no Firmware destes para estar ativando estas portas que geralmente não estão bloqueadas.Muito interessante este artigo.
Ja revisei algumas coisas me direcionando para estudar outras...
O mundo é dos Nerds...

[5] Comentário enviado por r4 em 07/03/2014 - 20:11h

muito legal vou testar aki

[6] Comentário enviado por wagnerfs em 01/03/2016 - 03:22h

Muito boa a dica. Vai me ajudar nos estudos para a LPIC-2
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts