普及网络安全知识,推动信息技术发展。
为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。
欢迎来到灰帽程序员论坛,我们的网址是:
论坛以技术交流为主,非商业性质论坛。
大家好,我是小雨,QQ:798033502
今天给大家带来的教程是《Web-Attak系列教程第二季0x03讲——常见扫描方式简介》
这些视频教程最终会整理成书《Web安全编程与渗透分析》
上一讲我们介绍了计算机三次握手的原理和TCP SYN扫描的原理和实现。需要补充的一点是windows Xp 默认是不支持syn扫描的,如果你的是xp的系统,那么打上我给你们的补丁,然后重启就可以了。
这次我们再简要说下几种扫描方式:
TCP ACK扫描:通常用来探测防火墙的类型,根据ACK位的设置情况来探测防火墙是过滤包的机制还是状态检测的机制。
TCP RPC扫描:UNIX系统特有的用于检测和定位远程过程调用端口及其相关程序与版本号
TCP connect 扫描:通过调用connect()接口函数连接到目标端口,形成一次完整的“三次握手”过程,这种扫描方式不隐蔽。
TCP SYN 扫描:俗称半开放式扫描。向目标端口发送一个SYN包,若得到来自目标端口返回的SYN/ACK响应包,则目标端口开放。若得到RST则未开放。(这种扫描方式虽然隐蔽,但是synlogger等工具依然能够检测到它)
TCP FIN 扫描:向目标端口发送FIN,若端口开放则此包被忽略,否则返回RST。(这种扫描是利用某些操作系统TCP实现的BUG,并非所有的操作系统都有这个BUG,此方法只能在UNIX系统上使用,因此这种扫描不是很流行)
TCP reverse ident 扫描:ident协议允许通过TCP连接得到进程所有者的别名,即使该进程不是连接发起方。此方法用于得到FTP所有者信息等。
TCP Xmas Tree扫描:该程序向目标端口发送一个FIN、URG、PUSH包,若其关闭,应该返回一个RST包。
TCP NULL 扫描:发送一个没有任何标志位的包,关闭端口讲返回一个RST数据包。
UDP ICMP端口不可达扫描:我们知道UDP协议是无连接的协议,所以一个打开的UDP端口并不会返回任何响应包。若端口关闭,将返回ICMP_PORT_UNREACH信息。
UDP recvfrom()和write()扫描:在linux下,若一个UDP端口关闭,则第二次write()操作会失败。当调用recvfrom()时,若未收到ICMP的错误信息,一个非阻塞的UDP套接字一般返回EAGAIN("Try Again",error=13);若收到ICMP的错误信息,套接字返回ECONNREFUSED("Connectionrefused",error=111),这种扫描方式是Nmap提供的。
除了上面介绍的几种TCP和UDP扫描的方式外,还有一些比较另类的扫描方式,如分片扫描和FTP跳转扫描。感兴趣的朋友可以深入研究下。篇幅有限,在这里就不在做过多介绍。