网络扫描技术

主机发现 >> 端口扫描、操作系统识别 >> 漏洞扫描

主机发现

判断目标主机工作状态(存活/关机),针对主机IP地址。

基于ICMP(ICMP查询报文)

操作:向目标主机发送ICMP查询报文,如回送请求(ping命令)、地址掩码请求,

          目标主机应答,该主机存活。

优点:简单易行

缺点:目标主机无应答的多种可能性(大部分防火墙对于ICMP查询报文过滤)

基于IP(ICMP差错报告报文)

操作:向目标IP地址发送精心设计的IP数据包,诱使目标IP对应的存活主机返回ICMP差错报文,  暴露存活状态。

(1)向目标主机发送首部异常的IP报文

         目标主机若存活,回复ICMP差错报告报文作为反馈

(2)利用MTU属性,向目标主机发送分片时有意漏发

         目标主机若存活,返回“分片重组超时”的ICMP差错报告报文

优点:判定结果准确。ICMP差错报告报文不会被防火墙过滤拦截,否则,被保护的主机丧失ICMP差错报告能力

缺点:?

端口扫描

判断目标主机端口的工作状态(监听状态/关闭状态),基于常用应用程序的熟知端口,推断网络服务,为高效精准的网络攻击奠定基础。

TCP扫描 

(待补充链接:TCP协议及其安全性分析)

  • TCP全连接扫描

操作:利用TCP三次握手建立连接的全过程。

  1. 在扫描主机上确定目标主机及目标端口,利用操作系统提供的connect函数与目标端口进行TCP连接建立三次握手。
  2. 端口处于监听状态,connect函数成功返回0;端口关闭,connect函数失败,返回SOCKET_ERROR信息。           

优点:得到结果准确、稳定可靠;connect函数对于调用者无权限要求。

缺点:(1)对于失败的TCP连接请求,目标主机会把失败的TCP连接请求及产生的错误信息记录到日志,若短时间内对目标主机大量端口扫描,会产生大量错误信息,暴露扫描行为;(2)对于成功的TCP连接,目标主机记录成功的TCP连接,若攻击者利用扫描确定开发的端口进行攻击,攻击成功后易被追溯。

  • TCP SYN 扫描

操作:利用TCP三次握手的一半过程,刻意不建立完整的TCP连接,避免暴露。

  1. 扫描主机向目标主机发送请求连接的TCP报文 SYN=1(相同于第一次握手)
  2. 目标端口若处于监听状态,返回响应报文SYN=1,ACK=1(相同于第二次握手), 扫描主机收到响应报文后发送RST=1报文,终断连接建立过程。
  3. 目标端口若处于关闭状态,回复RST=1报文。

优点: 隐匿性好,一般系统不会记录这种不完整的TCP连接,扫描不易暴露。

缺点:攻击者自行构造TCP SYN数据包需管理员权限;一些防火墙和包过滤软件不断增强对于发送到各端口SYN数据包监视力度,谨防利用TCP连接建立过程进行扫描。

  • TCP FIN扫描

操作:不依赖TCP连接建立过程,利用数据包FIN标志位。

  1. 扫描主机向目标端口发送FIN=1的数据包
  2. 目标端口若处于监听状态,不进行回应;若处于关闭状态,回复RST=1报文,复位连接。

优点:比TCP SYN扫描更隐蔽,不易暴露。

缺点:(1)构造数据包需要管理员权限;(2)当目标端口处于监听状态,不会做出任何响应,这意味着扫描主机必须等待超时,增加了扫描时间;(3)无回应的多种可能性,丢包;(4)不是所有系统都遵循RFC 793规定,如windows操作系统无论端口是否处于监听状态,均返回RST=1的连接复位报文。

  • TCP NULL和TCP Xmas扫描

操作:与TCP FIN扫描过程相似,数据包标志位全部设置为0,其余过程包括目标主机响应与TCP FIN扫描相同。

UDP扫描

操作:基于UDP端口的通信特性,ICMP错误消息

  1. 扫描主机向目标端口发送UDP数据包
  2. 目标端口处于监听状态,不做响应;目标端口处于关闭状态,将返回ICMP_PROT_UNREACH消息。

优点:?

缺点:(1)UDP数据包和ICMP错误消息都可能丢包,判断不准确;(2)根据RFC 1812建议,多数操作系统限制ICMP错误信息的比例。

基于FTP代理连接

操作:利用FTP服务器的代理连接选项,通过FTP服务器对目标端口进行TCP扫描。

  1. 扫描主机与FTP服务器建立FTP会话
  2. 扫描主机使用PORT命令确定目标主机的端口P
  3. 扫描主机使用LIST命令让FTP服务器尝试启动一个到目标主机端口P的数据传输
  4. 若目标端口处于监听状态,则数据传输成功;目标端口处于关闭状态,扫描主机收到数据连接无法建立的回应
  5. 扫描主机利用PORT和LIST命令继续扫描目标主机端口,获取所有指定端口信息。

优点:难以跟踪监测;如果FTP服务器和目标主机处于同一局域网,则该扫描行为可绕过该局域网防火墙。

缺点:多数FTP服务器关闭代理连接选项。

端口扫描的隐蔽性策略:

  • 调整扫描次序。打乱扫描的IP地址及端口次序,增强扫描活动随机性,降低扫描活动被检测概率。
  • 减缓扫描速度。大部分扫描检测软件在固定窗口时间内进行通信信息收集分析,如果减缓扫描速度,判定慢速扫描行为需要相当多时间窗口,以此提高隐蔽性。
  • 对数据包中字段进行随机化处理。传统扫描软件构造发送的数据包通常序号、确认号、源端口号或者标志位通常固定,这种行为一般不在正常网络通信中出现,检测软件基于此特征易发现扫描行为。在扫描报文首部随机填入合理数值,增加检测难度。
  • 利用虚假的源地址。扫描主机源地址信息真实,则扫描必将暴露,因此采用虚假的源地址。冒充主机需要和扫描主机在网络拓扑上接近,使得扫描主机可以通过网络嗅探监视目标主机通信,获取目标主机扫描反馈信息。
  • 采用分布式方法进行扫描。扫描任务交给多态主机协同进行,将多个扫描分散。多台主机分别负责目标主机不同端口的扫描活动,同时在时间上将各主机扫描活动分隔开,如果每台主机的扫描活动都非常隐蔽,则很难检测。

操作系统识别

操作系统不同,存在的漏洞大相径庭,判断目标主机操作系统类型(Windows/Linux/Solaris...),便于精准攻击

旗标识别

旗标是客户端向服务器发送连接请求时,服务器返回的欢迎信息,欢迎信息中没有直接说明操作系统类型,但根据某些信息可以推测出操作系统类型。

近几年,用户在启用网络服务时往往过滤旗、修改标信息,避免暴露系统信息及版本信息。

端口识别

利用不同操作系统默认开放的端口不同。如Windows XP、Windows 2003等系统默认开放TCP 135、TCP139、TCP 445端口,Linux不开放这些端口。

管理员可以随意修改默认开放端口的状态,以误导攻击行为。

TCP/IP协议栈指纹识别(精确)

(待完善)

漏洞扫描

判断目标主机可能存在的漏洞,以目标主机的操作系统、开放的服务为依托。

两种方法测试是否存在漏洞:①根据端口扫描和操作系统识别判推断出端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库匹配,看是否有满足匹配条件的漏洞;②模拟黑客攻击方法,对目标主机进行攻击性安全漏洞扫描(测试弱口令),模拟攻击成功,表明目标主机存在安全漏洞。

基于主机的漏洞扫描

需要在被检查系统上安装特定的扫描程序,并赋予管理员权限,从而使得扫描程序可以访问系统内核、系统配置文件以及系统中各类应用程序。扫描程序依据特定规则对系统进行分析,以发现各类安全漏洞,并对发现的漏洞提供相应补丁信息(如微软MBSA)。

攻击者在攻击成功之前,往往不具备足够的权限,因此攻击者常利用基于网络的漏洞扫描。

基于网络的漏洞扫描

要求扫描主机与目标系统通过互联网相连。

  1. 利用端口扫描结果、操作系统识别结果与漏洞库匹配,若漏洞库存在该漏洞,则进一步依据漏洞信息向目标系统发送探测数据包,根据对方返回结果,判断是否存在该漏洞。(必须考虑到网络服务使用的监听端口任意指定的情况,一些设计完善的漏洞扫描程序会在获得开放的端口信息后,对端口进行探测,确定端口对应的网络服务)
  2. 对目标系统模拟一些简单的攻击活动。

基于网络的漏洞扫描软件通常由:扫描控制台、漏洞库、扫描引擎构成。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 FIN扫描 时,可以利用 抓包 程序抓取发送的数据包和 接收的数据包 ,FIN扫描的结果 并不在列表控件中显示!! TCP connect() 扫描: 这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连接是出错的服务消息,并且能很快的使它关闭。 TCP SYN扫描: 这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。 TCP FIN 扫描: 有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系。有的系统不管端口是否打开,都回复RST,这样,这种扫描方法就不适用了。并且这种方法在区分Unix和NT时,是十分有用的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值