wiki:linux:comandos:comando_nc
Table of Contents
Exemplos do comando nc (netcat)
Nível Básico
- Verificar a conectividade com uma porta em um servidor remoto:
nc -zv servidor_remoto 80
- Verifica se a porta `80` no servidor `servidor_remoto` está aberta (a opção `-z` evita enviar dados, e `-v` exibe informações detalhadas).
- Iniciar um servidor de escuta em uma porta específica:
nc -l 12345
- Coloca o `netcat` em modo de escuta na porta `12345`, aguardando conexões.
- Conectar-se a um servidor via TCP em uma porta específica:
nc servidor_remoto 12345
- Conecta-se ao servidor `servidor_remoto` na porta `12345` via TCP.
- Enviar uma mensagem de texto simples via netcat:
echo "Olá, mundo" | nc servidor_remoto 12345
- Envia a mensagem “Olá, mundo” ao servidor `servidor_remoto` na porta `12345`.
Nível Intermediário
- Transferir um arquivo de uma máquina para outra com `nc`:
- No servidor de destino (receber):<br>
nc -l 12345 > arquivo_recebido.txt
<br>
- *Na máquina de origem (enviar):<br> <code>nc servidor_remoto 12345 < arquivo.txt</code> - Transfere o arquivo `arquivo.txt` de uma máquina para outra, salvando-o como `arquivo_recebido.txt`. * Testar múltiplas portas em um servidor remoto: - <code>nc -zv servidor_remoto 20-25</code> - Testa as portas `20` a `25` no servidor `servidor_remoto` para verificar se estão abertas. * Escutar em uma porta específica e mostrar uma mensagem de confirmação: - <code>nc -lv 12345</code> - Coloca o netcat em modo de escuta na porta `12345` e exibe mensagens detalhadas sobre a conexão. * Iniciar um chat bidirecional com netcat: - No servidor A:<br> <code>nc -l 12345</code><br> No cliente B:<br> <code>nc servidor_A 12345</code> - Inicia uma comunicação bidirecional entre o servidor A e o cliente B, funcionando como um chat. * Verificar a conectividade via UDP: - <code>nc -u -zv servidor_remoto 12345</code> - Testa a conectividade com a porta `12345` no servidor `servidor_remoto` via UDP. ==== Nível Avançado ==== * Criar uma conexão reversa para acesso remoto: - No cliente (iniciador da conexão):<br> <code>nc -lvp 4444 -e /bin/bash</code><br> No servidor (conectando-se ao cliente):<br> <code>nc cliente_remoto 4444</code> - Cria uma conexão reversa, onde o servidor obtém um shell na máquina cliente, permitindo execução remota de comandos. * Escutar em uma porta específica e logar conexões recebidas: - <code>nc -l 12345 | tee log_conexoes.txt</code> - Escuta na porta `12345` e grava todas as conexões recebidas no arquivo `log_conexoes.txt`. * Transferir múltiplos arquivos via tar e netcat: - No servidor de destino (receber):<br> <code>nc -l 12345 | tar xvf -</code><br> Na máquina de origem (enviar):<br> <code>tar cvf - /diretorio_a_enviar | nc servidor_remoto 12345</code> - Transfere um diretório inteiro compactado com `tar` via netcat, descompactando diretamente no destino. * Enviar um arquivo via UDP: - No servidor de destino (receber):<br> <code>nc -u -l 12345 > arquivo_recebido.txt</code><br> Na máquina de origem (enviar):<br> <code>nc -u servidor_remoto 12345 < arquivo.txt</code> - Envia o arquivo `arquivo.txt` via UDP para o servidor remoto, salvando-o como `arquivo_recebido.txt`. * Executar um port scan simples em um servidor: - <code>nc -zv servidor_remoto 1-65535</code> - Escaneia todas as portas do servidor `servidor_remoto` (portas de `1` a `65535`) para verificar quais estão abertas. ==== Nível Especializado ==== * Criar um proxy simples com netcat (proxying): - <code>nc -l 8888 | nc servidor_remoto 80</code> - Cria um proxy simples que escuta na porta `8888` e redireciona o tráfego para o servidor `servidor_remoto` na porta `80`. * Criar um servidor HTTP simples com netcat: - <code>while true; do echo -e “HTTP/1.1 200 OK\r\n\r\nBem vindo ao servidor HTTP” | nc -l 8080; done</code> - Cria um servidor HTTP simples que responde com uma mensagem de boas-vindas em todas as conexões na porta `8080`. * Encaminhar portas para outros servidores (Port Forwarding) com netcat: - <code>nc -l 8080 -c “nc servidor_remoto 80”</code> - Redireciona o tráfego da porta `8080` local para a porta `80` do `servidor_remoto`. * Criar um relay TCP usando netcat: - <code>nc -l 12345 | nc outro_servidor 80</code> - Cria um relay TCP que recebe conexões na porta `12345` e encaminha as solicitações para outro servidor na porta `80`. * Manter uma conexão persistente com reconexões automáticas: - <code>while true; do nc servidor_remoto 12345; sleep 5; done</code> - Tenta se conectar ao servidor remoto na porta `12345`, e caso a conexão falhe, tenta novamente após 5 segundos. * Escanear portas específicas via UDP: - <code>nc -uzv servidor_remoto 53 123 161</code> - Escaneia as portas `53`, `123`, e `161` no servidor `servidor_remoto` via UDP, verificando se estão abertas. * Enviar um comando bash remoto via netcat: - No servidor que receberá o comando:<br> <code>nc -l -p 4444 -e /bin/bash</code><br> Na máquina que envia o comando:**<br>
nc servidor_remoto 4444
- Estabelece uma sessão de shell interativo entre a máquina cliente e o servidor.
wiki/linux/comandos/comando_nc.txt · Last modified: by Wiki Administrator
