28天打造專業紅客(六)

[第6天]從回答一個朋友的問題說起
       怎麼判斷對方主機的操作系統呢?今天我們就先說說這個問題。我先從最簡單的PING看主機操作系統說起
一、用ping來識別操作系統
C:\>ping 10.1.1.2
Pinging 10.1.1.2 with 32 bytes of data:
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Ping statistics for 10.1.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
C:\>ping 10.1.1.6
Pinging 10.1.1.6 with 32 bytes of data:
Request timed out.
Reply from 10.1.1.6: bytes=32 time=250ms TTL=237
Reply from 10.1.1.6: bytes=32 time=234ms TTL=237
Reply from 10.1.1.6: bytes=32 time=234ms TTL=237
Ping statistics for 10.1.1.6:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 234ms, Maximum = 250ms, Average = 179ms
我們跟據ICMP報文的TTL的值,我們就可以大概知道主機的類型。如:TTL=125左右的主機應該是windows系列的機子,TTL=235左右的主機應該是UINX系列的機子。如上面的兩個例子,10.1.1.2就是win2000的機子,而10.1.1.6則是UINX(Sunos 5.8)的機子。這是因爲不同操作系統的機子對ICMP報文的處理與應答是有所不同的,TTL值每過一個路由器會減1。所以造成了TTL回覆值的不同。對於TTL值與操作系統類型的對應,還要*大家平時多注意觀察和積累。
 
 
二、直接通過聯接端口根據其返回的信息來判操作系統
這種方法應該說是用得最多的一種方法,下面我們來看幾個實例。
1、如果機子開了80端口,我們可以telnet它的80端口。
C:\>telnet 10.1.1.2 80
輸入get 回車(注意這裏是盲打)
如果返回,
HTTP/1.1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Fri, 11 Jul 2003 02:31:55 GMT
Content-Type: text/html
Content-Length: 87
<html><head><title>Error</title></head><body>The parameter is incorrect. </body></html>
遺失對主機的連接。
C:\>
那麼這臺就肯定是windows的機子。
如果返回,
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>501 Method
Not Implemented</TITLE> </HEAD><BODY> <H1>Method Not Implemented</H1> get to / not
supported.<P> Invalid method in request get<P><HR> <ADDRESS>Apache/1.3.27 Server at gosiuniversity.com Port80</ADDRESS>
</BODY></HTML>
遺失對主機的連接。
C:\>
那麼多數就是UINX系統的機子了。
2、如果機子開了21端口,我們可以直接FTP上去
C:\>ftp 10.1.1.2
如果返回,
Connected to 10.1.1.2.
220 sgyyq-c43s950 Microsoft FTP Service (Version 5.0).
User (10.1.1.2:(none)):
那麼這就肯定是一臺win2000的機子了,我們還可以知道主機名呢,主機名就是sgyyq-c43s950。這個FTP是windows的IIS自帶的一個FTP服務器。
如果返回,
Connected to 10.1.1.3.
220 Serv-U FTP Server v4.0 for WinSock ready...
User (10.1.1.3:(none)):
也可以肯定它是windows的機子,因爲Serv-U FTP是一個專爲windows平臺開發的FTP服務器。
如果返回,
Connected to 10.1.1.3.
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
User (10.1.1.3:(none)):
那麼這就是一臺UINX的機子了。
3、如果開了23端口,這個就簡單了,直接telnet上去。
如果返回,
Microsoft &reg; Windows &#8482; Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
那麼這肯定是一臺windows的機子瞭如果返回,SunOS 5.8login:
不用說了,這當然是一臺UINX的機子了,並且版本是SunOS 5.8的
 
三、利用專門的軟件來識別
這種有識別操作系統功能的軟件,多數採用的是操作系統協議棧識別技術。這是因爲不同的廠家在編寫自己操作系統時,TCP/IP協議雖然是統一的,但對TCP/IP協議棧是沒有做統一的規定的,廠家可以按自己的要求來編寫TCP/IP協議棧
,從而造成了操作系統之間協議棧的不同。因此我們可以通過分析協議棧的不同來區分不同的操作系統,只要建立起協議棧與操作系統對應的數據庫,我們就可以準確的識別操作系統了。下面是簡單介紹兩款有識別功能的軟件,具體用
法我就不說,你可以到網上去找找相應軟件的說明使用一是nmap它採用的是主動式探測,探測時會主動向目標系統發送探測包,根據目標目標機迴應的數據包來,叛斷對方機的操作系統。

2、 天眼,採用的是被動式的探測方法。不向目標系統發送數據包,只是被動地探測網絡上的通信數據,通過分析這些數據來判斷操作系統的類型。配合supersan使用,較果很好。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章