(1)一、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
————————————————
例如:
ping www.baidu.com PING www.a.shifen.com (110.242.68.3): 56 data bytes 64 bytes from 110.242.68.3: icmp_seq=0 ttl=53 time=11.686 ms 64 bytes from 110.242.68.3: icmp_seq=1 ttl=53 time=13.580 ms 64 bytes from 110.242.68.3: icmp_seq=2 ttl=53 time=13.579 ms 64 bytes from 110.242.68.3: icmp_seq=3 ttl=53 time=12.287 ms c64 bytes from 110.242.68.3: icmp_seq=4 ttl=53 time=12.914 ms 64 bytes from 110.242.68.3: icmp_seq=5 ttl=53 time=13.178 ms 64 bytes from 110.242.68.3: icmp_seq=6 ttl=53 time=13.464 ms 64 bytes from 110.242.68.3: icmp_seq=7 ttl=53 time=13.832 ms
從TTL 53最接近的值64看,應該是linux或者win7.
所以ttl判定的話,稍微有點坑爹。
2、直接nmap,
sudo nmap -O 110.242.68.3 Password: Starting Nmap 7.70 ( https://nmap.org ) at 2021-05-04 19:33 CST Nmap scan report for 110.242.68.3 Host is up (0.013s latency). Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: specialized Running (JUST GUESSING): AVtech embedded (88%) Aggressive OS guesses: AVtech Room Alert 26W environmental monitor (88%) No exact OS matches for host (test conditions non-ideal).
3、看文件名大小寫:
https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E4%B8%AD%E6%96%B9%E9%A9%B3%E6%96%A5%E8%8F%B2%E5%A4%96%E9%95%BF%E5%AF%B9%E4%B8%AD%E5%9B%BD%E6%B5%B7%E8%AD%A6%E8%88%B9%E8%AF%B4%E8%84%8F%E8%AF%9D&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1
修改s為大寫,可以看到結果是一樣的。說明不是win,而是linux。