如何根據TTL判斷主機的操作系統

一、TTL是什麼
TTL(Time To Live,生存時間)是IP協議包中的一個值,當我們使用Ping命令進行網絡連通測試或者是測試網速的時候,本地計算機會向目的主機發送數據包,但是有的數據包會因爲一些特殊的原因不能正常傳送到目的主機,如果沒有設置TTL值的話,數據包會一直在網絡上面傳送,浪費網絡資源。數據包在傳送的時候至少會經過一個以上的路由器,當數據包經過一個路由器的時候,TTL就會自動減1,如果減到0了還是沒有傳送到目的主機,那麼這個數據包就會自動丟失,這時路由器會發送一個ICMP報文給最初的發送者。

例如:如果一個主機的TTL是64,那麼當它經過64個路由器後還沒有將數據包發送到目的主機的話,那麼這個數據包就會自動丟棄

二、如何通過TTL來判斷目的主機的操作系統類型
不同的操作系統的默認TTL值是不同的, 所以我們可以通過TTL值來判斷主機的操作系統,但是當用戶修改了TTL值的時候,就會誤導我們的判斷,所以這種判斷方式也不一定準確。下面是默認操作系統的TTL:
1、WINDOWS NT/2000   TTL:128
2、WINDOWS 95/98     TTL:32
3、UNIX              TTL:255
4、LINUX             TTL:64
5、WIN7          TTL:64
三、如何確認從TTL值判斷的經過路由數
從TTL值,我們可以大致判斷主機的數據包經過多少個路由器到達目的主機,那麼我們如何知道它經過了哪些路由器,下面舉個例子說明:

從TTL的值可以看出主機的數據包經過64-59=5個路由器到達目的主機,那麼如何確認經過5個路由器的這個數值是正確的呢?答案是:使用cmd命令裏面的tracert命令來查看,如:

四、如何修改本機電腦上面的默認TTL值
通過修改本機上的TTL值可以混淆攻擊者的判斷(當然,很少有用戶會這麼做)。TTL值在註冊表的位置是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (通過在cmd命令裏面輸入:regedit,然後回車的方式可以打開註冊表)。其中有個DefaultTTL的DWORD值,其數據就是默認的TTL值了,我們可以修改DefaultTTL裏面的TTL默認值,但不能大於十進制的255。
--------------------- 
作者:重新出發的Heywood 
來源:CSDN 
原文:https://blog.csdn.net/woshiwumingshi1/article/details/54312179 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章