Woher weiß ich, ob ein Remotecomputer Windows oder Linux verwendet?

10

Gibt es eine Möglichkeit, einen Befehl auszuführen (z. B. eine ICMP-Nachricht oder ein anderes Protokoll), eine Antwort von einem Remotecomputer (nicht in meinem eigenen lokalen lokalen Netzwerk) zu erhalten und die Nachricht zu analysieren, um Hinweise darauf zu finden, dass auf diesem Computer Windows oder ausgeführt wird ein Linux-Betriebssystem?

Diogo
quelle
Was planen Sie mit diesen Informationen zu tun? Es kann nicht zuverlässig sein ...
pjc50
Eigentlich war ich letzte Woche bei einem Kunden und er verwendete ein System, das verhindert, dass jemand ein Windows-System in seinem Netzwerk verwendet. Es wurde von einem Remote-Server erstellt, der nicht dasselbe Netzwerk war. Ich finde es sehr seltsam, weil ich nicht wusste, wie es erstellt wurde.
Diogo
Es gibt verschiedene Möglichkeiten, dies zu tun. Wenn Sie beispielsweise DHCP zum Bereitstellen von Netzwerkadressen verwenden, enthält die DHCP-Anforderung Informationen zum Client-Betriebssystem.
Harry Johnston

Antworten:

16

Es ist nicht endgültig, aber nmap erledigt dies mit dem Befehl nmap -O -v( weitere Informationen finden Sie in den Dokumenten ). Wenn Sie Windows ausführen oder eine GUI möchten, schauen Sie sich zenmap an

Gesellenfreak
quelle
1
Wohlgemerkt - einige Anbieter erkennen das Scannen von Ports mithilfe von nmap als Missbrauch.
Jeroen Baert
2
@ JeroenBaert namelly AWS schickte mir eine beängstigende E-Mail
Jonathan dos Santos
10

Wenn Sie sich in einem IPv4-Netzwerk befinden, verwenden Sie einfach Ping. Wenn die Antwort eine TTL von 128 hat, wird auf dem Ziel wahrscheinlich Windows ausgeführt. Wenn die TTL 64 ist, führt das Ziel wahrscheinlich eine Unix-Variante aus.

Harry Johnston
quelle
Was meinst du mit wahrscheinlich?
Dchris
Was ist mit TTL = 255? Ich denke ist Unix ..
Dchris
1
Ich glaube nicht, dass ich jemals eine TTL von 255 gesehen habe.
Harry Johnston
Was ist die Erklärung dafür / Warum ist das der Fall?
Hervian
1
@Hervian, wenn Sie meinen, warum diese bestimmten TTLs ausgewählt wurden, müssen Sie die ursprünglichen Programmierer fragen. Wenn Sie meinen, warum die meisten oder alle UNIX-Varianten alle gleich sind und / oder warum die TTL für jede Windows-Version gleich ist, wäre dies nur Trägheit - ohne einen bestimmten Grund, etwas zu ändern, bleibt sie in der Regel gleich gleich.
Harry Johnston
2
: Presumes ping service enabled on Windows local and remote hosts
:
del _IX.txt, Windows.txt
ping -n 1 [computername|ipaddress] | findstr /i /c:"Reply" > ttl.txt
for /f "tokens=1-9* delims=:=< " %%a in (ttl.txt) do (
    if %%i leq 130 (
       if %%i geq 100 (
          echo Windows & rem or echo %%c >> Windows.txt
       ) else (
          if %%i equ 64 (
             echo *IX & rem or echo %%c >> _IX.txt
          )
       )
    )
)
Flusswind
quelle
Kann dies geändert werden, um mit einer Reihe von IPs zu funktionieren? Wenn ich dies ausführen wollte, um alle ttl für meinen gesamten Server-Stack zu finden.
Eddie Studer
1

Ein Weg ist die Verwendung von NMap . Aus der Antwort kann das Remote-Betriebssystem erraten werden.

Apache
quelle
1

Paket: xprobe 'OR' xprobe2
Beschreibung: Remote-Betriebssystemidentifikation Mit Xprobe2 können Sie bestimmen, welches Betriebssystem auf einem Remote-Host ausgeführt wird. Es sendet mehrere Pakete an einen Host und analysiert die zurückgegebenen Antworten. Die Funktionalität von Xprobe2 ist vergleichbar mit der Fingerabdruckfunktion des Betriebssystems in nmap.

Beispiel:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###. ###. ###. ###

Referenz:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/

tao
quelle
0

Alter Beitrag, aber ich dachte, ich würde ihn auch ergänzen. Wenn das Gerät SNMP-fähig ist, können Sie auch nach sysDescr fragen, das Ihnen das verwendete Betriebssystem mitteilt.

Laden Sie einen guten MIB-Browser herunter, den ich hier verwende: http://www.ireasoning.com/downloadmibbrowserfree.php . Sie geben ihm im Grunde die IP-Adresse des Geräts und führen einen Walk-Vorgang durch.

Johnathon64
quelle
Können Sie Ihre Antwort erweitern, um zu erklären, wie dies erreicht werden kann? Vielen Dank.
Fixer1234
Sie können einen MIB-Browser herunterladen. Ein guter Browser, den ich verwende, ist hier ireasoning.com/downloadmibbrowserfree.php . Sie geben ihm im Grunde die IP-Adresse des Geräts und führen eine Gehoperation durch
Johnathon64
0

Nach dem Vorschlag von Johnathon64 können Sie SNMP verwenden, um direkt auf dem Server abzufragen - vorausgesetzt, der Remote-Server selbst ist für die Verwendung von SNMP konfiguriert. Sie können eine Befehlszeilenabfrage wie die folgende starten, um dies zu tun:

snmpget -v1 -c public <RemoteServerIP> sysDescr.0 | sed -n 's/.*STRING: //p' | tr -d \"

Den Befehl selbst erklären:

  1. snmpget fragt das Objekt sysDescr ab, das den Standardnamen des Objekts enthält.
  2. Im Folgenden sedwird die Anfangsausgabe ausgeschlossen, die nur die abgefragte OID und den Anfang der Zeichenfolge enthält.
  3. Der letzte Befehl trschließt doppelte Anführungszeichen aus, die normalerweise in der SNMP-Abfrage enthalten sind.

Die letzten beiden Befehle dienen nur zum Formatieren der Ausgabe. Wenn Sie sie nicht benötigen, können Sie den ersten Befehl verwenden, um die gesamte Ausgabe zu extrahieren.

FoxBuster
quelle