Heurísticamente . nmap observa el comportamiento del sistema durante las sondas, desarrolla una "huella digital", que análoga a una prueba de huella digital real, busca principalmente las minucias:
- comportamiento fuera de especificación y extraespecificación o indefinido comportamiento
- tiempos de retransmisión
- respuesta a la fragmentación y varias sondas ICMP
- patrones en números de secuencia TCP, números de identificación de IP y TTL
- comportamiento con varias opciones y banderas de TCP
Eso es solo un resumen rápido, puede leer una descripción más detallada aquí http://nmap.org/book/osdetect-methods.html
La huella digital se compara con una base de datos de huellas digitales conocidas. En el caso de que haya escaneado un sistema que tiene una huella digital única, obtendrá una buena coincidencia; de lo contrario, obtendrá una suposición basada en el mejor ajuste (que en ocasiones es incorrecto). De todos modos, podría estar mal, a algunas personas les gusta jugar a juegos (antiguos pero interesantes). Si no hay buenas coincidencias, nmap
lo alentará a averiguar cuál es el sistema y enviarlo.
Puede encontrar las huellas digitales en / usr / share / nmap / nmap-os-db
(probablemente), pero tendrá que leer la documentación para descifrar los detalles.
En la base de datos actual de nmap (6.47) hay 4485 huellas dactilares para 5009 nombres de CPE (plataforma), más de 800 de las cuales coinciden con varias versiones de MS-Windows, y más de 1000 de las cuales coinciden con varios sistemas Linux (incluidos dispositivos).
Aquí hay una firma real para un sistema Linux, una tableta Asus Nexus 7:
# Linux 3.1.10-g52027f9 # 1 SMP PREEMPT Thu Jun 28 16 : 19: 26 PDT 2012 armv71 GNU / Linux, Asus Nexus 7 Android TabletFingerprint Linux 3.1Class Asus | Linux | 3.X | propósito general CPE cpe: / o: asus: linux_kernel: 3 autoSEQ (SP = 102-10C% GCD = 1-6% ISR = 108-112% TI = Z% CI = Z% II = I% TS = 6 | 7) OPS (O1 = M566ST11NW6% O2 = M566ST11NW6% O3 = M566NNT11NW6% O4 = M566ST11NW6% O5 = M566ST11NW6% O6 = M566ST11) GANANCIA (W1 = 3890% W2 = 3890% W3 = 3890% W4 = 3890% W4 3890)
ECN (R = Y% DF = Y% T = 3B-45% TG = 40% W = 3908% O = M566NNSNW6% CC = Y% Q =) T1 (R = Y% DF = Y% T = 3B-45 % TG = 40% S = O% A = S +% F = AS% RD = 0% Q =) T2 (R = N) T3 (R = Y% DF = Y% T = 3B-45% TG = 40% W = 3890% S = O% A = S +% F = AS% O = M566ST11NW6% RD = 0% Q =) T4 (R = Y% DF = Y% T = 3B-45% TG = 40% W = 0 % S = A% A = Z% F = R% O =% RD = 0% Q =) T5 (R = Y% DF = Y% T = 3B-45% TG = 40% W = 0% S = Z % A = S +% F = AR% O =% RD = 0% Q =) T6 (R = Y% DF = Y% T = 3B-45% TG = 40% W = 0% S = A% A = Z % F = R% O =% RD = 0% Q =) T7 (R = Y% DF = Y% T = 3B-45% TG = 40% W = 0% S = Z% A = S +% F = AR % O =% RD = 0% Q =) U1 (DF = N% T = 3B-45% TG = 40% IPL = 164% UN = 0% RIPL = G% RID = G% RIPCK = G% RUCK = G % RUD = G) IE (DFI = N% T = 3B-45% TG = 40% CD = S)
(Vaya, eso no es bonito, ya que puedes encontrarlos en tu instalación de nmap en nmap-os-db
así que no voy a mostrar más.
Elegiré un campo simple IE ()
- Comportamiento de eco ICMP (ping es simple, ¿verdad?)
IE (DFI = N% T = 3B-45% TG = 40% CD = S)
Si marca, verá que se comparte con más de 1250 otros sistemas (aproximadamente dos tercios de los cuales son sistemas Linux).
De la documentación:
La prueba de IE implica el envío de dos ICMP e cho solicitar paquetes al destino. El primero tiene el bit IP DF configurado, un valor de byte de tipo de servicio (TOS) de cero, un código de nueve (aunque debería ser cero), el número de secuencia 295, una ID de IP aleatoria y un identificador de solicitud ICMP y 120 bytes de 0x00 para la carga útil de datos.
La segunda consulta de ping es similar, excepto que se usa un TOS de cuatro (IP_TOS_RELIABILITY), el código es cero, se envían 150 bytes de datos y el El ID de solicitud ICMP y los números de secuencia se incrementan en uno de los valores de la consulta anterior.
Esto se descodifica como:
-
DFI = N
ninguna respuesta ICMP tendrá DF (no fragmentar) configurado -
T = 3B-45
TTL será entre 0x3B y 0x45 -
TG = 40
Supuesto TTL inicial de IP -
CD = S código>
códigos de respuesta ICMP (igual que la sonda de solicitud ICMP)
Puede encontrar todos estos códigos y detalles aquí.
Los otros campos contienen datos igualmente detallados para ECN, secuencia TCP (SEQ, OPS, WIN, T1) y opciones TCP (T2-T7).