リモートマシンがWindowsまたはLinuxを使用しているかどうかを確認するにはどうすればよいですか?


10

コマンド(ICMPメッセージや別のプロトコルなど)を実行し、リモートマシン(自分のプライベートローカルネットワーク上ではない)から応答を取得してメッセージを分析し、このマシンがWindowsまたはLinuxオペレーティングシステム?


この情報をどうするつもりですか?信頼できないかもしれません...
pjc50

実際、私は先週カスタマイザに参加しており、彼は、誰もが自分のネットワークでWindowsシステムを使用できないようにするシステムを使用していました。これは同じネットワークではないリモートサーバーによって作成されました。作成方法がわからなかったので、非常に奇妙なものでした。
ディオゴ

その方法はいくつもあります。たとえば、DHCPを使用してネットワークアドレスを提供している場合、DHCP要求にはクライアントOSに関する情報が含まれます。
ハリージョンストン

回答:


16

それは決定的ではありませんが、nmapはコマンドでこれを行いますnmap -O -v詳細についてはドキュメント参照してください)Windowsを実行している場合、またはGUIが必要な場合は、zenmapを参照してください


1
注意してください-一部のプロバイダーは、nmapを乱用として使用してポートスキャンを検出します。
Jeroen Baert

2
@JeroenBaert AWSから恐ろしいメールが送られてきました
Jonathan dos Santos

10

IPv4ネットワークを使用している場合は、pingを使用してください。応答のTTLが128の場合、ターゲットはおそらくWindowsを実行しています。TTLが64の場合、ターゲットはおそらくUnixの変種を実行しています。


ふさわしいとはどういう意味ですか?
Dchris 2013

TTL = 255はどうですか?Unixのだと思う..です
Dchris

1
TTLを255にしたことはないと思います
ハリージョンストン

これの説明は何ですか?なぜこれが当てはまるのですか?
ヘルヴィアン2018

1
@Hervian、なぜそれらの特定のTTLが選ばれたのかを意味する場合、元のプログラマーに尋ねる必要があります。ほとんどまたはすべてのUNIXバリアントがすべて同じである理由、および/またはTTLがすべてのバージョンのWindowsで同じである理由を意味する場合、それは単に慣性です-何かを変更する特別な理由がない場合、それはとどまる傾向があります同じ。
ハリージョンストン

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
          )
       )
    )
)

これは、一連のIPで機能するように変更できますか?これを実行して、サーバースタック全体のttlをすべて検索したい場合。
Eddie Studer、2017年

1

そのための1つの方法は、NMapを使用することです。応答から、リモートOSを推測できます。


1

パッケージ:xprobe 'OR' xprobe2
説明:リモートOSの識別Xprobe2を使用すると、リモートホストで実行されているオペレーティングシステムを特定できます。ホストにいくつかのパケットを送信し、返された回答を分析します。Xprobe2の機能は、nmapのOSフィンガープリント機能に相当します。

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

リファレンス:
http : //www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/


0

古い投稿ですが、私もこれに追加すると思いましたが、デバイスでSNMPが有効になっている場合は、sysDescrを照会して、使用しているOSを通知することもできます。

MIBブラウザーをダウンロードします。私が使用するのに適したブラウザーはhttp://www.ireasoning.com/downloadmibbrowserfree.phpです。基本的には、デバイスのIPアドレスを割り当てて、ウォーク操作を実行します。


答えを広げて、それを達成する方法を説明できますか?ありがとう。
fixer1234 2015

あなたはMIBブラウザをダウンロードすることができます、私が使用する良いものはここにあります ireasoning.com/downloadmibbrowserfree.phpです。基本的には、デバイスのIPアドレスを与えて、ウォーク操作を実行します
Johnathon64 '22

0

Johnathon64の提案に従って、リモートサーバー自体がSNMPを使用するように構成されている場合、SNMPを使用してサーバーに直接クエリを実行できます。これを行うには、以下のようなコマンドラインクエリを起動します。

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

コマンド自体の説明:

  1. snmpget オブジェクトのデフォルト名を含むオブジェクトsysDescrを照会します。
  2. 次の例sedでは、ポーリングされたOIDと文字列の先頭のみを含む最初の出力を除外します。
  3. 最後のコマンドtrは、通常はSNMPクエリにある二重引用符を除外します。

最後の2つのコマンドは、出力をフォーマットするためのものです。必要がない場合は、最初のコマンドを使用して完全な出力を抽出できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.