第7章 网络扫描技术

更新时间:2023-06-08 06:56:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络扫描技术

信息收集:扫描技术 基于TCP/IP协议,对各种网络服务,无论是主 机或者防火墙、路由器都适用 扫描可以确认各种配置的正确性,避免遭受不 必要的攻击 用途,双刃剑 安全管理员可以用来确保自己系统的安全性 黑客用来探查系统的入侵点

端口扫描的技术已经非常成熟,目前有大量的 商业、非商业的扫描器2

扫描器的重要性 扫描器能够暴露网络上潜在的脆弱性 无论扫描器被管理员利用,或者被黑客利用,都 有助于加强系统的安全性 它能使得漏洞被及早发现,而漏洞迟早会被发现的

扫描器可以满足很多人的好奇心 扫描器除了能扫描端口,往往还能够 发现系统存活情况,以及哪些服务在运行 用已知的漏洞测试这些系统 对一批机器进行测试,简单的迭代过程 有进一步的功能,包括操作系统辨识、应用系统识别3

扫描器历史 早期 80年代,网络没有普及,上网的好奇心驱使许多年轻人通过Modem 拨号进入到UNIX系统中。这时候的手段需要大量的手工操作 于是,出现了war dialer——自动扫描,并记录下扫描的结果 现代的扫描器要先进得多

SATAN: Security Administrator's Tool for Analyzing Networks 1995年4月发布,引起了新闻界的轰动 界面上的突破,从命令行走向图形界面(使用HTML界面),不依赖于 X 两位作者的影响(Dan Farmer写过网络安全检查工具COPS,另一位 Weitse Venema是TCP_Wrapper的作者)

Nmap 作者为Fyodor,技术上,是最先进的扫描技术大集成 结合了功能强大的通过栈指纹来识别操作系统的众多技术4

扫描技术 主机扫描:确定在目标网络上的主机是否可达, 同时尽可能多映射目标网络的拓扑结构,主要 利用ICMP数据包 端口扫描:发现远程主机开放的端口以及服务

操作系统指纹扫描:根据协议栈判别操作系统

传统主机扫描技术 ICMP Echo Request (type 8) 和 Echo Reply (type 0) 通过简单地向目标主机发送ICMP Echo Request 数据包,并等 待回复的ICMP Echo Reply 包,如Ping

ICMP Sweep(Ping Sweep) 使用ICMP Echo Request一次探测多个目标主机。通常这种探 测包会并行发送,以提高探测效率

Broadcast ICMP 设置ICMP请求包的目标地址为广播地址或网络地址,则可以 探测广播域或整个网络范围内的主机,这种情况只适合于 UNIX/Linux系统

Non-Echo ICMP 其它ICMP服务类型(13和14、15和16、17和18)也可以用于 对主机或网络设备如路由器等的探测6

高级主机扫描技术利用被探测主机产生的ICMP错误报文来进行复杂的主机 探测 异常的IP包头 向目标主机发送包头错误的IP包,

目标主机或过滤设备会反馈 ICMP Parameter Problem Error信息。常见的伪造错误字段为 Header Length 和IP Options。不同厂家的路由器和操作系统 对这些错误的处理方式不同,返回的结果也不同。

在IP头中设置无效的字段值 向目标主机发送的IP包中填充错误的字段值,目标主机或过滤 设备会反馈ICMP Destination Unreachable信息。这种方法同 样可以探测目标主机和网络设备

高级主机扫描技术(续) 通过超长包探测内部路由器 若构造的数据包长度超过目标系统所在路由器的PMTU且设置 禁止分片标志, 该路由器会反馈 Fragmentation Needed and Don’t Fragment Bit was Set差错报文。

反向映射探测 用于探测被过滤设备或防火墙保护的网络和主机 。 构造可能的内部IP地址列表,并向这些地址发送数据包。当对 方路由器接收到这些数据包时,会进行IP识别并路由,对不在 其服务的范围的IP包发送ICMP Host Unreachable或ICMP Time Exceeded 错误报文,没有接收到相应错误报文的IP地址 可被认为在该网络中

主机扫描的对策 使用可以检测并记录ICMP扫描的工具 使用入侵检测系统 在防火墙或路由器中设置允许进出自己网 络的ICMP分组类型

端口扫描技术 开放扫描(Open Scanning) 需要扫描方通过三次握手过程与目标主机建立完整 的TCP连接 可靠性高,产生大量审计数据,容易被发现

半开放扫描(Half-Open Scanning) 扫描方不需要打开一个完全的TCP连接

秘密扫描(Stealth Scanning) 不包含标准的TCP三次握手协议的任何部分 隐蔽性好,但这种扫描使用的数据包在通过网络时 容易被丢弃从而产生错误的探测信息10

端口扫描技术 基本的TCP connect()扫描(开放) TCP SYN扫描(半开放) IP ID header aka “dump”扫描(半开放) TCP Fin扫描(秘密) TCP XMAS扫描(秘密) 用IP分片进行SYN/FIN扫描(躲开包过滤防火墙) UDP ICMP端口不可达扫描

TCP connect()扫描 原理 扫描器调用socket的connect()函数发起一个正常的 连接 如果端口是打开的,则连接成功 否则,连接失败

优点 简单,不需要特殊的权限

缺点 服务器可以记录下客户的连接行为,如果同一个客 户轮流对每一个端口发起连接,则一定是在扫描

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

由于连接没有完全建立,所以称为“半开连接扫描”

优点 很少有系统会记录这样的行为

缺点 在UNIX平台上,需要root权限才可以建立这样的 SYN数据包13

IP

ID header aka “dump” 扫描 由Antirez首先使用,并在Bugtraq上公布 原理: 扫描主机通过伪造第三方主机IP地址向目标主机发 起SYN扫描,并通过观察其IP序列号的增长规律获 取端口的状态

优点 不直接扫描目标主机也不直接和它进行连接,隐蔽 性较好

缺点 对第三方主机的要求较高14

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

变种,组合其他的标记

优点 不是TCP建立连接的过程,所以比较隐蔽

缺点 与SYN扫描类似,也需要构造专门的数据包 在Windows平台无效,总是发送RST包15

TCP XMAS扫描 原理 扫描器发送的TCP包包头设置所有标志位 关闭的端口会响应一个同样设置所有标志位的包 开放的端口则会忽略该包而不作任何响应

优点 比较隐蔽

缺点 主要用于UNIX/Linux/BSD的TCP/IP的协议栈 不适用于Windows系统

分片扫描 它本身并不是一种新的扫描方法,而是其他扫 描技术的变种,特别是SYN扫描和FIN扫描 思想是,把TCP包分成很小的分片,从而让它 们能够通过包过滤防火墙 注意,有些防火墙会丢弃太小的包 而有些服务程序在处理这样的包的时候会出现异常, 或者性能下降,或者出现错误

UDP ICMP端口不可达扫描 利用UDP协议 原理 开放的UDP端口并不需要送回ACK包,而关闭的端口也不要 求送回错误包,所以利用UDP包进行扫描非常困难 有些协议栈实现的时候,对于关闭的UDP端口,会送回一个 ICMP Port Unreach错误

缺点 速度慢,而且UDP包和ICMP包都不是可靠的 需要root权限,才能读取ICMP Port Unreach消息

一个应用例子 Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这 种技术来探测18

端口扫描的对策 设置防火墙过滤规则,阻止对端口的扫描 例如可以设置检测SYN扫描而忽略FIN扫描

使用入侵检测系统 禁止所有不必要的服务,把自己的暴露程度降 到最低 Unix或linux中,在/etc/inetd.conf中注释掉不必要的 服务,并在系统启动脚本中禁止其他不必要的服务 Windows中通过Services禁止敏感服务,如IIS

操作系统辨识 操作系统辨识的动机 许多漏洞是系统相关的,而且往往与相应的版本对应 从操作系统或者应用系统的具体实现中发掘出来的攻 击手段都需要辨识系统 操作系统的信息还可以与其他信息结合起来,比如漏 洞库,或者社会诈骗(社会工程,social engineering)

如何辨识一个操作系统 一些端口服务的提示信息,例如,telnet、http

、ftp 等服务的提示信息 TCP/IP栈指纹 DNS泄漏出OS系统20

端口服务提供的信息 Telnet服务 Http服务 Ftp服务

本文来源:https://www.bwwdw.com/article/2fd1.html

Top