Certamente que já ouviram falar em serviços/aplicações que usam o protocolo TCP ou UDP. Os protocolos TCP e UDP pertencem à camada 4 do modelo OSI (camada de transporte) e em traços gerais, em conjunto com o porto e IP da máquina, definem como uma determinada informação é transmitida na rede.
Numa máquina existem 65.536 portos TCP que podem ser usadas pelas mais diversas aplicações/serviços, o que (teoricamente) poderíamos ter 65.536 aplicações/serviços distintos a correr em simultâneo na nossa máquina. Relembrando o que foi referido em artigos anteriores: o IP identifica a máquina e o porto identifica a aplicação/serviço. Além das portos TCP temos também 65.536 portos UDP. Mas como saber quais o portos abertos num PC?
O Nmap (“Network Mapper”) é um ferramenta muito usada para realizar auditorias ao nível da segurança em redes informáticas (esta ferramenta é também muito usada por hackers que a usam para avaliar remotamente quais os portos abertos numa determinada máquina, identificar qual o sistema operativo instalado na máquina remota e desta forma explorar as possíveis vulnerabilidades).
Funcionalidades mais importantes do Nmap:
- Identificação dos computadores de uma rede, por exemplo, a lista dos computadores que respondem a pings, ou que tenham um determinado porto aberto;
- Detecção de portos abertos em um ou mais computadores de destino;
- Identificação dos serviços de rede em computadores remotos para determinar o nome da aplicação e o número da versão que estão a executar num computador de destino;
- Detecção do sistema operativo e algumas características de hardware de dispositivos de rede;
O Nmap é uma ferramenta extremamente completa, sendo várias as opções disponíveis. O utilizar pode usar esta ferramenta no Linux ou então no Windows (ver aqui).
Alguns parâmetros do Nmap
- -sA– Verifica a versão de uma aplicação
- -sO– Verifica qual o sistema Operativo
- -sU– Verifica o estado dos portos UDP
- -sP– efectua ping
- -sV– versão dos serviços
- –sS– half-open scan (Para que a probabilidade do scan ser detectado por uma firewall seja menor)
- -p – indicar porto ou range de portos
Vamos a alguns exemplos:
Exemplo 1 – Saber os portos TCP abertos da máquina 192.168.10.200
nmap -sT 192.168.10.200
Nmap scan report for pplware.com (192.168.10.200)
Host is up (0.015s latency).
Not shown: 989 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
912/tcp open unknown
990/tcp open ftps
3330/tcp open unknown
3389/tcp open ms-term-serv
5800/tcp open vnc-http
5900/tcp open vnc
MAC Address: 05:45:3E:41:AB:DC
Exemplo 2 – Saber se o porto 161 está aberto no range de IP’s 172.17.12.0-3
nmap -p 161 -sU 172.17.12.0-3
Interesting ports on 171.17.12.1: PORT STATE SERVICE 161/udp open|filtered snmp
Interesting ports on 171.17.12.2: PORT STATE SERVICE 161/udp open|filtered snmp
Interesting ports on 171.17.12.3: PORT STATE SERVICE 161/udp open|filtered snmp
Exemplo 3 – Ter um inventário de todas as máquinas de uma determinada rede. Com o seguinte comando, podemos saber para cada PC da rede 192.168.10.0/24 quais os portos abertos, MacAddress, qual o sistema operativo, latência, etc.
nmap -sS -O -T3 -oA invent 192.168.10.0/24
Nmap scan report for 192.168.10.1
Host is up (0.0029s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
10001/tcp open unknown
10002/tcp open unknown
10003/tcp open unknown
10004/tcp open unknown
10009/tcp open unknown
MAC Address: 05:31:3E:41:AB:DC (Toshiba)
Device type: general purpose
Running: Microsoft Windows XP
OS details: Microsoft Windows XP SP1
Network Distance: 1 hop
Exemplo 4 – Verificar todos os portos disponíveis num PC. Por omissão, o Nmap apenas faz o scan a 1661 portos (os mais conhecidos). Se pretenderem que o Nmap faça um scan completo a todos os portos basta usarem o seguinte comando:
nmap -sS -p 0-65535 192.168.0.4
Nmap scan report for ab.pplware.com (192.168.0.4)
Host is up (0.0039s latency).
Not shown: 7989 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
912/tcp open unknown
990/tcp open ftps
3300/tcp open unknown
3389/tcp open ms-term-serv
5800/tcp open vnc-http
5900/tcp open vnc
5938/tcp open unknown
MAC Address: 05:31:3E:41:AB:DC
Nmap done: 1 IP address (1 host up) scanned in 3.84 seconds
O Nmap é sem duvida uma ferramenta extremamente interessante para identificação dos portos abertos num computador local ou remoto. Caso pretendam efectuar os testes seguintes na vossa própria máquina, devem trocar o endereço IP por 127.0.0.1. Estes foram alguns exemplos da utilização do Nmap mas ha muitos muitos mais. Se tiverem exemplos interessantes não se esqueçam de partilhar connosco.