¿Hay alguna manera de ejecutar un comando (como un mensaje ICMP u otro protocolo), obtener una respuesta de una máquina remota (no en mi propia red local privada) y analizar el mensaje para encontrar alguna evidencia de que esta máquina está ejecutando Windows o un sistema operativo Linux?
windows
linux
networking
protocol
Diogo
fuente
fuente
Respuestas:
No es definitivo, pero nmap lo hará con el comando
nmap -O -v
( consulte los documentos para obtener más detalles) Si está ejecutando Windows o quiere una interfaz gráfica de usuario , mire zenmapfuente
Si estás en una red IPv4, solo usa ping. Si la respuesta tiene un TTL de 128, el objetivo probablemente esté ejecutando Windows. Si el TTL es 64, el objetivo probablemente esté ejecutando alguna variante de Unix.
fuente
fuente
Una forma de hacerlo es usar NMap . A partir de la respuesta, puede adivinar el sistema operativo remoto.
fuente
Paquete: xprobe 'OR' xprobe2
Descripción: Identificación remota del sistema operativo Xprobe2 le permite determinar qué sistema operativo se ejecuta en un host remoto. Envía varios paquetes a un host y analiza las respuestas devueltas. La funcionalidad de Xprobe2 es comparable a la función de huellas digitales del sistema operativo en nmap.
Ejemplo:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###. ###. ###. ###
Referencia:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/
fuente
Publicación anterior, pero pensé que también agregaría a esto, si el dispositivo está habilitado para SNMP, también puede consultar el sysDescr que le indicará el sistema operativo que está utilizando.
Descargue un navegador MIB, uno bueno que uso aquí: http://www.ireasoning.com/downloadmibbrowserfree.php . Básicamente le das la dirección IP del dispositivo y haces una operación de caminata.
fuente
Siguiendo la sugerencia de Johnathon64, puede usar SNMP para consultar directamente en el servidor, suponiendo que el servidor remoto esté configurado para usar SNMP. Puede iniciar una consulta de línea de comandos como la siguiente para hacerlo:
Explicando el comando en sí:
snmpget
consultará el objeto sysDescr, que contiene el nombre predeterminado del objeto.sed
excluirá el resultado inicial, que solo contiene el OID sondeado y el comienzo de la cadena.tr
excluirá las comillas dobles, que generalmente se encuentran en la consulta SNMP.Los dos últimos comandos son solo para formatear la salida; si no los necesita, puede usar el primer comando para extraer la salida completa.
fuente