Objetivos
O NETCAT é uma ferramenta muito utilizada em testes de penetração, segurança de servidores GNU/Linux assim como validação da configuração de firewalls.
O NETCAT funciona com uma arquitetura cliente/servidor. É possível configurar em uma máquina para que escute em determinadas portas TCP ou UDP para poder realizar diversos testes de conectividade.
Para fins de testes foram utilizadas duas máquinas, marte e omicron, com o comando nc instalado. Em ambas, a firewall IPTABLES estava desabilitada. A máquina omicron representa o servidor no qual deseja-se testar a abertura de certas portas, enquanto que a máquina marte é a que realiza os testes.
Principais opções do comando
[root@omicron ~]# nc -h usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version] [-x proxy_address[:port]] [hostname] [port[s]] Command Summary: -4 Use IPv4 -6 Use IPv6 -D Enable the debug socket option -d Detach from stdin -h This help text -i secs Delay interval for lines sent, ports scanned -k Keep inbound sockets open for multiple connects -l Listen mode, for inbound connects -n Suppress name/port resolutions -p port Specify local port for remote connects -r Randomize remote ports -s addr Local source address -T ToS Set IP Type of Service -C Send CRLF as line-ending -t Answer TELNET negotiation -U Use UNIX domain socket -u UDP mode -v Verbose -w secs Timeout for connects and final net reads -X proto Proxy protocol: "4", "5" (SOCKS) or "connect" -x addr[:port] Specify proxy address and port -z Zero-I/O mode [used for scanning] Port numbers can be individual or ranges: lo-hi [inclusive] |
Testando Portas TCP
Abrindo no servidor omicron a porta TCP 1111 e colocando ela no modo LISTEN (-l)
[root@omicron ~]# nc -4 -l 172.16.1.125 1111 |
Abrindo no servidor marte uma conexão cliente e realizando uma digitação de texto para verificar
[root@marte:/home/klaus]# nc 172.16.1.125 1111 Teste da marte oi aqui é da marte |
Logo aparecerá o mesmo texto digitado no servidor omicron.
Testando Portas UDP
Os testes com o protocolo UDP possuem algumas considerações para fazer.
No servidor omicron foi executado o seguinte comando:
[root@omicron nc-1.84]# nc -l -u 172.16.1.125 2525 |
No cliente marte foi executado o seguinte comando:
[root@marte:/home/klaus]# echo "teste UDP" | nc -w 1 -u 172.16.1.125 2525 |
Desta maneira aparecerá no servidor omicron o texto "teste UDP" apenas uma vez. Não é possível digitar interativamente um texto para enviar entre o cliente e o servidor como no caso do UDP.