Aprenda a usar o Netcat para auditoria de segurança em Linux
Nesta dica da semana da 4Linux, iremos aprender como trabalhar com o nc (Netcat), uma ferramente utilizada para auditoria de vulnerabilidades e segurança.
O que é?
O comando netcat é uma ferramenta implementada em sistemas Linux a partir de 1995, cuja função é estabelecer conexões entre hosts, ou seja entre as máquinas da sua rede, sendo ela interna ou externa.
O que Faz?
Basicamente o que o netcat faz é estabelecer uma conexão entre dois computadores, utilizando os protocolos TCP ou UDP como meio de tráfego para que seja possível escrever dados em conexões de rede.
Fazendo uma analogia direta com comandos do mundo Unix, podemos dizer que o netcat é como se fizessemos um cat utilizando sockets TCP e UDP.
Principais Parâmetros
O netcat é invocado em um terminal linux pelo comando nc, suas principais opções podem ser visualizadas com o seguinte comando:
nc -help
Abaixo algumas opções que serão úteis a nossos testes:
-e → Permite especifica o nome do programa a ser executado após uma conexão.
-l → Habilita o módulo “listen” do netcat, ou seja, a ferramenta passará a escutar as conexões ocorridas na porta especificada.
-p → Especifica qual porta será utilizada pelo netcat ao fechar uma conexão;
-u → Habilita o uso do protocolo UDP, por padrão o netcat trabalha utilizando o padrão TCP/IP de conexão;
-v → Permitirá restringir a quantidade de mensagens mostrada em tela, na prática poderemos criar conexões com maior nível de detalhamento no retorno das informações;
-w → Permite limitar o tempo de uma conexão com um valor numérico passado em segundos.
Para começarmos, abra dois terminais em sua máquina, no primeiro inicie o netcat colocando a ferramenta para escutar o tráfego em uma porta alta:
nc -vv -l -p 7000
A partir deste momento a porta 7000 estará aberta via netcat, para testar a comunicação com esta porta execute o seguinte comando do segundo terminal:
nc 127.0.0.1 7000
Olha ai o netcat funcionando…
Em nossos testes utilizarei a própria interface de loopback para fechar a conexão. Os testes que estamos executando é na própria máquina local, mas é possível também realizar os testes apartir de uma outra máquina na rede.
Se você possuir outra maquina na rede você poderá utilizá-la para coisas ainda mais interessante, como por exemplo, utilizando duas maquinas diferentes será possível abrir um chat nerd via netcat. =)
A partir do nectat é possível efetuar transferências de arquivos conforme o modelo abaixo, onde no primeiro comando abriremos uma conexão utilizando a porta 8000 e gravando a saída no arquivo recebi.txt.
nc -vv -l -p 8000 > recebi.txt
Agora a partir de um cliente com nc envio o arquivo ao meu servidor:
nc 127.0.0.1 8000 < /etc/hosts
Saia do nc e verifique se o arquivo foi enviado.
cat recebi.txt
Utilize o netcat como scanner para determinar se uma determinada porta esta aberta, neste exemplo verificaremos se um servidor esta aceitando conexões na porta 22 padrão do serviço SSH:
nc -vv 127.0.0.1 22
Utilizando a opção -e do netcat teremos um efeito muito interessante, poderemos simplesmente indicar uma shell como programa a ser executado ao fechar a conexão, dessa forma poderemos executar comandos através da porta aberta via nc, o interessante é que esses comandos serão executados no terminal onde a conexão foi aberta, ou seja, do lado do cliente (Entrada/STDIN), porém sua saída será enviada pela rede ao servidor (saída/STDOUT), na prática será como enviar comandos ao servidor via SSH.
No terminal que representa o servidor execute:
nc -vv -l -p 9000 -w 120 -e /bin/bash
No cliente faça uma conexão e envie os comandos:
nc -vv 127.0.0.1 9000
localhost [127.0.0.1] 9000 (?) open
ls /
ip a
cat /etc/hosts
Volte ao terminal anterior e verifique a saída dos comandos digitados, como utilizamos a opção -w esta conexão terá um limite de tempo de 2 minutos.
Dicas rápidas de segurança
O netcat em si já é uma ferramenta de segurança, seja em seu uso ofensivo como na abertura de backdoors ou como ferramenta de diagnóstico de vulnerabilidades, dessa forma tome cuidado ao efetuar testes com esta ferramenta, em um primeiro contato com este comando faça os testes a nível interno ou utilizando máquinas virtuais. Se necessário usar sua própria máquina atente-se para finalizar todas as conexões e processos abertos por esta ferramenta.
Referências
Instant Netcat Starter – Yerrid K.C.
Disponível em:www.packtpub.com
About author
Você pode gostar também
Entenda a LGPD e como ela impacta a segurança dos seus dados
LGPD Em 2018, o Brasil adotou a LGPD (Lei Geral de Proteção de dados Pessoais – LGPD/LGPDP), assim como diversos outros países (os EUA, a CCPA e a União Europeia,
Entenda o Ataque Man-In-The-Middle e Como Detectá-lo
Você sabe o que é MITM? O Man-In-The-Middle (em português: Homem no Meio), faz referência ao atacante que intercepta os dados trocados entre duas partes (por exemplo: você e o
DevSecOps: 6 passos para implementar segurança no desenvolvimento de software
A cultura DevOps se tornou um marco na história da tecnologia, tanto que muitos recrutadores começaram a utilizar este nome até para descrição de vagas. Mas onde fica a segurança