您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页端口扫描

端口扫描

来源:华佗健康网


端口扫描

计算机的一个应用程序在网络上与其他机器通讯,是通过IP加端口来进行标识的,一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口 扫描,能得到许多有用的信息。一般我们扫描器进行扫描,扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种 方法,可以搜集到很多关于目标主机的各种有用的信息(比如:是否能用匿名登陆 !是否有可写的FTP目录,是否能用TELNET,HTTPD是用ROOT还是nobady在跑!) 扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某 些内在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主 机的漏洞。但它不会提供进入一个系统的详细步骤。

TCP扫描

最基本的扫描方式是TCP扫描。TCP的三种常见端口扫描方式有:开放式扫描(TCP connect扫描)、半开放式扫描(TCP SYN扫描)、隐蔽式扫描(TCP FIN扫描)

TCPConnect()扫描通过调用Connect()函数连接目标主机的目标端口,根据函数的返回值来进行判断。如果Connect()调用返回成功标志,说明完成了一次完整的TCP三次握手连接过程,该端口是打开的,否则该端口就是关闭的。这个技术的一个最大的优点是, 你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速 度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花 费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻塞 I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点 是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连 接是出错的服务消息,并且能很快的使它关闭。

TCP SYN扫描向目标主机的特定端口发送一个SYN包,如果应答包为RST包,则说明该端口是关闭的,否则,会收到一个SYN|ACK包,最后发送一个RST,停止建立连接。

TCP FIN扫描发送一个FIN数据包,如果端口关闭的,则远程主机丢弃该包,并送回一个RST包,否则,远程主机丢弃该包,不回送。

ICMP扫描

ICMP协议——PING是最常用的,也是最简单的探测手段,用来判断目标是否活动。实际上Ping是向目标发送一个要求回显(Type = 8)的ICMP数据报,当主机得到请求后,再返回一个回显(Type = 0)数据报。而且Ping 程序一般是直接实现在系统内核中的,而不是一个用户进程。Ping是最基本的探测手段,Ping Sweep(Ping扫射)就是对一个网段进行大范围的Ping,由此确定这个网段的网络运作情况,比如著名的fping工具就是进行Ping扫射的。 不过现在连基本的个人防火墙都对Ping做了,这个也太基本了。如果透过防火墙,如何获得最理想的目标图,也是很多人整天思考的问题。

高级的ICMP扫描技术主要是利用ICMP协议最基本的用途:报错。根据网络协议,如果按照协议出现了错误,那么接收端将产生一个 ICMP的错误报文。这些错误报文并不是主动发送的,而是由于错误,根据协议自动产生。 当IP数据报出现checksum和版本的错误的时候,目标主机将抛弃这个数据报,如果是checksum出现错误,那么路由器就直接丢弃这个数据报了。有些主机比如AIX 、HP-UX等,是不会发送ICMP的Unreachable数据报的。

我们利用下面这些特性:

1、向目标主机发送一个只有IP头的IP数据包,目标将返回Destination Unreachable的ICMP错误报文。

2、向目标主机发送一个坏IP数据报,比如,不正确的IP头长度,目标主机将返回Parameter Problem的ICMP错误报文。

3、当数据包分片但是,却没有给接收端足够的分片,接收端分片组装超时会发送分片组装超时的ICMP数据报。

向目标主机发送一个IP数据报,但是协议项是错误的,比如协议项不可用,那么目标将返回Destination Unreachable的ICMP报文,但是如果是在目标主机前有一 个防火墙或者一个其他的过滤装置,可能过滤掉提出的要求,从而接收不到任何回应。可以使用一个非常大的协议数字来作为IP头部的协议内容,而且这个协议 数字至少在今天还没有被使用,应该主机一定会返回Unreachable,如果没有 Unreachable的ICMP数据报返回错误提示,那么就说明被防火墙或者其他设备过滤了 ,我们也可以用这个办法来探测是否有防火墙或者其他过滤设备存在。 利用IP的协议项来探测主机正在使用哪些协议,我们可以把IP头的协议项改变,因为是8位的,有256种可能。通过目标返回的ICMP错误报文,来作判断哪些协议 在使用。如果返回Destination Unreachable,那么主机是没有使用这个协议的,相反,如果什么都没有返回的话,主机可能使用这个协议,但是也可能是防火墙 等过滤掉了。NMAP 的IP Protocol scan也就是利用这个原理。 利用IP分片造成组装超时ICMP错误消息,同样可以来达到我们的探测目的。当主机接收到丢失分片的数据报,并且在一定时间内没有接收到丢失的数据报,就会丢弃整个包,并且发送ICMP分片组装超时错误给原发送端。我们可以利用这个特性制造分片的数据包,然后等待ICMP组装超时错误消息。可以对UDP分片,也可以对TCP甚至ICMP数据包进行分片,只要不让目标主机获得完整的数据包就行了,当然,对于UDP这种非连接的不可靠协

议来说,如果我们没有接收到超时错误的 ICMP返回报,也有可能时由于线路或者其他问题在传输过程中丢失了。我们能够利用上面这些特性来得到防火墙的ACL(access list),甚至用这些特性来获得整个网络拓扑结构。如果我们不能从目标得到Unreachable报文或者分片 组装超时错误报文,可以作下面的判断: 1、防火墙过滤了我们发送的协议类型 2、防火墙过滤了我们指定的端口 3、防火墙阻塞ICMP的Destination Unreachable或者Protocol Unreachable错误消息。4、防火墙对我们指定的主机进行了ICMP错误报文的阻塞。

UDP扫描

在UDP实现的扫描中,多是了利用和ICMP进行的组合进行,这在ICMP中以及提及了。还有一些特殊的就是UDP回馈,比如SQL SERVER,对其1434端口发送‘x02’或者‘x03’就能够探测得到其连接端口。

FTP扫描

出于设计上的需要,当FTP客户端要以主动模式请求传送数据时,服务器必须要建立一个返回到客户机端口上的连接客户端发出PORT命令,以IP和端口作为参数,如果参数中有另一台主机的IP数据,服务器将与这台主机相连。我们就利用FTP的这种特点来执行代理端口扫描。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务