python - 關(guān)于ACK標(biāo)志位的TCP端口掃描的疑惑?
問(wèn)題描述
書(shū)上說(shuō)ACK掃描,如果對(duì)方端口是開(kāi)放的,返回的RST報(bào)文TTL應(yīng)該小于等于64,而大于則表示不開(kāi)放。
但是我在Kail上分別對(duì)同一個(gè)C段的兩臺(tái)機(jī)器進(jìn)行掃描時(shí)發(fā)現(xiàn):
對(duì)windows主機(jī)的一個(gè)開(kāi)放端口(80)掃描,得到的RST報(bào)文的TTL=128,window=32767,對(duì)一關(guān)閉的端口(11987)掃描,得到的RST報(bào)文的TTL=128,window=32767
對(duì)Linux主機(jī)(Ubuntu 16.04)的一個(gè)開(kāi)放端口(22)掃描,得到的RST報(bào)文的TTL=64,window=0,對(duì)一關(guān)閉端口(12339)掃描,得到的RST報(bào)文的TTL=64,window=0
請(qǐng)問(wèn)何解?
問(wèn)題解答
回答1:不是小于等于64等于開(kāi)放端口,是同時(shí)對(duì)一臺(tái)機(jī)器的一堆端口發(fā)送ACK包,有某個(gè)端口返回的RST中TTL明顯小于其他,則說(shuō)明此端口可能開(kāi)放。至于128/64這個(gè)情況,是因?yàn)?nix和windows默認(rèn)的TTL值不同。一般可認(rèn)為*nix的默認(rèn)TTL值為64,windows為128。(具體到不同系統(tǒng)/內(nèi)核版本,會(huì)有區(qū)別)
相關(guān)文章:
1. Java反射問(wèn)題:為什么android.os.Message的recycleUnchecked方法不能通過(guò)反射獲取到?2. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個(gè)制作游戲的空的黑窗口?3. html5和Flash對(duì)抗是什么情況?4. php如何獲取訪問(wèn)者路由器的mac地址5. javascript - 在 vue里面用import引入js文件,結(jié)果為undefined6. 前端 - node vue webpack項(xiàng)目文件結(jié)構(gòu)7. 小程序怎么加外鏈,語(yǔ)句怎么寫(xiě)!求救新手,開(kāi)文檔沒(méi)發(fā)現(xiàn)8. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件9. javascript - vue-resource中如何設(shè)置全局的timeout?10. thinkPHP5中獲取數(shù)據(jù)庫(kù)數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見(jiàn)。有圖有代碼,希望有人幫忙
