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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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.
nc [options] [host] [port] – como padrão, este comando realizará um escaneamento de porta
nc -l [host] [port] – aciona um ouvinte na porta especificada
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
nc [host] [port] > relay.bat – abre uma conexão de relay
nc -l -p [port] -e relay.bat – conecta-se ao relay
nc -l -p [port] 0 (less than) backpipe (pipe) nc [client IP] [port] (pipe) tee backpipe
nc [host] [port] (greater than) file_name.out – enviar um arquivo
nc [host] [port] (less than) file_name.in – receber um arquivo
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
echo “” | nc -zv -wl [host] [port range] – obtém banners TCP de um intervalo de portas
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
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.