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
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
Executando um script
Exibindo as Interfaces
Mostra as interfaces de rede e algumas informações adicionais
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 firewallUnfiltered
: 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 memos 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