Dicas do nmap

De Wiki Hackstore

Como todos sabem, o nmap é o mais famoso portscan existente hoje. (www.insecure.org/nmap). É uma ótima ferramente para administradores, para descobrir portas abertas em seu sistema, e possivelmente acusar alguma vulnerabilidade no mesmo.

Só que também é muito utilizado por hackers, para descobrir falhas no sistema, em portas abertas desnecessariamente.

Estava estudando alguns comandos do nmap, com algumas referências do ¨Building Secure Servers with Linux¨ (O'Reilly), e achei uma tag fenomenal:


 nmap -sTUR -O -v -p 1-65535 -P0 hostname.domain


Bom, agora, explicando:

-sTUR --> este é o scan type. Eu utilizei os 3 protocolos disponíveis (Tcp, Udp e Rpc) Tem a opcão de se usar o -sS somente, para fazer o ¨Scan Stealth¨

-O --> tenta descobrir o sistema operacional
-v -- > verbose mode
-p 1-65535


Ai é que está a sacada ! Essa flag diz para o NMAP realizar o scan em TODAS as 65535 portas disponíveis. Bom, isso é que me complicou um pouco ...

Se você rodar o NMAP com essa flag em um sistema que estiver com firewall, pode esperar BASTANTE, porque o scan é bem lento ... eu fechei todas as portas da minha máquina, deixando somente alguns poucos servicos rodando (samba, www, ntp, ) .


nmap -sTUR -O -p 1-65535 -P0 matrix

Starting nmap 3.26 ( www.insecure.org/nmap/ ) at 2003-06-04 15:02 BRT

O tempo total de scan foi de 192'47¨ !!! Mais de 3 horas !!!

Fora que o /var/log/messages ficou enorme !

Para fazer o scan de uma maneira mais rápida, substituimos o -p pela flag -F (default) Essa flag fará o scan somente nas portas privilegiadas (0-1023) e nas portas mais usadas em servicos conhecidos (1024-49,151). Isso pode ser bem útil ao invés de passar por todas as 65.535 portas !

-P0 --> Essa opcão diz ao nmap para não pingar o host de destino. Isso é útil, também, quando se faz um scan em uma máquina que possua firewall. Se o firewall bloqueia pacotes ICMP (o que, pessoalmente, não acho uma boa idéia), o nmap nem vai rodar sobre o host. Fora que o ping gera um pequeno delay.

Agora, a flag mais usual acaba sendo essa:

nmap -sS -O -P0 -v localhost
Starting Nmap 5.51 ( http://nmap.org ) at 2011-08-23 15:19 BRT
Initiating SYN Stealth Scan at 15:19
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 53/tcp on 127.0.0.1
Discovered open port 3306/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 445/tcp on 127.0.0.1
Discovered open port 111/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 139/tcp on 127.0.0.1
Discovered open port 3128/tcp on 127.0.0.1
Discovered open port 2049/tcp on 127.0.0.1
Discovered open port 1311/tcp on 127.0.0.1
Discovered open port 3551/tcp on 127.0.0.1
Discovered open port 4002/tcp on 127.0.0.1
Completed SYN Stealth Scan at 15:19, 0.07s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
rDNS record for 127.0.0.1: server.bastosservice.com.br
Not shown: 987 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
1311/tcp open  rxmon
2049/tcp open  nfs
3128/tcp open  squid-http
3306/tcp open  mysql
3551/tcp open  apcupsd
4002/tcp open  mlchat-proxy

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds
           Raw packets sent: 1000 (44.000KB) | Rcvd: 2013 (84.572KB)


Funções em bash

Escaneie uma porta específica em toda a rede:

for IP in $(nmap -sP 192.168.0.0/24 |grep up |awk '{print $2}'|grep -v 'done'); do nmap $IP -p22|grep open && echo porta\ aberta\ em $IP|grep porta; done|grep aberta


Referências:

http://www.linuxnarede.com.br/artigos/fullnews.php?id=169