TTL是數據包生存週期,根據減少的數可以判斷經過了多少中間設備
在沒有經過修改的情況下:
UNIX及類UNIX操作系統ICMP回顯應答的TTL字段值爲255
Compaq Tru64 5.0 ICMP回顯應答的 TTL字段值爲64
微軟Windows NT/2K操作系統ICMP回顯應答的TTL字段值爲128
微軟Windows 95操作系統ICMP回顯應答的 TTL字段值爲32
LINUX Kernel 2.2.x & 2.4.x ICMP 回顯應答的 TTL 字段值爲 64
FreeBSD 4.1, 4.0, 3.4;
Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
OpenBSD 2.6, 2.7,
NetBSD
HP UX 10.20
ICMP 回顯應答的 TTL 字段值爲 255
Windows 95/98/98SE
Windows ME
ICMP 回顯應答的 TTL 字段值爲 32
Windows NT4 WRKS
Windows NT4 Server
Windows 2000
ICMP 回顯應答的 TTL 字段值爲 128
這樣,我們就可以通過這種方法來辨別
操作系統 TTL
LINUX 64
WIN2K/NT 128
WINDOWS 系列 32
UNIX 系列 255
-------------------------------------------------------------------------------------------
大家知道,通過Ping和Tracert程序就能判斷目標主機類型 ,Ping最主要的用處就是檢測目標主機是否
能連通。Tracert利 用ICMP數據包和IP數據包頭部中的TTL值,防止數據包不斷在IP 互聯網上永不終止
地循環。
許多***者首先會Ping一下你的機子,如看到TTL值爲 128就認爲你的系統爲Windows NT/2000;如果TTL
值爲32則認爲目標主機操作系統爲Windows 95/98;如果TTL值爲255/64就認爲是UNIX/Linux操作系統。既
然***者相信TTL值所反映出來的結果,那麼我們只要修改TTL 值,***者就無法***電腦了。
操作步驟:
1.打開“記事本”程序,編寫批處理命令:
@echo REGEDIT4>>ChangeTTL.reg
@echo.>>ChangeTTL.reg
@echo [HKEY_LOCAL_MACHlNE\System\CurrentControlSet\Services\T cpip\Parameters]
>>ChangeTTL.reg
@echo "DefaultTTL"=dword:000000">>ChangeTTL.reg
@REGEDIT /S/C ChangeTTL.reg
2.把編好的程序另存爲以.bat爲擴展名的批處理文件, 點擊這個文件,你的操作系統的缺省TTL值就會
被修改爲ff,即 10進制的255,也就是說把你的操作系統人爲地改爲UNIX系統了 。同時,在該文件所在
的文件夾下會生成一個名爲 ChangeTTL.reg 的註冊表文件。如果你想運行完這個批處理文件而不產生
ChangeTTL.reg文件,可以在此批處理文件的最後一行加上 deltree/Y ChangeTTL.reg,就可以無須確認
自動刪除ChangeTTL.reg文件 。
說明:在上面的命令中,echo是DOS下的回顯命令,如 果想看到程序執行過程,請將“@”去掉。“> >”
產生的內容將追加到它後面的文件即ChangeTTL.reg中。 而“DefaultTTL"=dword?000000ff”則是用來
設置系統缺省TTL 值的,如果你想將自己的操作系統的TTL值改爲其他操作系統的 ICMP回顯應答值,請
改變“"DefaultTTL"”的鍵值,要注意將 對應操作系統的TTL值改爲十六進制纔可以。
這樣,當***者Ping你的機器時,他得到的就是一個假 的TTL值,這個假的TTL值就會誤導對方,使***
者的判斷出現 失誤,因爲針對不同的操作系統的***方法並不一樣,所以用 這個方法欺騙對方,可以
讓他摸不着頭腦!利用這個方法欺騙 ***者是不是很妙啊?