Nmap

Nmap

O que é

Nmap é uma ferramenta para exploração de rede criada pelo Fyodor. É uma das ferramentas mais importantes para engenharia de segurança ou pen-tester. Com ele você poderá entrar em uma rede e buscar serviços que estão escutando em cada porta especifica. Você pode fazer um varredura de tcp()connect que fará uma conexão completa com o host ou uma syn scan que fará uma simples conexão que servirá para testar regras de firewall por exemplo.

Instalação

Instale o nmap usando o seguinte comando

sudo apt-get install nmap

Flags

  • Nota: O alvo poderá ser uma rede ou simples host

sS

TCP SYN scan: Opção muito usada. Técnica também conhecida como “half-open”, pois não abre uma conexão TCP completa. É enviado um pacote SYN, como se ele fosse uma conexão real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, a porta está aberta, enquanto um como resposta indica que a porta está fechada. A vantagem dessa abordagem é que poucos irão detectar esse scanning de portas.

sudo nmap -sS 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:23 BRT
Interesting ports on idtstnw65-w (192.168.0.1):
Not shown: 1661 closed ports
PORT      STATE SERVICE
80/tcp    open  http
81/tcp    open  hosts2-ns
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
389/tcp   open  ldap
427/tcp   open  svrloc
443/tcp   open  https
524/tcp   open  ncp
548/tcp   open  afpovertcp
636/tcp   open  ldapssl
731/tcp   open  netviewdm3
846/tcp   open  unknown
847/tcp   open  unknown
1234/tcp  open  hotline
2049/tcp  open  nfs
8009/tcp  open  ajp13
32778/tcp open  sometimes-rpc19
32779/tcp open  sometimes-rpc21
MAC Address: 00:99:99:99:99:99 (3com)

Nmap finished: 1 IP address (1 host up) scanned in 7.069 seconds

sP

Ping scan: Algumas vezes é necessário saber se um determinado host ou rede está no ar. Nmap pode enviar pacotes ICMP “echo request” para verificar se determinado host ou rede está ativa. Hoje em dia, existem muitos filtros que rejeitam os pacotes ICMP “echo request”, então envia um pacote TCP ACK para a porta 80 (default) e caso receba RST o alvo está ativo. A terceira técnica envia um pacote SYN e espera um RST ou SYN-ACK.

sudo nmap -sP 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:24 BRT
Host idtstnw65 (192.168.0.1) appears to be up.
MAC Address: 00:99:99:98:00:99 (3com)
Nmap finished: 1 IP address (1 host up) scanned in 0.366 seconds

sR

RCP scan: Este método trabalha em conjunto com várias técnicas do Nmap. Ele considera todas as portas TCP e UDP abertas e envia comandos NULL SunRPC, para determinar se realmente são portas RPC. É como se o comando “rpcinfo -p” estivesse sendo utilizado, mesmo através de um firewall ( ou protegido por TCP wrappers ).

sudo nmap -sR 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:26 BRT
Umm -- RPC returned success for bogus version -- thats OK I guess
Umm -- RPC returned success for bogus version -- thats OK I guess
Umm -- RPC returned success for bogus version -- thats OK I guess
Umm -- RPC returned success for bogus version -- thats OK I guess
Interesting ports on idtstnw65 (192.168.0.1):
Not shown: 1661 closed ports
PORT      STATE SERVICE              VERSION
80/tcp    open  http 
81/tcp    open  hosts2-ns 
111/tcp   open  rpcbind (rpcbind V2)  2 (rpc #100000)
139/tcp   open  netbios-ssn 
389/tcp   open  ldap 
427/tcp   open  svrloc 
443/tcp   open  https 
524/tcp   open  ncp 
548/tcp   open  afpovertcp 
636/tcp   open  ldapssl 
731/tcp   open  rpcbind (rpcbind V2)  2 (rpc #100000)
846/tcp   open  rpcbind (rpcbind V2)  2 (rpc #100000)
847/tcp   open  rpcbind (rpcbind V2)  2 (rpc #100000)
1234/tcp  open  rpcbind (rpcbind V0)  0 (rpc #100000)
2049/tcp  open  rpcbind (rpcbind V0)  0 (rpc #100000)
8009/tcp  open  ajp13 
32778/tcp open  rpcbind (rpcbind V0)  0 (rpc #100000)
32779/tcp open  rpcbind (rpcbind V0)  0 (rpc #100000)
MAC Address: 99:99:99:99:99:99 (3com)

sT

TCP connect() scan: É a técnica mais básica de TCP scanning. É utilizada a chamada de sistema (system call) “connect()” que envia um sinal as portas ativas. Caso a porta esteja aberta recebe como resposta “connect()”. É um dos scan mais rápidos, porém fácil de ser detectado.

sudo nmap -sT 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:29 BRT
Interesting ports on idtstnw65 (192.168.0.1):
Not shown: 1661 closed ports
PORT      STATE SERVICE
80/tcp    open  http
81/tcp    open  hosts2-ns
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
389/tcp   open  ldap
427/tcp   open  svrloc
443/tcp   open  https
524/tcp   open  ncp
548/tcp   open  afpovertcp
636/tcp   open  ldapssl
731/tcp   open  netviewdm3
846/tcp   open  unknown
847/tcp   open  unknown
1234/tcp  open  hotline
2049/tcp  open  nfs
8009/tcp  open  ajp13
32778/tcp open  sometimes-rpc19
32779/tcp open  sometimes-rpc21
MAC Address: 00:99:99:99:99:99 (3com)

sU

UDP scan: Este método é utilizado para determinar qual porta UDP está aberta em um host. A técnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se for recebido uma mensagem ICMP “port unreachable” então a porta está fechada, senão a porta pode estar aberta. Para variar um pouco, a Microsoft ignorou a sugestão da RFC e com isso a varredura de máquinas Windows é muito rápida.

sudo nmap -sU 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:31 BRT
Interesting ports on idtstnw65 (192.168.0.1):
Not shown: 1471 closed ports
PORT      STATE         SERVICE
111/udp   open|filtered rpcbind
123/udp   open|filtered ntp
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
161/udp   open|filtered snmp
427/udp   open|filtered svrloc
524/udp   open          ncp
902/udp   open|filtered unknown
903/udp   open|filtered unknown
904/udp   open|filtered unknown
961/udp   open|filtered unknown
1030/udp  open|filtered iad1
2049/udp  open|filtered nfs
32778/udp open|filtered sometimes-rpc20
32779/udp open|filtered sometimes-rpc22
32780/udp open|filtered sometimes-rpc24
MAC Address: 00:99:99:69:99:99 (3com)

Nmap finished: 1 IP address (1 host up) scanned in 76.637 seconds

sV

Version detection: Após as portas TCP e/ou UDP serem descobertas por algum dos métodos, o nmap irá determinar qual o serviço está rodando atualmente. O arquivo nmap-service-probes é utilizado para determinar tipos de protocolos, nome da aplicação, número da versão e outros detalhes.

sudo nmap -sV 192.168.0.1

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-10-30 16:36 BRT
Interesting ports on idtstnw65 (192.168.0.1):
Not shown: 1661 closed ports
PORT      STATE SERVICE     VERSION
80/tcp    open  http        Apache httpd 2.0.45 ((NETWARE) mod_jk/1.2.4a)
81/tcp    open  http        Novell Netware HTTP Stack (HTTPSTK.NLM)
111/tcp   open  rpcbind      2 (rpc #100000)
139/tcp   open  netbios-ssn Netware 6 SMB Services
389/tcp   open  ldap         (Anonymous bind OK)
427/tcp   open  svrloc?
443/tcp   open  ssl/http    Apache httpd 2.0.45 ((NETWARE) mod_jk/1.2.4a)
524/tcp   open  ncp         Novell Netware NCP
548/tcp   open  afpovertcp?
636/tcp   open  ssl/ldap     (Anonymous bind OK)
731/tcp   open  rpcbind      2 (rpc #100000)
846/tcp   open  rpcbind      2 (rpc #100000)
847/tcp   open  rpcbind      2 (rpc #100000)
1234/tcp  open  hotline?
2049/tcp  open  rpc
8009/tcp  open  ssl/http    Novell Netware HTTP Stack (HTTPSTK.NLM)
32778/tcp open  rpc
32779/tcp open  rpc
MAC Address: 00:99:99:99:99:99 (3com)
Service Info: OS: NetWare

Nmap finished: 1 IP address (1 host up) scanned in 121.699 seconds

sF, sX, sN

  • Nota use somente uma dessas 3 flags

Stealth FIN, Xmas Tree ou Null: Alguns firewalls e filtros de pacotes detectam pacotes SYN's em portas restritas, então é necessário utilizar métodos avançados para atravessar esses softwares.

  • FIN: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. (Esse método não funciona com a plataforma Windows, uma vez que a Microsoft não seguiu RFC 973) Xmas Tree: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. As flags FIN, URG e PUSH são utilizados no pacotes FIN que é enviado ao alvo. (Esse método não funciona com a plataforma Windows, uma vez que a Microsoft não seguiu RFC 973) Null: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. Nenhuma flag é ligada no pacote FIN. (Esse método não funciona com a plataforma Windows, uma vez que a Microsoft não seguiu RFC 973)

Opções Gerais

D <decoy1,[decoy2],[SEU_IP]...>

Durante uma varredura, utiliza uma série de endereços falsificados, simulando que o scanning tenha originado desses vários hosts, sendo praticamente impossível identificar a verdadeira origem da varredura.

sudo nmap -D IP1,IP2,IP3,IP4,IP6,SEU_IP 192.168.0.1

F

Procura pelas portas que estão no /etc/services. Método mais rápido, porém não procurar por todas as portas.

I

Se o host estiver utilizando o ident, é possível identificar o dono dos serviços que estão sendo executados no servidor (trabalha com a opção -sT)

n

Não irá resolver nome de hosts a ser varrido.

O

Ativa a identificação do host remoto via TCP/IP. Irá apresentar versão do Sistema Operacional e tempo ativo.

p <lista_de_portas>

Especifica quais portas devem ser verificadas na varredura. Por default, todas as portas entre 1 e 1024 são varridas.

P0

Não tenta pingar o host antes de iniciar a varredura. Isto permite varrer alvos que bloqueiam ICMP “echo request (ou responses)” através de firewall.

PS<lista_de_portas>

Usa pacotes SYN para determinar se o host está ativo. sudo nmap -PS80 192.168.0.1

PT<lista_de_portas>

Usa TCP “ping” para determinar se o host está ativo.

sudo nmap -PT80 192.168.0.1

R

Irá resolver nome de hosts alvo.

r

A varredura será feita nas portas randomicamente, não seguinte a ordem crescente.

T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>

Esse parâmetro seta a prioridade de varredura do Nmap:

  • Paranoid (-T5) é muito lento na esperança de prevenir a detecção pelo
    • sistema IDS. Este serializa todos os scans (scanning não paralelo) e geralmente espera no mínimo 5 minutos entre o envio de pacotes.
  • Sneaky (-T4) é similar ao Paranoid, exceto que somente espera 15 segundos
    • entre o envio de pacotes.
  • Polite (-T3) tem o significado para facilitar a carga na rede e reduzir as
    • chances de travar a máquina. Ele serializa os testes e espera no mínimo 0.4 segundos entre eles.
  • Normal (-T2) é o comportamento default do Nmap, o qual tenta executar tão
    • rápido quanto possível sem sobrecarregar a rede ou perder hosts/portas.
  • Aggressive(-T1) esse modo adiciona um timeout de 5 minutos por host e
    • nunca espera mais que 1.25 segundos para testar as respostas.
  • Insane (-T0) é somente adequando para redes muito rápidas ou onde você
    • não se importa em perder algumas informações. Nesta opção o timeout dos hosts acontecem em 75 segundos e espera somente 0.3 segundos por teste individual.

ttl <valor>

Altera o valor do TTL (Time to Live), dessa forma dificulta a origem do pacote.

sudo nmap -ttl 55 192.168.0.1

v

Modo verbose. Mostra tudo o que está se passando.

sudo nmap -v 192.168.0.1

Flag não documentada

O nmap tem uma flag não documentada, a flag é: --scanflags. Com ela é possível especificar flags arbitrárias usando nomes de flags ou número. Nesse exemplo estamos usando uma varredura SYN-FIN

sudo nmap -sS –scanflags SYNFIN -O 192.168.0.1

Links

Insecure.org

CategoryDocumentação CategoryRevisada

Nmap (last edited 2011-09-19 23:20:58 by localhost)