jueves, 1 de agosto de 2019

Con un simple comando se puede deducir cuál es el sistema operativo de una máquina remota

Mediante el comando Ping, muy usado por cualquiera que verifica una red, es posible deducir el sistema operativo de la máquina que responde.
Cuando se hace un ping a una máquina, normalmente se presta atención al número de paquetes recibidos y perdidos y al tempo en milisegundos que tardó la respuesta. Pero entre los datos desplegados hay uno llamado TTL. El Time To Live (Tiempo de vida) indica cuánto tiempo se guarda en caché la consulta de DNS.
Como los sistemas operativos poseen un valor determinado para este parámetro, sabiéndolo se tiene la posibilidad de deducir cuál es el sistema operativo del ordenador. No es tan color de rosas como pareciera a simple vista, porque aunque sí es verdad que muchos sistemas operativos usan valores diferentes, también hay muchos que coinciden en el mismo valor.
Por ejemplo, si le hacemos ping a una máquina y ésta devuelve un TTL=128, lo más probable es que ese ordenador posea una versión de Windows.
Pero si la máquina no está en nuestra misma red debemos realizar una suma para saber el número TTL real. Debemos primero aplicar el comando tracert (más la dirección IP destino o nombre de dominio). Tracert nos mostrará cuántos saltos hace la señal para llegar a su destino.
Entonces para saber el número de TTL real se debe sumar el TTL informado por el ping y el número de saltos  informado por el tracert (siempre y cuando éste sea mayor a 1) y buscamos el valor más cercano en la siguiente tabla:
Dispositivo / OS
Versión
Protocolo
TTL
AIX

TCP
60
AIX

UDP
30
AIX
3.2, 4.1
ICMP
255
BSDI
BSD / OS 3.1 y 4.0
ICMP
255
Compa
Tru64 v5.0
ICMP
64
Cisco

ICMP
254
DEC Pathworks
V5
TCP y UDP
30
Fundición

ICMP
64
FreeBSD
2.1R
TCP y UDP
64
FreeBSD
3.4, 4.0
ICMP
255
FreeBSD
5
ICMP
64
HP-UX
9.0x
TCP y UDP
30
HP-UX
10.01
TCP y UDP
64
HP-UX
10.2
ICMP
255
HP-UX
11
ICMP
255
HP-UX
11
TCP
64
Irix
5.3
TCP y UDP
60
Irix
6.x
TCP y UDP
60
Irix
6.5.3, 6.5.8
ICMP
255
enebro

ICMP
64
MPE / IX (HP)

ICMP
200
Linux
Kernel 2.0.x
ICMP
64
Linux
2.2.14 kernel
ICMP
255
Linux
2.4 kernel
ICMP
255
Linux
Sombrero rojo 9
ICMP y TCP
64
MacOS / MacTCP
2.0.x
TCP y UDP
60
MacOS / MacTCP
X (10.5.6)
ICMP / TCP / UDP
64
NetBSD

ICMP
255
Netgear FVG318

ICMP y UDP
64
OpenBSD
2.6 y 2.7
ICMP
255
OpenVMS
07.01.2002
ICMP
255
OS / 2
TCP / IP 3.0

64
OSF / 1
V3.2A
TCP
60
OSF / 1
V3.2A
UDP
30
Solaris
2.5.1, 2.6, 2.7, 2.8
ICMP
255
Solaris
2.8
TCP
64
Estrato
TCP_OS
ICMP
255
Estrato
TCP_OS (14.2-)
TCP y UDP
30
Estrato
TCP_OS (14.3+)
TCP y UDP
64
Estrato
STCP
ICMP / TCP / UDP
60
SunOS
4.1.3 / 4.1.4
TCP y UDP
60
SunOS
5.7
ICMP y TCP
255
Ultrix
V4.1 / V4.2A
TCP
60
Ultrix
V4.1 / V4.2A
UDP
30
Ultrix
V4.2 - 4.5
ICMP
255
VMS / Multinet

TCP y UDP
64
VMS / TCPware

TCP
60
VMS / TCPware

UDP
64
VMS / Wollongong
1.1.1.1
TCP
128
VMS / Wollongong
1.1.1.1
UDP
30
VMS / UCX

TCP y UDP
128
Windows
para grupos de trabajo
TCP y UDP
32
Windows
95
TCP y UDP
32
Windows
98
ICMP
32
Windows
98, 98 SE
ICMP
128
Windows
98
TCP
128
Windows
NT 3.51
TCP y UDP
32
Windows
NT 4.0
TCP y UDP
128
Windows
NT 4.0 SP5-

32
Windows
NT 4.0 SP6 +

128
Windows
NT 4 WRKS SP 3, SP 6a
ICMP
128
Windows
NT 4 Server SP4
ICMP
128
Windows
YO
ICMP
128
Windows
2000 pro
ICMP / TCP / UDP
128
Windows
Familia 2000
ICMP
128
Windows
Servidor 2003

128
Windows
XP
ICMP / TCP / UDP
128
Windows
Vista
ICMP / TCP / UDP
128
Windows
7
ICMP / TCP / UDP
128
Windows
Servidor 2008
ICMP / TCP / UDP
128
Windows
10
ICMP / TCP / UDP
128

Fuentes:

Francisco Javier Castañé Sanz

No hay comentarios:

Publicar un comentario