簡體   English   中英

如何借助shell腳本通過IP了解目標計算機正在使用的操作系統?

[英]How to know the OS being used by target computer by its IP with the help of shell script?

不使用 NMAP )當用戶輸入 IP 時,我使用 TTL 值來確定目標計算機上正在使用的操作系統。 實際上,我必須在 Case 語句中對 TTL 值進行硬編碼。

所以我的問題是:

  1. TTL 是我們了解正在使用的操作系統的唯一方法嗎?
  2. 如果 TTL 不是唯一的方法,那么您能否建議/解釋哪些其他方法可用於根據輸入的 IP 檢查目標計算機上正在使用的操作系統?
  3. 在網上搜索 TTL 表時,我發現許多操作系統具有相同的 TTL 值。 那么有什么方法可以指出確切的操作系統嗎?
  4. 有什么方法可以確定有關操作系統的更多信息,例如它是 32 位還是 64 位? 如果是,哪些領域和依據是什么?

這是我使用 TTL 值來確定正在使用的操作系統的示例代碼:

#!/bin/bash
echo "Enter IP to find it's OS"
read ip
a=`ping -c 1 $ip|grep -w "ttl" | cut -c 41-47 | tr -d ' '`
echo $a
case "$a" in
ttl=64) echo "Linux Based";;
*) echo "other";;
esac

您不能(可靠地)使用 TTL 來確定操作系統。 例如,您可以使用sysctl net.ipv4.ip_default_ttl=32輕松更改 Linux 上的默認 TTL。 此外,正如您已經發現的,許多設備都使用相同的 TTL。

要進行某種程度的可靠檢測,您需要檢查各種值以形成“指紋”。 請參閱nmap 關於其操作系統檢測的頁面,以了解可用於此類指紋的值。

我工作的公司也為我們的一個產品編寫了一個類似的操作系統檢測,我們花了幾個人日來實施和微調。 如果可以避免的話,我不建議您自己做(除非您是為了好玩而做的,因為您想學習一些東西)。 如果你真的需要自己做這件事,你將需要訪問各種設備進行測試並閱讀大量有關 IP、TCP 和 ICMP 的詳細信息以獲取指紋數據。 我懷疑您是否可以使用 bash 和標准 UNIX/Linux 工具查詢所需的字段,順便說一句。 您將需要進行原始套接字編程或需要使用一些第三方網絡工具……在這種情況下,您也可以只使用nmap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM