您的位置:首页 > 其它

nmap端口探测原理初探

2015-05-29 18:14 253 查看
最近使用nmap扫描端口,对于其几种常用的探测方式是如何实现的非常好奇,所以结合wireshark抓包总结了一点,特分享给大家看看

扫描端口时,普通用户默认采用connect方式,即-sT方式,root用户默认采用-sS(syn包)方式

扫描结果有open、closed、filtered、unfiltered四种

不建议使用-sT方式,因为此种方式是要去与目标端口建立tcp连接,耗时且易被记录

如下的几种方式需要root权限,因为从原理上来说,都是使用了rawsocket,自己填写tcp的flags部分而不是由系统内核完成

-sA方式,即使用了只设置ACK位的tcp包,若返回RST报文,则此端口unfiltered,若什么都不返回则为filtered

-sS方式,即使用了只设置SYN位的tcp包,若返回RST,ACK报文,则此端口closed,若返回SYN,ACK报文,则open,什么都不返回为filtered

-sF方式,即使用了只设置FIN位的tcp包,若返回RST,ACK报文,则此端口closed,若什么都不返回则为open|filtered

-sN方式,即使用了数据部分为空的tcp包,结果同-sF方式

-S方式:即使用spoof IP,默认使用-sS方式,此种策略有中借刀杀人的感觉,虽然被攻击目标记录的是spoof IP,但是真正源主机的MAC没变化,躲避检测效果不佳

由上可知,不同的扫描方式适用于不同的目的,自己使用C和python的RawSocket分别实现了这几种扫描方式,需要的话可以去我的github看看,https://github.com/wolfzhaoshuai
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: