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_MACHINE\System\CurrentControlSet\Services\Tcpip\ Parameters”,找到“DefaultTTL”,將該值修改為十進制的“255”,重新啟動服務器系統后即可。
posted on 2013-10-23 10:51 順其自然EVO 閱讀(515) 評論(0) 編輯 收藏 所屬分類: linux