Netcat (ou nc
) é um utilitário de linha de comando que lê e escreve dados através de conexões de rede, usando os protocolos TCP ou UDP. É uma das ferramentas mais poderosas do arsenal de administradores de rede e sistema, e considerado como um canivete do exército suíço de ferramentas de rede.
Netcat é uma plataforma cruzada, e está disponível para Linux, macOS, Windows e BSD. Você pode usar o Netcat para depurar e monitorar conexões de rede, pesquisar portas abertas, transferir dados, como um proxy, e muito mais.,
O pacote Netcat é pré-instalado em macOS e distribuições Linux populares como Ubuntu, Debian ou CentOS.
Netcat Sintaxe #
A maioria sintaxe básica do Netcat utilitário assume a seguinte forma:
nc host port
No Ubuntu, você pode usar um netcat
ou nc
. Ambos são ligações simbólicas para a versão openBSD do Netcat.
Por padrão, o Netcat tentará iniciar uma conexão TCP para a máquina e porta especificadas., Se quiser estabelecer uma ligação UDP, use o -u
opção:
nc -u host port
portas de varrimento #
Portas de varrimento é uma das utilizações mais comuns para o Netcat. Você pode digitalizar uma única porta ou um alcance de porta.,
Por exemplo, para digitalizar para abrir as portas no intervalo 20-80 você usaria o seguinte comando:
nc -z -v 10.10.8.8 20-80
-z
opção irá dizer nc
para além de digitalizar para abrir portas, sem a necessidade de envio de dados para eles e para o -v
opção para fornecer mais informações detalhadas.
O resultado será parecido com isto:
Se quiser imprimir apenas as linhas com as portas abertas, poderá filtrar os resultados com o comando grep
.,
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded!Connection to 10.10.8.8 80 port succeeded!
Pode também utilizar o Netcat para encontrar o software do servidor e a sua versão. Por exemplo, se você enviar um comando “SAIR” para o servidor na porta padrão do SSH 22 :
echo "EXIT" | nc 10.10.8.8 22
A saída será algo parecido com isso:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4Protocol mismatch.
Para fazer varredura de portas UDP basta adicionar o -u
opção para o comando, como mostrado abaixo:
nc -z -v -u 10.10.8.8 20-80
Normalmente, o Nmap é uma ferramenta melhor do que o Netcat para o complexo de varredura de porta.,
enviar arquivos através do Netcat #
Netcat pode ser usado para transferir dados de uma máquina para outra, criando um modelo básico cliente/servidor.
isto funciona configurando o Netcat para ouvir numa porta específica (usando a opção -l
) na máquina receptora e, em seguida, estabelecendo uma ligação TCP regular da outra máquina e enviando o ficheiro por cima dela.,
a receber execute o seguinte comando que irá abrir a porta 5555 para conexão de entrada e redirecionar a saída para o arquivo:
nc -l 5555 > file_name
a Partir do host de envio conectar-se ao host de recebimento e enviar o arquivo:
nc receiving.host.com 5555 < file_name
Para transferir um diretório, você pode usar tar
arquivar o diretório no host de origem, e para extrair o arquivo no host de destino.
na máquina de recepção, defina a ferramenta Netcat para ouvir uma ligação recebida na porta 5555., Os dados de entrada é canalizada para o tar
comando, que irá extrair o arquivo:
nc -l 5555 | tar xzvf -
Sobre o host de envio de pacote de diretório e enviar os dados conectando-se ao ouvir nc
processo no host de recebimento:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Você pode ver o progresso da transferência em ambas as extremidades. Uma vez concluída, digite CTRL+C
para fechar a conexão.
criar um servidor de Chat simples #
o procedimento para criar um chat online entre duas ou mais máquinas é o mesmo que ao transferir arquivos.,
No primeiro host iniciar um Netcat processo para escutar na porta 5555:
nc -l 5555
a Partir do segundo host execute o seguinte comando para ligar a porta de escuta:
nc first.host.com 5555
Agora, se você digitar uma mensagem e pressione ENTER
será mostrado em ambos os hosts.
para fechar a ligação, escreva CTRL+C
.
Executar uma solicitação HTTP #
Embora há muito melhores ferramentas para solicitações HTTP, como curl
, você também pode usar o Netcat para enviar várias solicitações para servidores remotos.,
Por exemplo, para recuperar a página man do Netcat do site OpenBSD, você escreveria:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
a resposta completa, incluindo os cabeçalhos HTTP e código HTML, será impressa no terminal.
conclusão #
neste tutorial, você aprendeu a usar o utilitário Netcat para estabelecer e testar conexões TCP e UDP.
para mais informações, visite a página man do Netcat e leia sobre todas as outras opções poderosas do comando Netcat.
Leave a Reply