2013-10-07 111 views
0

我需要找到安裝在遠程機器上的操作系統類型。 我知道,我可以使用像NMap這樣的OS Finger Printing Tools來檢測遠程機器的操作系統特定細節。 但是我不能使用這樣的工具,因爲有一些授權問題。 我需要實現自己的邏輯來檢測操作系統。 在我的搜索我找到了一個link,我們可以找到基於TTL的操作系統類型。 但使用TTL並不總是準確的。它基於跳數計算。基於端口識別遠程操作系統

機器上會有一些開放的端口。通過掃描,我們可以設法找到操作系統。

有沒有這樣的端口可能會提供一些有關操作系統類型的想法? 我需要實現一個邏輯來運行基於OS的腳本。如果有一些條件對檢測操作系統類型很有幫助,那麼可能會節省一些時間。

if(IsOpen(Some_Port_Number)) 
{ 
//This machine might be a windows based one so 

if(Run_WindowsBasedScript()==False) 
{ 
Run_LinuxBasedScript(); 
} 
} 
else 
{ 
if(Run_LinuxBasedScript()==False) 
{ 
Run_WindowsBasedScript(); 
} 
} 

因此,我需要通過識別操作系統類型來縮短運行時間。我認爲基於開放端口我們可以找到操作系統。任何幫助,將不勝感激。

+0

請不要[交叉後](HTTP://超級用戶。 com/questions/655403/identify-remote-os-based-on-port)在不同的堆棧交換站點上。請刪除其中的一個問題。 – Rik

+0

是的,我已經做到了。 – BinaryMee

回答

0

有沒有「只是一個端口」您可以掃描以確定操作系統。如果您不能使用NMAP,則需要模擬檢測操作系統的機制。

當然,您可以在telnet命令(端口23)上給您帶來操作系統回報,或curl -I microsoft.com給您的網絡服務器Microsoft-IIS/7.5(傳統技術),但不要指望它。

您需要使用複雜的技術。你可以通過read in this old article瞭解一些技巧。還有一些人提到使用不同技術的人。

首先你需要找出機器屬於哪個系列。 (你已經提到TTL方法)之後,你可以閱讀上面的文章,你可以採取哪些步驟來確定版本。

另一個事實是NMAP不僅僅使用一個端口,而且如果至少有一個打開的和一個封閉的TCP端口被發現,則它是最有效的。 (它沒有找到它時就這麼說)所以它也通過組合開放和關閉的端口來確定操作系統。

對於一些進一步閱讀: