廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3558 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
pipikai 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x5 鮮花 x16
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[資訊教學] ICMP能幫你做什麼?談 OS 偵測技術(一)
ICMP能幫你做什麼?談 OS 偵測技術(一)
腦中有很多東西想寫,但說實話有時候真是力不從心,弄了個網站,從頭到尾說實話全部都是一手包辦,不像別人也許可以東貼西剪,四處貼些工具程式,弄些新聞報導就可以開站了........我自己是希望能夠多寫些自創的文章,盡量不要拿別人的來用........當然看到別人的好文章,我也一定會想辦法獲得授權轉貼給各位參考。
有關ICMP的應用及 OS 偵測技術的文章,其實我一直就有寫這方面內容的打算,但始終抽不出時間,之前網站有一篇「 javascript:if(c...#39[url \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://freehomepage.taconet.com.tw/This/is/taconet/...files/200012/01/tos.htm']使用 TOS 位元組裡面未使用到的一個位元來判斷遠端使用的作業系統[/url] 」的原文,我想各位大概都沒注意.......因為我到現在都沒有收到有人問我這方面的問題,我想大概是大夥對這不敢興趣的緣故。
在那篇文章裡面,最主要是探討作業系統對於 TOS(Type-of-Service)位元所做的回應,當你使用 Ping 送出 一個 ICMP ECHO(Type 8)請求時,對方機器的 ECHO Reply(Type 0)回應裡面,不同作業系統對於 TOS位元所設定的 IP TTL 欄位值,都不一樣,我們可以用它來作為作業系統的判斷。
下面,我就用 ping 指令:「 ping -v 1 -n 1 <target ip> 」( 註一 ),配合 Netcraft 判斷,針對不同作業系統,它們對於 TOS 回應所作的 TTL 值,做了一些實驗,請各位看:
網站:www.hinet.net
作業系統:Solaris
TTL值:249

網站:www.seed.net.tw
作業系統:Solaris
TTL值:251

網站:www.sina.com
作業系統:Linux
TTL值:241

網站:www.logitech.com.tw
作業系統:NT/Windows 98
TTL值:124

網站:www.trend.com.tw
作業系統:
NT4/Windows

TTL值:121

作業系統:Windows 2000

TTL值:111

看到了嗎?做了幾個小實驗,我們發現很有趣的一些事情。
一、Linux、Solaris....這些 Linux/Unix 的機器,它們的 TTL 值大約都在 240~254 之間。
二、Windows系列的機器,它們的 TTL 值大約都在 110~128 之間。
所以由這個小技巧,我們可以用 Ping 指令,初步簡單的判斷一台 Internet 機器它是使用何種作業系統,如:

由 TTL 248 ,我可以初步斷定 Kimo 不是使用 Windows 作業系統當作伺服器,實際用 Netcraft 研判時,畫面如下:

原來它是使用 FreeBSD,這就是 ICMP 的應用。
當然只用一個 TTL 欄位來判斷作業系統的種類,實在不是什麼很精確的技巧,再說 Windows 所能用的 ICMP工具實在太少,而整個 ICMP 協定裡面又有許多其它的查詢可以應用(如 Time Stamp Request、Address Mask Request),不過我寫這篇文章的目的,是在講解目前一些應用在偵測作業系統程式的基本原理,我不是給你一條魚,而是教你如何用ICMP去釣魚的方法。
Lance Spitzner他也寫過一篇類似的文章(其實很多人都寫過),不過它的平台應該是在 Linux 下,而且它是用 Snort 來作為抓取相關資訊的研判工具( 註二 ),所以它可以用 TTL、WINDOW、DF、TOS 這四個欄位來研讀作業系統的特徵(不像我前面光靠 Ping 指令只能得到 TTL 的值),我把它的追蹤結果列出如下: #
# Lists of fingerprints for passive fingerprint monitoring
# Updated 23 May, 2000
#
# Mail your signatures to Lance Spitzner
#
# OS         VERSION PLATFORM     TTL   WINDOW       DF     TOS
#---         ------- --------     ---   -----------   --     ---
DC-OSx       1.1-95 Pyramid/NILE   30     8192         n     0
Windows       9x/NT   Intel       32     5000-9000     y     0
NetApp       OnTap   5.1.2-5.2.2   54     8760         y     0
HPJetDirect   ?     HP_Printer     59     2100-2150     n     0
AIX         4.3.x   IBM/RS6000     60     16000-16100   y     0
AIX         4.2.x   IBM/RS6000     60     16000-16100   n     0
Cisco       11.2   7507         60     65535       y     0
DigitalUnix   4.0   Alpha       60     33580       y     16
IRIX         6.x   SGI         60     61320       y     16
OS390       2.6   IBM/S390     60     32756       n     0
Reliant       5.43   Pyramid/RM1000 60     65534       n     0
FreeBSD       3.x   Intel       64     17520       y     16
JetDirect     G.07.x J3113A       64     5804-5840     n     0
Linux       2.2.x   Intel       64     32120       y     0
OpenBSD       2.x   Intel       64     17520       n     16
OS/400       R4.4   AS/400       64     8192         y     0
SCO         R5     Compaq       64     24820       n     0
Solaris       8     Intel/Sparc   64     24820       y     0
FTX(UNIX)     3.3   STRATUS       64     32768       n     0
Unisys       x     Mainframe     64     32768       n     0
Netware       4.11   Intel       128   32000-32768   y     0
Windows       9x/NT   Intel       128   5000-9000     y     0
Windows       2000   Intel       128   17000-18000   y     0
Cisco       12.0   2514         255   3800-5000     n     192
Solaris       2.x   Intel/Sparc   255   8760         y     0    
## ADDITIONAL NOTES
#
# Cisco IOS 12.0 normally starts all IP sessions with IP ID of 0
# Solaris 8 uses a smaller TTL (64) then Solaris 7 and below (255).
# Windows 2000 uses a much larger Window Size then NT.
## Thanks to the following people for their fingprint contributions
#
# delta
# Craig
# Richard Tomkinson
不過有點好玩,我自己在 Windows 系統下,抓取到的特徵和它的數值有點不一樣,所以我本想寫一個 Windows系統下的 OS 偵測工具, 但是我能獲得作業系統的數據不夠多(我能力有限,弄不到這麼多系統來安裝),所以這項計畫只好作罷。不過利用ICMP來盼讀作業系統的原理倒是可以寫寫,因為這些東西蠻好玩的,誰說研讀 TCP/IP 通訊協定沒有用呢?
答案是:「你不會用,不是它沒用!」
還是只想「吃魚」嗎?
有時使用網路這些個所謂的工具程式,如果你能仔細研究它裡面所用的技巧,我相信比拿它去執行你所謂的「行俠仗義」,或是破壞人家網站的工作要有趣多了。
但很可惜......吃魚的人永遠 > 釣魚的人,而且什麼都不做,只想四處開口要魚的人更多........所以.......
「去它的擔擔麵!」




獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-05-17 10:56 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.077084 second(s),query:15 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言