Sie sind auf Seite 1von 14

NMAP:

- Verificar interfaces de rede:

Comando para verificar as interfaces de rede disponíveis: nmap --iflist:

- Scan usando uma interface especifica:


nmap -e eth1 192.168.0.11

Acima, o scan será realizado usando o ip da interface eth1.

- CRIAÇÃO DE RELATÓRIOS COM O NMAP:

nmap -oN <nomedorelatorio> = gera um relatório no diretório local

nmap -oX <nomedorelatorio> = gera um relatório xml

nmap -oS <nomedorelatorio> = gera um relatório em um formato “script kid”, usando


caracteres especiais nas letras (isso é “perfumaria” 😊).

nmap -oG <nomedorelatorio> = gera um relatorio que facilita a busca de strings usando por
exemplo o “grep”.

- Scan básico:

Comando para executar um scan padrão: nmap 192.168.0.4 ou nmap -sS 192.168.0.4
Obs.: O scan padrão contempla as portas mais conhecidas.

- Estado de portas em um Scan:

Existem 3 estados de portas que você pode encontrar após um scan:

 OPEN: Quando o target responde conforme esperado (sob o ponto de vista do protocolo tcp):
1- Atacante envia um Pacote SYN para um alvo:
2- Alvo responde com um SYN/ACK;
3- Atacante envia um pacote RST;

 FILTERED: Quando não há resposta de um alvo. Supõe-se então que há um firewall ou um


equipamento filtrando pacotes. Algumas respostas ICMP também podem deixar o estado da
porta em estado “Filtered”. Entretanto, eu não lembro agora as respostas exatas, só sei que são
“response type unreachble” :P ;

 UNFILTERED: Este resultado só deve ser mostrado, quando um scan de portas através de
pacotes tcp/ack, é realizado;

 CLOSED: Quando o target responde com um reset de conexão:


1- Atacante envia um Pacote SYN para um alvo:
2- Alvo responde com um TCP/RST;
3- Atacante envia um pacote RST;
Uma opção adicional que pode ser útil para um teste de scan é o “nmap –reason”, onde ele informa a
“razão” pela qual ele considera uma determinada porta em um determinado estado. Exemplo:

Acima, a porta está no estado “OPEN”, e o NMAP considera essa porta neste estado porque ele recebeu
como resposta o “syn-ack” que ele espera para considerar a porta neste estado.

No exemplo abaixo, segue o mesmo raciocínio. O NMAP considerou a porta no estado “CLOSED”,
porque ele recebeu um “reset” do target.

- Scan para quem gosta de “dissecar” pacotes e “escovar bits” 😊:


nmap –packet-trace:

- Scan de portas tcp usando ACK:

Conforme abaixo, eu realizei um scan (demorado) em todas as portas TCP em um único host, usando o
envio de tcp/ack. O host está “UP”, conforme evidência, mas todas as portas estão como filtered. Isso
quer dizer que o firewall está bloqueando todas as portas?
Resposta: NÃO. Evidencia abaixo:

Se eu realizo um scan simples de porta, usando o padrão “KALI: envia um syn, TARGET: responde com
um ack KALI: reseta conexão”, eu recebo como resultado, algumas portas com estado “OPEN”.

Ou seja, o “nmap -sA” verifica se há um equipamento filtrando os acessos. Um firewall statefull vai
causar o primeiro resultado de “todas as portas filtered”, um firewall stateless (por exemplo, um router
com ACL), deixaria o pacote passar para o destino apenas pacotes cujo o destino/port fosse permitido
por suas “regras” (ACL´s simples). Filtros de pacote, por padrão, não analisam o estado da sessão tcp,
apenas as informações de pacotes de rede. Para efeitos de exame CySA pode ser útil saber isso. Mas,
para efeitos de dia a dia, acho difícil este comando ser útil.

- Scan de range de ips:

Para escanear um range de ips, existem várias formas:


nmap 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.10
nmap 192.168.0.4-10
nmap 192.168.0.0/16
- Scan de range com excessão:

Escanear um range de ips, exceto outros ips:


nmap 192.168.0.1-5 --exclude 192.168.0.2 192.168.0.3

- Scan de range com excessão:

Realiza um scan em um target para verificar se há algum firewall no meio do caminho:


nmap -sA 192.168.0.10

- SCAN RANDOMICO DE MÁQUINAS:

nmap -iR 3 192.168.0.0/24 = vai escanear 3 ips randomicos do range /24

- Scan rápido (usa menos portas do que o standard padrão mas traz o
resultado do scan mais rápido):
nmap -F 192.168.0.1-5

- Ping Scan, usado para verificar se um host está “vivo” na rede através de
ping:
nmap -sP 192.168.0.10

Envia um echo request e espera um echo repply.


Acima, o resultado mostra todos os ips da rede 192.168.0.0/24 que estão respondendo a ping.

- Scan em uma porta especifica:


nmap -p 443 192.168.0.10

Você pode incluir uma porta, um range de portas, ou várias portas não necessáriamente um range.

- Scan de versionamento:

nmap -sV: scan de versionamento


Acima, eu fiz um scan de versão em um único ip. A máquina é um metasploitable que eu tenho no
laboratório.

É possível também realizar um scan de versão em uma porta especifica.

Exemplo 1: nmap -sV -p 445 192.168.0.103

Conforme acima, eu realizei um scan na porta 445 e ele me trouxe a versão do SAMBA que o
Metasplotable está usando.

Exemplo 2: nmap -sV -p1-65535 192.168.0.103

Será realizado scan de portas tcp range 1 até 65535

Obs.: saída deste comando é bem extensa

Exemplo 3: nmap -sV -p80,445 192.168.0.103.

Acima, eu estou realizando scan de versão em duas portas, para um mesmo ip.
nmap -sV --version-intensity 9 192.168.0.1 = O scan de versão possui “intensidades”
que classifica a probabilidade da versão do serviço ser corretamente identificado. Quanto maior o
numero da intensidade, mais demorado o scan, e maior chance de identificação.

- Verifica versão do NMAP:

Nmap -V

Não confunda com o “-sV”:

- Scan de Sistema Operacional:

nmap -O: detectar sistema operacional em uso no "target", exemplo: windows, linux, etc...

Observe que a letra “O” é letra maiúscula.

Traz informações como service pack em uso, distancia de rede (hops).

nmap -A: "A" = advanced. Não confunda com o “-sA”.

Essa opção, traz o máximo de informações possíveis de um "target". Como eu fiz um scan advanced em
um metasploitable, ele me trouxe uma saída gigantesta, conforme segue abaixo:
Starting Nmap 7.40 ( https://nmap.org ) at 2018-02-11 18:23 EST
Nmap scan report for 192.168.0.103
Host is up (0.00047s latency).
Not shown: 977 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
| 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_ 2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000,
VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-
base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no
such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after: 2010-04-16T14:07:45
|_ssl-date: 2018-02-11T23:23:43+00:00; +1s from scanner time.
| sslv2:
| SSLv2 supported
| ciphers:
| SSL2_DES_192_EDE3_CBC_WITH_MD5
| SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
| SSL2_RC4_128_EXPORT40_WITH_MD5
| SSL2_DES_64_CBC_WITH_MD5
| SSL2_RC4_128_WITH_MD5
|_ SSL2_RC2_128_CBC_WITH_MD5
53/tcp open domain ISC BIND 9.4.2
| dns-nsid:
|_ bind.version: 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux
111/tcp open rpcbind 2 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/udp nfs
| 100005 1,2,3 44345/tcp mountd
| 100005 1,2,3 46641/udp mountd
| 100021 1,3,4 38058/tcp nlockmgr
| 100021 1,3,4 53517/udp nlockmgr
| 100024 1 51261/tcp status
|_ 100024 1 51771/udp status
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open tcpwrapped
1099/tcp open java-rmi Java RMI Registry
1524/tcp open shell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
| mysql-info:
| Protocol: 10
| Version: 5.0.51a-3ubuntu5
| Thread ID: 14
| Capabilities flags: 43564
| Some Capabilities: SupportsCompression, SwitchToSSLAfterHandshake,
ConnectWithDatabase, SupportsTransactions, Speaks41ProtocolNew,
LongColumnFlag, Support41Auth
| Status: Autocommit
|_ Salt: RECa<J>77Of3lIc:8H?F
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
| ssl-cert: Subject: commonName=ubuntu804-
base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no
such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after: 2010-04-16T14:07:45
|_ssl-date: 2018-02-11T23:23:43+00:00; +2s from scanner time.
5900/tcp open vnc VNC (protocol 3.3)
| vnc-info:
| Protocol version: 3.3
| Security types:
|_ VNC Authentication (2)
6000/tcp open X11 (access denied)
6667/tcp open irc UnrealIRCd
| irc-info:
| users: 1.0
| servers: 1
| lusers: 1
| lservers: 0
| server: irc.Metasploitable.LAN
| version: Unreal3.2.8.1. irc.Metasploitable.LAN
| uptime: 0 days, 0:30:30
| source ident: nmap
| source host: 976CE509.F0D9233E.FFFA6D49.IP
|_ error: Closing Link: tyjfivygw[192.168.0.102] (Quit: tyjfivygw)
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-favicon: Apache Tomcat
|_http-server-header: Apache-Coyote/1.1
|_http-title: Apache Tomcat/5.5
MAC Address: 08:00:27:CF:A0:16 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: Hosts: metasploitable.localdomain, localhost,
irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:


|_clock-skew: mean: 1s, deviation: 0s, median: 0s
|_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS
MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| NetBIOS computer name:
| Workgroup: WORKGROUP\x00
|_ System time: 2018-02-11T18:23:42-05:00

TRACEROUTE
HOP RTT ADDRESS
1 0.47 ms 192.168.0.103

OS and Service detection performed. Please report any incorrect results at


https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.31 seconds

- Scan SYN:

É o mesmo que o scan padrão:


nmap -sS:

Faça um teste:

Execute o comando “nmap <ip de destino>” e depois faça “nmap -sS <ip de destino>. O resultado é o
mesmo. 😊

- Scan TCP CONNECT:


Nmap -sT:

O mesmo que o “-sS”, porém, a primeira opção é mais eficiente.

- Scan e resolução de nome:

nmap -n: nunca resolver o nome do servidor.


nmap -R: sempre resolver o nome do servidor

- Scan com portas de origem:

nmap -g666: usa como porta de origem a porta 666.

Exemplo: nmap -g666 -p135 192.168.0.11;

scan da porta de destino 135 com a porta de origem 666.

- Scan em portas UDP

nmap -sU: realiza scan em um alvo usando o protocolo udp.

- Scan em sites permitidos:

Teste o nmap com o site scanme.nmap.com. Mas nada garante que a rede local que você está, vá
detectar o scan e reportar isso. Por exemplo, há muitos anos atrás eu estava testando alguns comandos
do nmap no site acima. E o IDS identificou este tráfego. A minha sorte é que o time que eu trabalhava
também gerenciava o IDS, então, só levei um “esporro maroto” e segui trabalhando normalmente.

Exemplo: nmap -sS scanme.nmap.com

- REALIZA UM SCAN E TRAÇA A ROTA PARA CHEGAR EM UM TARGET HOST:


nmap --traceroute 192.168.0.4

- Velocidade do nmap:
nmap -T5 scanme.nmap.com (mais rápida, mais “barulhento”)
nmap -T0 scanme.nmap.com (mais lento, mais “silencioso”)

O scan no modo -T5 é mais barulhento. Por exemplo, e fácil identificar um scan em um firewall juniper
SRX que possui uma featura chamada “Screen”, que sabe “mais ou menos” como um scan vai se
comportar baseado em “tempo” e “quantidade de pacote”. Acho que a maioria dos IDS´s se baseiam
nisso também. Então, quanto mais lento o scan, melhor. O Snort por exemplo possui uma série de
assinaturas de bloqueio de nmap, exatamente por conhecer o comportamento da ferramenta.

- Scan em modo verbose:

nmap -v scanme.nmap.com (mostra as mensagens conforme ele realiza o scan. Consegue


monitorar o que está sendo feito)
nmap -vv scanme.nmap.com (igual a opção "-v" com mais informações sobre um alvo)

Não confundir com o -sV (s“V” maiúsculo). “sV” maiúsculo verifica a versão dos serviços, “V” maiuculo
sozinho, verifica a versão do nmap.

- SCAN DE VÁRIOS TARGETS PRESENTES EM UM ARQUIVO DE TEXTO:

1- crie um arquivo e inclua nele todos os ips que serão escaneados;

exemplo: uma-penca-de-ip.txt

2- nmap -T5 -iL uma-penca-de-ip.txt

Sugestão: no segundo comando, inclua as outras opções, faça combinações de comandos. E veja o
resultado.

- SCAN em um target usando um dns especifico:

nmap --dns-server 8.8.8.8 8.8.4.4 scanme.nmap.com = vai escanear o site scanme usando o dns do
google.

Considerações sobre o uso do nmap:


O NMAP é uma ferramenta sensacional, mas é muito “barulhenta”. Isso quer dizer que é fácil um scan
ser detectado. Por exemplo, com o comando nmap -sV -p1-65535 192.168.0.103, eu monitorei com o
wireshark todas as conexões que foram necessárias entre o meu KaliLinux e o Metasploitable.
Resultado: isso mesmo 132.050 pacotes.

Netdiscover: Ferramenta que usa o protocolo arp para mapeamento de hosts na rede. Não mapeia
portas, serviços, versões e Sistemas operacionais:

Com o comando netdiscover -r 192.168.0.0/24 eu fiz um scan da rede local que eu estava
conectado para fazer este lab:
Repare que eu encontrei 4 hosts, 4 mac-address e o vendor, mas nenhuma informação de serviço foi
encontrada.

Netstat: Usada para identificar conexões de rede a partir/para o host local. Você pode ver também
tabela de roteamento local, e estatísticas de rede.

O comando mais básiso é o netstat -a:

Das könnte Ihnen auch gefallen