Dicas e truques com comando netcat no Linux

Dicas e truques com comando netcat no Linux

O NetCat é um utilitário de rede versátil que pode ser usado para ler e escrever para conexões TCP e UDP em portas arbitrárias (como em outros utilitários usados ​​em linux, portas abaixo de 1024 requerem privilégios de raiz/sudo). Por padrão, o NetCat usa conexões TCP, mas o UDP pode ser especificado com o -você bandeira. O NetCat pode ser usado como servidor e um cliente. Quando usado como servidor, o -eu A bandeira é usada para ouvir uma conexão. Semelhante ao comando CAT, o NetCat pode receber informações do stdin e gravar para o stdout, tornando -o ótimo para fluxos de trabalho envolvendo tubos e redirecionamentos. O NC O comando é normalmente usado para evocar o NetCat para facilitar o uso.

Neste tutorial, você aprenderá a fazer o seguinte com o NetCat:

  • Faça uma solicitação HTTP para pegar uma página da web
  • Converse com amigos em máquinas
  • Copie arquivos entre máquinas
  • Execute a digitalização da porta
  • Veja as mensagens do netcat em um navegador da web
  • criar e conectar -se a uma concha reversa
Dicas e truques com comando netcat no Linux

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição
Programas Netcat
Outro Privilégios de raiz para usar portas abaixo de 1024
Convenções # - comandos do Linux a serem executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - comandos Linux a serem executados como um usuário não privilegiado regular

Pegando uma página da web

AVISO
As conexões NetCat não são criptografadas. Os exemplos a seguir transmitem dados no claro. Não use o NetCat para transmitir dados confidenciais em redes não confiáveis, como a Internet e o Wi-Fi público. Se você precisar transmitir dados com segurança, considere OpenSsh.

O NetCat pode ser usado para fazer conexões arbitrárias com serviços de rede. Como resultado, ele pode ser usado para fazer solicitações HTTP a um servidor da Web, como um navegador da web faria. Vamos em frente e pegar a página de índice do Google.com.
Introduzir o NC comando seguido pelo hospedar e a porta você quer se conectar a.

$ nc google.com 80 

Agora vamos fazer o pedido HTTP. Digite ou copie/cole o seguinte e pressione Enter duas vezes.

Obtenha /índice.html http/1.1


Você deve ver a saída semelhante a esta captura de tela.

Pegue o site usando o netcat

Bater papo

Este exemplo pressupõe que você tenha 2 computadores na mesma rede, com nomes de hosts host1 e host2. Esta suposição será feita em exemplos a seguir também. Para criar uma conexão de escuta do NetCat no host1, digite o seguinte.

$ nc -lv 8888 

Isso ouve as conexões na porta 8888. O -v Flag especifica a saída detalhada que fornecerá mais informações sobre as conexões recebidas.

Agora host2 digitar:

$ nc host1 8888 

Você notará que qualquer texto inserido no terminal no host1 é enviado ao terminal no host2 e vice -versa. Isso pode ser usado como um bate -papo adhoc entre dois usuários na mesma rede.

Transferência de arquivo

NetCat pode ser usado para copiar um arquivo de uma máquina para outra. Vamos supor que você tenha um arquivo chamado NCNotes.TXT que você deseja transferir host1 para host2

No Host1, digite o seguinte para criar o arquivo e ouvir uma conexão recebida para transferi -lo na porta 2222:

$ eco “estas são minhas notas netcat”> ncnotes.txt $ nc -l 2222 < ncnotes.txt 

No Host2, insira o seguinte para copiar/receber o arquivo e depois imprimi -lo para stdout para verificar se a transferência de arquivo foi oCIFIA.

$ nc host1 2222> NCNOTES.txt $ cat ncnotes 

E se você quiser transferir uma pasta inteira em vez de apenas um único arquivo? NetCat não é capaz de fazer isso por conta própria, então teremos que utilizar o comando alcatrão.

Digite o seguinte no Host1 para criar uma pasta cheia de cinco arquivos e depois use TAR para criar um arquivo e tubá -lo sobre a rede com o NetCat.

arquivos $ mkdir; Toque em arquivos/1… 5 $ Tar -CVZ Arquivos | nc -l 8888 

Insira o seguinte host2 Para transferir a pasta e verificar se ela inclui todos os cinco arquivos.

$ NC Host1 8888 | Tar -xvz $ LS Arquivos 

No host1 o -c A bandeira é usada para criar o arquivo que será canalizado para o netcat, -v é usado para saída detalhada para que tenhamos feedback visual que nos permita saber que isso está acontecendo e -z é usado para comprimir o arquivo para que a transferência de rede seja mais rápida. Em nosso exemplo, a compressão não faz muita diferença, pois o arquivos A pasta é preenchida com arquivos vazios, mas você pode transferir grandes diretórios/arquivos, por isso é bom saber. No host2 o -x A bandeira é usada para extrair o arquivo que é canalizado do netcat, -v é para extração detalhada e -z é descomprimir o arquivo.

Digitalização da porta

NetCat pode ser usado como um scanner de porta rudimentar usando o -z bandeira.

Suponha que você esteja host1 E você quer saber se um servidor ssh está em execução no host2. Supondo que esteja em execução na porta padrão (22) e não há acesso ao bloqueio de firewall, você pode usar o seguinte comando para ver se o serviço está executando.

$ nc -zv host2 22 

O NetCat também pode escanear uma variedade de portas para ver qual se algum deles estiver aberto. Isso pode ser usado para inferir quais serviços essa máquina está executando. Suponha que você esteja host2 E você quer ver se há portas entre 1 e 1024 estão abertos host1; você pode usar o seguinte comando.

$ nc -zv host1 1-1024 

Dependendo da versão do NetCat que você instalou em seu sistema, o comando anterior relatará apenas as portas abertas ou imprimirá uma linha para cada porta aberta e fechada. Se o primeiro for o caso, a saída será muito fácil de ler, mas se o último for o caso, a saída pode ser difícil de analisar e o seguinte comando deve ser usado para que apenas portas abertas sejam exibidas.

$ nc -zv host1 1-1024 2> & 1 | Grep conseguiu 


Veja a mensagem no navegador

Sobre host1 Digite o seguinte. O -k A bandeira mantém a conexão viva para que possa ser reconectada novamente pela mesma máquina ou por outras máquinas. Sem essa bandeira host1 Pare de parar de ouvir mais conexões assim que a primeira conexão for feita.

$ eco "Olá" | NC -LKV 5555 

Sobre host2 Abra um navegador e navegue para Host1: 5555

Você deve ver as palavras olá exibido no navegador.

Casca reversa

O NetCat também pode ser usado para estabelecer uma concha reversa para administrar remotamente uma máquina sobre a rede. Isso é feito com o -e bandeira. Neste exemplo, queremos nos conectar a um shell de festa em host2 Para administrá -lo de host1.

Sobre host1 digitar:

$ nc -lv 6666 

Sobre host2 digitar:

$ nc -v host1 6666 -e /bin /bash 

Agora host1 Digite o seguinte e ficará aparente que temos acesso remoto ao shell da festa em host2.

$ hostname $ whoami $ ls 

Você deve ver o nome do host para host2, o nome de usuário do usuário que iniciou NC sobre host2 e seus arquivos. Muitas versões do netcat não incluem o -e opção devido ao seu potencial de abuso. Estabelecer um shell remoto em uma máquina que tenha uma versão do NetCat que não inclua a opção -e exigiria a execução dos mesmos comandos do NetCat no Host1, enquanto usava um programa diferente para criar o shell reverso em host2. Soluções para isso existem para Bash, Python, Perl, Php e muito mais.

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Mastering Bash Script Loops
  • Coisas para instalar no Ubuntu 20.04
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1
  • Exemplos úteis de linha de comando BASH - Parte 3
  • Exemplos úteis de linha de comando Bash e truques - Parte 4
  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2
  • Introdução aos tubos nomeados na casca de bash
  • Exemplos úteis de linha de comando BASH - Parte 5