Detecção de SO
Uma das características mais conhecidas do Nmap é a detecção
remota de SO utilizando a identificação da pilha (stack fingerprinting)
do TCP/IP. O Nmap envia uma série de pacotes TCP e UDP ao anfitrião(host) remoto e
examina praticamente todos os bits das respostas. Após executar dezenas
de testes como a amostragem TCP ISN, suporte e ordenamento das opções do
TCP, amostragem IPID e a observação do tamanho inicial da janela, o Nmap
compara os resultados com o banco de dados
nmap-os-fingerprints
com mais de 1500
identificações de SO conhecidas e mostra os detalhes do SO se houver uma
correspondência. Cada identificação inclui uma descrição textual livre
do SO e uma classificação que fornece o nome do fabricante (p.ex.: Sun),
SO base (p.ex.: Solaris), geração do SO (p.ex.: 10) e tipo de
dispositivo (genérico, router, switch, consola de jogo, etc.).
Se o Nmap não conseguir identificar o SO da máquina e as condições forem favoráveis (p.ex.: pelo menos uma porta aberta e uma porta fechada foram encontradas), o Nmap irá fornecer uma URL onde poderá enviar a identificação se souber (com certeza) o SO em execução na máquina. Fazendo isso, contribui para o pool de sistemas operacionais conhecidos pelo Nmap e, com isso, ele será mais preciso para todos.
A detecção de SO habilita diversos outros testes que usam as
informações coletadas durante o processo. Um deles é a medição de
uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor
quando uma máquina foi reiniciada pela última vez. Isso apenas é
mostrado para as máquinas que fornecem essa informação. Outro é a
Classificação de Previsibilidade da Seqüencia do TCP. Ele mede
aproximadamente o grau de dificuldade de se estabelecer uma conexão TCP
forjada contra um anfitrião(host) remoto. É útil para se explorar relações de
confiança baseadas no IP de origem (rlogin, filtros de firewall, etc.)
ou para ocultar a origem de um ataque. Esse tipo de enganação (spoofing)
raramente é executada hoje em dia, mas muitas máquinas ainda estão
vulneráveis a ele. O número de dificuldade real é baseado em amostragens
estatísticas e pode variar. Normalmente é melhor usar a classificação em
inglês, do tipo “worthy challenge” (um desafio que vale a
pena) ou “trivial joke” (uma piada, muito fácil). Isso só é
mostrado na saída normal do modo verbose (-v
). Quando o
modo verbose é habilitado juntamente com o -O
, a
Geração de Seqüencia IPID também é mostrada. A maioria das máquinas é
classificada como “incremental” , o que significa que elas
incrementam o campo ID no cabeçalho IP para cada pacote que envia. Isso
torna-as vulnerável a diversos ataques avançados de levantamento e
forjamento de informações.
Um trabalho documentando o funcionamento, utilização e
customização da datecção de versão está disponível em mais de uma dezena
de línguas em https://nmap.org/osdetect/
.
A deteção de SO é habilitada e controlada com as seguintes opções:
-O
(Habilita a detecção de SO)Habilita a deteção de SO como discutido acima. Alternativamente pode usar
-A
para habilitar tanto a detecção de SO quanto a detecção de versão.--osscan-limit
(Limitar a detecção de SO a alvos promissores)A detecção de SO é bem mais eficiente se ao menos uma porta TCP aberta e uma fechada for encontrada. Escolha esta opção e o Nmap não irá nem tentar a detecção de SO contra anfitriões(hosts) que não correspondam a este critério. Isso pode economizar um tempo considerável, particularmente em rastreios(scans)
-P0
contra muitos anfitriões(hosts). Isso só importa quando a detecção de SO é solicitada através de-O
ou-A
.--osscan-guess
;--fuzzy
(Resultados de tentativas de detecção de SO)Quano o Nmap não é capaz de detectar uma correspondência exacta de SO, às vêzes ele oferece possibilidades aproximada. A correspondência tem que ser muito próxima para o Nmap fazer isso por default. Qualquer uma dessas opções (equivalentes) tornam as tentativas do Nmap mais agressivas.