NMAP

NOTA: Use sempre o Nmap com permissões de root, pois só assim ele será capaz de montar os pacotes corretamente e trazer melhores resultados.

Atualizando o Nmap

nmap --script-updatedb

NSE (Nmap Scripting Engine)

Script automatizados escrito em linguagem Lua, que pode realizar ataques de Brute Force, enumeração de informações, detecção de vulnerabilidades, etc. Todos os scritps NSE estão localizadas em /usr/share/nmap/scripts/.

Descrição do Script

nmap --script-help <script-name>

Executando um script

nmap --script=<script_name> -p <port> <ip>

Exibindo as Interfaces

Mostra as interfaces de rede e algumas informações adicionais

nmap --iflist

Definindo a Interface

Realiza o scanner especificando qual interface de rede irá utilizar

Trabalhando com IPv6

A opção -6 define que é um scanner em IPv6 e o ::1 é o endereço de loopback IPv6

Utilizando Proxy

Caso precise, utilize um proxy para camuflar seu IP

Selecionando as Portas

OBS.: Por padrão, o Nmap varre somente até a porta 1024 e portas superiores importantes, como a 3306 do MySQL

Port Spoofing

Realiza um Port Spoofing, ou seja, o alvo vai pensar que a requisição está partindo da porta 53. Isso é útil para enganar firewall, pois geralmente quando se acessa uma porta, esse acesso é realizado por portas altas (acima de 1024), por exemplo, ao acessarmos o FTP (21), utilizamos uma porta aleatória (ex 50301) e quando forçamos uma porta baixa, dificulta o trabalho do firewall para rastrear um Port Scanner

Spoof MAC

No lugar de <mac_address>, pode-se colocar também nome de fabricantes como Dell, Apple, etc, assim o nmap já emula um MAC Address compatível com o fabricante

Decoy (Chamariz)

Este sem dúvida é um bom trick para fazer bypass em IDS, pois podemos realizar um scan utilizando IP's aleatórios, a fim de confundir o IDS. Dependendo da situação, nosso IP nem se quer é bloqueado, pois o IDS registrou somente alguns dos IP's falsos que enviamos, então o nosso IP passou despercebido.

Podemos então, falsificar o IP, da seguinte forma"

Caso não queira ficar definindo o IP manualmente, use o modo random:

Idle Scan

Para saber o IP da máquina zumbi, veja no metasploit como fazer isso

Determinando Protocolos com Portas

Os comandos abaixo especifica uma determinada porta para trabalhar com determinado protocolo, porém todas as outras portas serão scaneadas. Utilize o -p caso queira filtrar as portas:

SYN Stealth Scan

Não completa as 3 etapas do Three-way Wayhandshake SYN - SYN/ACK - ACK. Só vai até o segundo passo (SYN/ACK). Isso dificulta os firewalls a localizar o scan, pois ele faz o scan com menos ruído.

Varredura sem Portas

Sem varredura de porta. Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. Nenhuma flag é ligada no pacote FIN. Este substitui a antiga opção -sP.

OBS.: Esse método não funciona com a plataforma Windows, uma vez que a Microsoft não seguiu RFC 973

Varredura sem Portas (Somente IP's)

Comando semelhante ao de cima, porém esse filtra para nos retornar somente os IP's

Mapeando Regras de Firewall

O objetivo desta varredura é mapear as regras de um firewall para determinar se o mesmo faz tratamento completo de conexão ou não. Esse scan inicia uma comunicação com o alvo usando uma flag de confirmação ACK ligada (último passo do Handshake de 3 vias) sem nem mesmo ter enviado alguma solicitação. Uma resposta reset (RST) indica que a porta consultada não está sendo filtrada.

Os únicos resultados neste tipo de varredura são:

  • Filtered: A porta está protegida por firewall

  • Unfiltered: A porta não está protegida por firewall

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ápido e consegue retornar mais informações que o -sS, pois completa o Handshake de 3 vias, porém é fácil de ser detectado, devido ao seu alto ruído

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 recebida 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.

É comum recerbemos open|filtered como resposta de uma porta UDP. Caso isso ocorra, podemos fazer o nmap executar alguns scripts NSE para tentar identificar o serviço (e sua respectiva versão) da determinada porta e trazer assim um resultado mais preciso. Esse processo também se aplica para portas TCP, pois é o mesmo que -sV.

TCP e UDP ao mesmo tempo

TCP NULL

Envia uma flag Nula, se receber uma resposta TCP RST, a porta está fechada e, caso não tenha resposta, significa que a porta está aberta

Script

Executa scripts básicos (semelhante ao script=default) que somente realizam scan e jamais atacam de fato, como Brute Force, DoS, etc

Scan FIN

Scan utilizando o flag FIN, útil para burlar firewalls

Script

Scan utilizando o flag FIN, útil para burlar firewalls

Xmas Scan

Utiliza Xmas Scan, ou seja, todas as flags. Quase todos os servidores bloqueiam esse tipo de scan

Top Ports

Pega as 10 primeiras portas principais

Versionamento

Retorna o versionamento das portas como versão do Apache, SSH, SMTP, etc

Intensidade

Parâmetro adicionado do -sV para definir a intensidade do versionamento de porta. Essa intensidade varia de 0 a 9, sendo 0 o default e 9 o mais intensivo possível

Alvos Aleatórios

Realiza um scanner em 4 alvos aleatórios na rede

Pegando o Sistema Operacional

Ao realizar esse tipo de scan, podemos passar mais informações para o nmap, como portas que sabemos que estão abertas, opção -sV para versionar, etc, assim aumenta a probabilidade de conseguirmos descobrir o SO.

Modo Simples

Modo Agressivo

Fast Mode

Filtra somente as portas principais

Varredura sem usar Ping

Útil para os burlar sistemas que bloqueam o ICMP

O Nmap trabalha com o hping3 (programa muito bom que foi descontinuado desde 2005) integrado. Para utilizá-lo, use o nping (também como root)

Com/Sem Resolução de Nome

Agressive Scan

Ativa o script enginer padrão com um scanner bem refinado, trazendo assim diversas informações, como se estivesse utilizando vários parâmetros como -sC, -sV e --traceroute de uma só vez

Ping Null

Ignora as opções de descoberta de host, pois não utiliza ping

TCP Null

Também mostra todas as máquinas que estão na rede, pois utiliza TCP NULL na flag. Desse modo faz com que não varra as portas e utilize somente a varredura ARP

Alvos a Partir de um Arquivo

Lê um arquivo com os IP's a serem scaneados. Esse arquivo deve ter cada IP em uma linha

Excluindo um Alvo

Caso esteja usando o -iL ou um 192.168.0.0/24 e deseja excluir determinado IP, utilize o --exclude

Excluindo Alvos com Arquivo

Varre todos os IP's, exceto os que estão contidos no arquivo

Random Host com Pausas

Não utilize esse scan em um host alvo, mas sim em toda a rede. O nmap vai fazer um scan em um host, vai pular para outro, depois outro, depois volta no primeiro host para continuar o scan, e assim por diante, para dificultar o que seja pego por um IDS

Bypass ICMP

Máscara de endereço ICMP. Utilizado quando o host está configurado para ignorar mensagens ICMP ECHO, mas não pode ignorar outros tipos de mensagens ICMP

Fragment Packets

Fragmenta os pacotes. Utilizado quando o alvo utiliza um dispositivo de filtagem de pacotes simples como firewall. Essa opção divide o cabeçalho TCP de 20 bytes em 3 pacotes, sendo 2 pacotes com 8 bytes e 1 pacote com 4 bytes. Isso deixa o scan com mais ruído, mas ao mesmo tempo fica mais difícil para o IDS detectar

Cabeçalho Personalizado

Envia um cabeçalho normal e insere bytes (nesse caso 80) de textos aleatórios adicionais no cabeçalho dos pacotes, para confundir o firewall que acha que são pacotes verdadeiros. Utilize em Pings e Port Scans. É um pouco mais lento, porém é mais discreto

Mensagens nos Pacotes

Irá enviar a string "Hackeado!" nos pacotes. Os administradores de rede poderão ver essa mensagem no pacote/log. Serve só para irritar alguém

Checksum

Checksum é útil para validar se os pacotes TCP/IP chegam íntegros. Bad CheckSum utiliza Checksum mal configurado, alterando a sequência do Checksum, tirando assim a validação e fazendo com que o firewall se perca. Caso não retorne nada , é porque a rede está o checksum bem configurado

Maximum Transmition Unique

Semelhante a opção -f, porém temos a liberdade de escolher quantos bytes queremos dividir, lembrando que o MTU, deve ser sempre um valor divisível por 8. Por padrão, vem como MTU 24. Quanto menor o MTU, mais pacotes são fragmentados e enviados e, ao mesmo tempo mais difícil fica para o firewall detectar a varredura

Flag de Privilégio

Adiciona a Flag de privilégio para acessar o host. Os firewalls checa essa flag para determinar você está na rede e pode ou não acesso o alvo. Esse parâmtro é muito útil, principalmente para realizar varreduras em IP's externos

Enviando IP ao invés de ARP

Por padrão o nmap utiliza o protocolo ARP pra fazer varredura. Utilize esse parâmetro para enviar IP no lugar de ARP

Mostrando os pacotes

Mostra os pacotes que estão sendo enviados

Salvando os Resultados

É possível salvar os resultados do Nmap em alguns formatos

Velocidade da Varredura

Rápido

Lento

Quanto mais devagar o Scan, mais difícil de ser detectado será e quanto mais rápido, o inverso. O Nmap também pode trazer falsos-positivos quando está realizando um Scan em uma velocidade muito rápida

Traceroute

Realiza um traceroute junto com o port scanner

Modo Debug

Este é mais voltado para os desenvolvedores, muitas coisas não são legíveis até mesmo para programadores e administradores de redes

Verbose

O Verbose Mode pode ser acessado em dois níveis

Entendendo o Porque do Resultado

Explica o porque que o Nmap definiu determinada porta como aberta, fechada ou filtrada

Last updated

Was this helpful?