如何根據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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM