端口扫描技术

目前主要的端口扫描技术有以下几种:
1.TCP connect Scan(TCP连接扫描)

种方法也称之为“TCP全连接扫描”。它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。它直接连到目标端口并完成一个完整的3次握手过
程(SYN、SYN/ACK和ACK)。操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状
态,那么“connect()”函数就能成功。否则,这个端口是不能用的,即没有提供服务。
TCP连接扫描技术的一个
最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的方式,使
用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许用户设置一个低的

时间以用尽周期,并同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接出错的服务
消息,目标计算机用户发现后就能很快使它关闭。

2.TCP SYN Scan(TCP同步序列号扫描)
若端口扫描没有完成一个完整的
TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接,
使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。
SYN
扫描,通过本机的一个端口向对方指定的端口,发送一个TCP的SYN连接建立请求数据报,然后开始等待对方的应答。如果应答数据报中设置了SYN位
和ACK位,那么这个端口是开放的;如果应答数据报是一个RST连接复位数据报,则对方的端口是关闭的。使用这种方法不需要完成Connect系统调用所
封装的建立连接的整个过程,而只是完成了其中有效的部分就可以达到端口扫描的目的。
此种扫描方式的优点是不容易被发
现,扫描速度也比较快。同时通过对MAC地址的判断,可以对一些路由器进行端口扫描,缺点是需要系统管理员的权限,不适合
使用多线程技术。因为在实现过程中需要自己完成对应答数据报的查找、分析,使用多线程容易发生数据报的串位现象,也就是原来应该这个线程接收的数据报被另
一个线程接收,接收后,这个数据报就会被丢弃,而等待线程只好在超时之后再发送一个SYN数据报,等待应答。这样,所用的时间反而会增加。

3.TCP FIN Scan(TCP结束标志扫描)
这种扫描方式不依赖于TCP的3次握
手过程,而是TCP连接的“FIN”(结束)位标志。原理在于TCP连接结束时,会向TCP端口发送一个设置了FIN
位的连接终止数据报,关闭的端口会回应一个设置了RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。可以根据是否收到
RST数据报来判断对方的端口是否开放。
此扫描方式的优点比前两种都要隐秘,不容易被发现。该方案有两个缺点:首先,
要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结
论;其次,一些系统并没有遵循规定,最典型的就是Microsoft公司所开发的操作系统。这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个
RST连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效的。

4.IP Scan(IP协议扫描) 
这种方法并不是直接发送TCP协议探测数据包,而是将数据包分成两个较小的IP协议段。这样就将一个TCP协议头分成好几个数据包,从而过滤器就很难探测到。但必须小心,一些程序在处理这些小数据包时会有些麻烦。

5.TCP Xmas Tree Scan
这种方法向目标端口发送一个含有FIN(结束)、URG(紧急)和PUSH(弹出)标志的分组。根据RFC793,对于所有关闭的端口,目标系统应该返回RST标志。根据这一原理就可以判断哪些端口是开放的。

6.TCP Null Scan
这种方法与上一方法原理是一样,只是发送的数据包不一样而已。本扫描方案中,是向目标端口发送一个不包含任何标志的分组。根据RFC793,对于所有关闭的端口,目标系统也应该返回RST标志。

7.UDP Scan(UDP协议扫描)
在UDP扫描中,是往目标端口发送一个UDP分
组。如果目标端口是以一个“ICMP port
Unreachable”(ICMP端口不可到达)消息来作为响应的,那么该端口是关闭的。相反,如果没有收到这个消息那就可以推断该端口打开着。还有就
是一些特殊的UDP回馈,比如SQL
Server服务器,对其1434号端口发送“x02”或者“x03”就能够探测得到其连接端口。由于UDP是无连接的不可靠协议,因此这种技巧的准确性

很大程度上取决于与网络及系统资源的使用率相关的多个因素。另外,当试图扫描一个大量应用分组过滤功能的设备时,UDP扫描将是一个非常缓慢的过程。如果
要在互联网上执行UDP扫描,那么结果就是不可靠的。

8.ICMP echo扫描 
其实这并不能算是真正意义上的扫描。但有时的确可以通过支持
Ping命令,判断在一个网络上主机是否开机。Ping是最常用的,也是最简单的探测手段,用
来判断目标是否活动。实际上Ping是向目标发送一个回显(Type=8)的ICMP数据包,当主机得到请求后,再返回一个回显(Type=0)的数据
包。而且Ping程序一般是直接实现在系统内核中的,而不是一个用户进程,更加不易被发现。

9.高级ICMP扫描技术
Ping是利用ICMP协议实现的,高级的ICMP扫描技术主要
利用ICMP协议最基本的用途——报错。根据网络协议,如果接收到的数据包协议项出现了错 误,那么接收端将产生一个“Destination
Unreachable”(目标主机不可达)ICMP的错误报文。这些错误报文不是主动发送的,而是由于错误,根据协议自动产生的。
当IP数据包出现Checksum(校验和)和版本的错误的时候,目标主机将抛弃这个数据包;如果是Checksum出现错误,那么路由器就直接丢弃这个数据包。有些主机比如AIX、HP/UX等,是不会发送ICMP的Unreachable数据包的。

如,可以向目标主机发送一个只有IP头的IP数据包,此时目标主机将返回“Destination
Unreachable”的ICMP错误报文。如果向目标主机发送一个坏IP数据包,比如不正确的IP头长度,目标主机将返回“Parameter
Problem”(参数有问题)的ICMP错误报文。
注意:如果是在目标主机前有一个防火墙或者一个其他的过滤装置,
可能过滤掉提出的要求,从而接收不到任何的回应。这时可以使用一个非常大的协议数字作为
IP头部的协议内容,而且这个协议数字至少在今天还没有被使用,主机一定会返回Unreachable;如果没有Unreachable的ICMP数据包
返回错误提示,那么,就说明被防火墙或者其他设备过滤了,也可以用这个方法探测是否有防火墙或者其他过滤设备存在。

时间: 2024-10-25 15:44:29

端口扫描技术的相关文章

小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相信] 一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息.进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描.在手工进行扫描时,需要熟悉各种命令.对命令执行后的输出进行分析.用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能.通过

一、TCP扫描技术

一.TCP扫描技术 常用的端口扫描技术有很多种,如 TCP connect() 扫描 .TCP SYN 扫描.TCP FIN 扫描 等,网络上也有很多文章专门介绍,比如 :http://www.antai-genecon.com/suml/zhishiyy/jingong/duankougj.htm 上就介绍了很多我的程序 所使用的最基本的扫描技术:TCP 扫描. 操作系统提供的 connect() 系统调用,用来与每一个感兴趣的目标计算机的端口进行连接.如果端口处于侦听状态,那么connect

端口扫描 多方式协同实现

最后一个暑假,因为已经有一个项目在手,不想把自己整得太累,但又不能太闲,于是选择了一个可以拖拖踏踏做的简单事情,做一套端口扫描.这种平时集中精力几天就可以做完的事情,结果真是拖拖踏踏了很久才做完. 进入正题.端口扫描,即是通过一些扫描的手段来探知某些ip的端口情况,主要为探知端口的开放情况与端口的应用类型. 由于各个设备的系统与防火墙的差异,某一单一的端口扫描方式难以应用于所有的系统,而且扫描方并不知道扫描对方的系统情况.为了应对不同情况,有必要采用多种扫描方式协同扫描.在此我使用了connec

端口扫描之王——nmap

端口扫描是网络安全工作者的必备的利器,通过对端口的扫描,了解网站中出现的漏洞以及端口的开放情况,对网站安全方面有着不可或缺的贡献,目前在市面上主要的端口扫描工具是X_Scan.SuperScan.nmap,其中在这里主推的是nmap,因为nmap具有以下的这一些优点: 1.多种多样的参数,丰富的脚本库,满足用户的个人定制需求,其中脚本库还提供了很多强大的功能任你选择 2.强大的可移植性,基本上能在所有的主流系统上运行,而且代码是开源的 3.详细的文档说明,和强大的社区团队进行支持,方面新人上手

告别脚本小子【编写端口扫描工具】

前言Windows系统默认开放了很多端口,通常这些端口意味着该主机运行着大家都知道的服务,比如TCP端口21-FTP服务,TCP端口80-HTTP服务,有些服务就有可能存在公开的漏洞,因此可以说主机上每一个开放的端口都可能成为一条入侵的捷径.当然,网上存在很多端口扫描工具,但是我们总不能只知道使用别人的工具,一是这些工具别人编写的时候有没有加入后门,二是如果只会用别人的工具,最终也只能是一个脚本小子,所以我们自己来编写一款实用的端口扫描工具. 一.基础知识 1.1.线程 线程,有时被称为轻量级进

【安全牛学习笔记】 端口扫描

端口扫描 ╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋ ┃隐蔽端口扫描                                                    ┃ ┃Syn-----syn/ack-----rst                                         ┃ ┃Scapy                                                           ┃ ┃  sr1(IP(dst="

​【安全牛学习笔记】端口扫描(二)

端口扫描(二) ╋━━━━━━━━━━━━━━━━━╋ ┃端口扫描                          ┃ ┃隐蔽扫描-----syn                  ┃ ┃  不建立完整链接                  ┃ ┃  应用日志不记录扫描行为-----隐蔽 ┃ ┃僵尸扫描                          ┃ ┃  极度隐蔽                        ┃ ┃  实施条件苛刻                    ┃ ┃  可伪

3.2 主机探测与端口扫描

一.msf基本命令 1.ping 2.arp_sweep  利用arp请求枚举本地局域网中所有活跃的主机 use auxiliary/scanner/discovery/arp_sweep 3.udp_sweep UDP数据包枚举活跃主机 msf > use auxiliary/scanner/discovery/udp_sweep 二.Nmap进行主机扫描 个人感悟: 不能使用sT扫描参数 略(在我完成nmap综合学习后补全) TARGET SPECIFICATION:    #目标规格   

端口扫描———nmap

nmap教程之nmap命令使用示例(nmap使用方法) 浏览:8268 | 更新:2014-03-29 17:23 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统 Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆