天天看點

ping指令傳回的TTL值判斷作業系統

通過簡單的ping指令,檢視傳回的ttl值來判斷對方的作業系統

  生存時間(ttl)是ip分組中的一個值,網絡中的路由器通過察看這個值就可以判斷這個ip分組是不是已經在網絡中停留了很久,進而決定是否要将其丢棄。出于多種原因,一個ip分組可能在很長一段時間内不能抵達目的地。例如:錯誤的路由有可能導緻一個ip分組在網絡中無限地循環。一種解決方法就是在一定時間後丢棄這個分組,然後發送一個資訊通知這個分組的發送者,由它決定是否重發這個分組。ttl的初始值一般是系統預設值,它位于ip分組的頭部,占用8個二進制位。最初設定ttl值的目的是,讓它來指定一段特定的時間(以秒為機關),當這段時間耗盡的時候就将這個分組丢棄。由于每個路由器至少會讓這個ttl值減一,是以這個ttl隻經常用來指定在一個分組被丢棄之前允許經過的路由器數。每個路由器收到一個分組後就将它的ttl 值減一,一旦這個值被減為0,路由器就會丢棄這個分組,并發送一個icmp資訊給這個分組的最初的發送者。

  unix 及類 unix 作業系統 icmp 回應答覆的 ttl 字段值為 255

  compaq tru64 5.0 icmp 回應答覆的 ttl 字段值為 64

  windows nt/2k作業系統 icmp 回應答覆的 ttl 字段值為 128

  windows 95 作業系統 icmp 回應答覆的 ttl 字段值為 32

  注:icmp封包的類型包括如下:

  echo (request (type 8), reply (type 0))--回應答覆,

  time stamp (request (type 13), reply (type 14))--時間戳請求和應答,

  information (request (type 15), reply (type16))--資訊請求和應答,

  address mask (request (type 17), reply (type 18))--位址掩碼請求和應答等

  不同的作業系統,它的ttl值是不相同的。預設情況下:

  linux系統的ttl值為64或255,

  windows nt/2000/xp系統的ttl值為128,

  windows 98系統的ttl值為32,

  unix主機的ttl值為255。

  公司使用的是多數為windows 2000伺服器,ttl值預設為128,如果将該值修改為255,攻擊者可能會以為這個伺服器是linux系統或unix系統,那麼他們就會針對linux系統或unix系統來查找windows 2000伺服器的安全漏洞,不過他們是不會找到什麼安全漏洞的,這樣一來,伺服器相來說增加了安全性。

  具體實作方法:

  修改ttl值其實非常簡單,通過系統資料庫編輯器就可以實作,點選“開始→運作”,在“運作”對話框中輸入“regedit”指令并回車,彈出

  “系統資料庫編輯器”對話框,展開“hkey_local_machinesystemcurrentcontrolsetservicestcpip parameters”,找到“defaultttl”,将該值修改為十進制的“255”,重新啟動伺服器系統後即可。

繼續閱讀