网络扫描器的原理与分析 袁 治 2019/1/18.

Slides:



Advertisements
Similar presentations
NAT与ICMP交互.
Advertisements

动态网站开发 【HTTP与网络基础】 李博杰
项目四:Internet基础与接入方法 第八章 应用服务器安装配置
第三章 駭客入侵流程解析.
第2章 入侵方法与手段 曹元大主编,人民邮电出版社,2007年 入侵方法与手段.
第 8 章 IP 基礎與定址.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
第 12 章 UDP 與 TCP.
刘鹏 北京大学信息科学技术学院软件研究所 网络和信息安全研究室
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
淄博信息工程学校 ZIBOIT&ENGINEERING VOCATONAL SHCOOL 03 交换机干道技术 计算机网络技术专业.
Chapter 12 UDP 與 TCP.
计算机网络安全技术实验 启动虚拟机、GIF、measpoilt、.
数据转发过程.
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
项目四 组建跨地区网络 授课教师:肖颖.
计算机系统安全 第10章 常用攻击手段.
在PHP和MYSQL中实现完美的中文显示
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
實驗8 ICMP協定分析 實驗目的 明瞭ICMP(Internet Control Message Protocol;網際網路控制訊息協定)的工作原理 解析ICMP協定下封包資料傳送的格式。
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
第 12 章 UDP 與 TCP.
利用 ISA Server 2004 建置應用層防護機制
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
GPRS 数据传输 Beijing Synrich.
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
Internet Protocol (IP)
32 bit destination IP address
ARP, RARP & ICMP.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
第 2 章 TCP / IP 簡介.
SOA – Experiment 3: Web Services Composition Challenge
大学计算机基础 典型案例之一 构建FPT服务器.
PPPoE PPTP L2TP全解 方伟、产品策划 讲师的CSDN博客地址
管理信息结构SMI.
网络常用常用命令 课件制作人:谢希仁.
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
第4章 OSI傳輸層.
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
计算机网络(第 5 版) 第 5 章 传输层.
计算机网络 Computer Network
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
第17章 网站发布.
信息安全综合实验 张焕杰 中国科学技术大学网络信息中心
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
第四章 团队音乐会序幕: 团队协作平台的快速创建
DQMClientDim.cxx及双光子练习
VisComposer 2019/4/17.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
数据报分片.
郑 昀 应用开发事业部 神州泰岳 SIP多方会话消息 之实例讲解 郑 昀 应用开发事业部 神州泰岳
IP Layer Basics, Firewall, VPN, and NAT
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
IP Layer Basics & Firewall
第十七讲 密码执行(1).
实验六静态路由.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

网络扫描器的原理与分析 袁 治 2019/1/18

主要内容 扫描器的基本概念 扫描器的工作原理 网络扫描的主要技术 现有扫描器介绍及选择 扫描器的实例分析

一、扫描器的基本概念 什么是网络扫描器 为什么需要网络扫描器 网络扫描器的主要功能

什么是网络扫描器 安全评估工具 系统管理员保障系统安全的有效工具 网络漏洞扫描器 网络入侵者收集信息的重要手段

为什么需要网络扫描器 由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷 由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在 许多人出于好奇或别有用心,不停的窥视网上资源

网络扫描器的主要功能 扫描目标主机识别其工作状态(开/关机) 识别目标主机端口的状态(监听/关闭) 识别目标主机系统及服务程序的类型和版本 根据已知漏洞信息,分析系统脆弱点 生成扫描结果报告

二、扫描器的工作原理 TCP协议 ICMP协议 扫描器的基本工作原理

TCP协议(一) TCP是一种面向连接的,可靠的传输层协议。一次正常的TCP传输需要通过在客户端和服务器之间建立特定的虚电路连接来完成,该过程通常被称为“三次握手”。TCP通过数据分段中的序列号保证所有传输的数据可以在远端按照正常的次序进行重组,而且通过确认保证数据传输的完整性。

TCP协议(二) TCP数据包格式

TCP协议(三) TCP标志位 ACK: 确认标志 RST: 复位标志 URG:紧急标志 SYN: 建立连接标志 PSH: 推标志 FIN: 结束标志

TCP协议(四) TCP连接建立示意图

ICMP协议(一) Internet Control Message Protocol,是IP的一部分,在IP协议栈中必须实现。 用途: 当出现问题时,提供反馈信息用于报告错误 特点: 其控制能力并不用于保证传输的可靠性 它本身也不是可靠传输的 并不用来反映ICMP报文的传输情况

ICMP协议(二) ICMP报文类型 12 Parameter Problem 0 Echo Reply 13 Timestamp 3 Destination Unreachable 4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply

扫描器的基本工作原理

三、网络扫描的主要技术 主机扫描技术 端口扫描技术 栈指纹OS识别技术

主机扫描技术-传统技术 主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。 常用的传统扫描手段有: ICMP Echo扫描 ICMP Sweep扫描 Broadcast ICMP扫描 Non-Echo ICMP扫描

ICMP echo扫描 实现原理:Ping的实现机制,在判断在一个网络上主机是否开机时非常有用。向目标主机发送ICMP Echo Request (type 8)数据包,等待回复的ICMP Echo Reply 包(type 0) 。如果能收到,则表明目标系统可达,否则表明目标系统已经不可达或发送的包被对方的设备过滤掉。 优点:简单,系统支持 缺点:很容易被防火墙限制 可以通过并行发送,同时探测多个目标主机,以提高探测效率(ICMP Sweep扫描)。

Broadcast ICMP扫描 实现原理:将ICMP请求包的目标地址设为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机。 缺点: 只适合于UNIX/Linux系统,Windows 会忽略这种请求包; 这种扫描方式容易引起广播风暴

Non-Echo ICMP扫描 一些其它ICMP类型包也可以用于对主机或网络设备的探测,如: Stamp Request(Type 13) Reply(Type 14) Information Request(Type 15) Reply(Type 16) Address Mask Request (Type 17) Reply(Type 18)

主机扫描技术-高级技术 防火墙和网络过滤设备常常导致传统的探测手段变得无效。为了突破这种限制,必须采用一些非常规的手段,利用ICMP协议提供网络间传送错误信息的手段,往往可以更有效的达到目的: 异常的IP包头 在IP头中设置无效的字段值 错误的数据分片 通过超长包探测内部路由器 反向映射探测

异常的IP包头 向目标主机发送包头错误的IP包,目标主机或过滤设备会反馈ICMP Parameter Problem Error信息。常见的伪造错误字段为Header Length Field 和IP Options Field。 根据RFC1122的规定,主机应该检测IP包的Version Number、Checksum字段, 路由器应该检测IP包的Checksum字段。不同厂家的路由器和操作系统对这些错误的处理方式不同,返回的结果也各异。如果结合其它手段,可以初步判断目标系统所在网络过滤设备的ACL。

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

错误的数据分片 当目标主机接收到错误的数据分片(如某些分片丢失),并且在规定的时间间隔内得不到更正时,将丢弃这些错误数据包,并向发送主机反馈ICMP Fragment Reassembly Time Exceeded 错误报文。利用这种方法同样可以检测到目标主机和网络过滤设备及其ACL。

通过超长包探测内部路由器 若构造的数据包长度超过目标系统所在路由器的PMTU且设置禁止分片标志, 该路由器会反馈 Fragmentation Needed and Don’t Fragment Bit was Set差错报文,从而获取目标系统的网络拓扑结构。

反向映射探测 该技术用于探测被过滤设备或防火墙保护的网络和主机。通常这些系统无法从外部直接到达,但是我们可以采用反向映射技术,通过目标系统的路由设备进行有效的探测。 当我们想探测某个未知网络内部的结构时,可以构造可能的内部IP地址列表,并向这些地址发送数据包。当对方路由器接收到这些数据包时,会进行IP识别并路由,对不在其服务的范围的IP包发送ICMP Host Unreachable或ICMP Time Exceeded 错误报文,没有接收到相应错误报文的IP地址会可被认为在该网络中。当然,这种方法也会受到过滤设备的影响。

端口扫描技术 当确定了目标主机可达后,就可以使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。端口扫描技术主要包括以下三类: 开放扫描 会产生大量的审计数据,容易被对方发现,但其可靠性高; 隐蔽扫描 能有效的避免对方入侵检测系统和防火墙的检测,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息; 半开放扫描 隐蔽性和可靠性介于前两者之间。

开放扫描技术 TCP Connect 扫描 TCP反向ident扫描

TCP Connect 扫描 实现原理:通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。否则,这个端口不可用,即没有提供服务。 优点:稳定可靠,不需要特殊的权限 缺点:扫描方式不隐蔽,服务器日志会记录下大量密集的连接和错误记录 ,并容易被防火墙发现和屏蔽

TCP反向ident扫描 实现原理:ident 协议允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。比如,连接到http端口,然后用identd来发现服务器是否正在以root权限运行。 缺点:这种方法只能在和目标端口建立了一个完整的TCP连接后才能看到。

半开放扫描技术 TCP SYN 扫描 TCP间接扫描

TCP SYN 扫描 实现原理:扫描器向目标主机端口发送SYN包。如果应答是RST包,那么说明端口是关闭的;如果应答中包含SYN和ACK包,说明目标端口处于监听状态,再传送一个RST包给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半连接扫描 优点:隐蔽性较全连接扫描好,一般系统对这种半扫描很少记录 缺点:通常构造SYN数据包需要超级用户或者授权用户访问专门的系统调用

TCP间接扫描 实现原理:利用第三方的IP(欺骗主机)来隐藏真正扫描者的IP。由于扫描主机会对欺骗主机发送回应信息,所以必须监控欺骗主机的IP行为,从而获得原始扫描的结果。扫描主机通过伪造第三方主机IP地址向目标主机发起SYN扫描,并通过观察其IP序列号的增长规律获取端口的状态 优点:隐蔽性好 缺点:对第三方主机的要求较高

隐蔽扫描技术 TCP FIN 扫描 TCP Xmas扫描 TCP Null 扫描 TCP ftp proxy扫描 分段扫描

TCP FIN 扫描 实现原理:扫描器向目标主机端口发送FIN包。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。 优点:由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而必SYN扫描隐蔽得多,FIN数据包能够通过只监测SYN包的包过滤器。 缺点: 跟SYN扫描类似,需要自己构造数据包,要求由超级用户或者授权用户访问专门的系统调用; 通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送RST包的操作系统(包括CISCO,HP/UX,MVS和IRIX)。但在Windows95/NT环境下,该方法无效,因为不论目标端口是否打开,操作系统都返回RST包。

TCP Xmas 和TCP Null 扫描 实现原理:TCP Xmas和Null扫描是FIN扫描的两个变种。Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。这些组合的目的是为了通过对FIN标记数据包的过滤。当一个这种数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。 优点:隐蔽性好; 缺点: 需要自己构造数据包,要求由超级用户或者授权用户权限; 通常适用于UNIX目标主机,而Windows系统不支持。

TCP ftp proxy扫描 实现原理:FTP代理连接选项,其目的是允许一个客户端同时跟两个FTP服务器建立连接,然后在服务器之间直接传输数据。然而,在大部分实现中,实际上能够使得FTP服务器发送文件到Internet的任何地方。该方法正是利用了这个缺陷,其扫描步骤如下: 1:假定S是扫描机,T是扫描目标,F是一个ftp服务器,这个服务器支持代理选项,能够跟S和T建立连接。 2:S与F建立一个ftp会话,使用PORT命令声明一个选择的端口(称之为p-T)作为代理传输所需要的被动端口。 3:然后S使用一个LIST命令尝试启动一个到p-T的数据传输。 4:如果端口p-T确实在监听,传输就会成功(返回码150和226被发送回给S),否则S回收到"425无法打开数据连接"的应答。 5:S持续使用PORT和LIST命令,直到T上所有的选择端口扫描完毕。 优点:FTP代理扫描不但难以跟踪,而且可以穿越防火墙 缺点:一些ftp server禁止这种特性

分段扫描 实现原理:并不直接发送TCP探测数据包,是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而包过滤器就很难探测到。 优点:隐蔽性好,可穿越防火墙 缺点: 可能被丢弃; 某些程序在处理这些小数据包时会出现异常。

栈指纹OS识别技术(一) 原理:根据各个OS在TCP/IP协议栈实现上的不同特点,采用黑盒测试方法,通过研究其对各种探测的响应形成识别指纹,进而识别目标主机运行的操作系统。根据采集指纹信息的方式,又可以分为主动扫描和被动扫描两种方式。

被动扫描 通过Sniff收集数据包,再对数据包的不同特征(TCP Window-size、 IP TTL、IP TOS、DF位等参数)进行分析,来识别操作系统。 被动扫描基本不具备攻击特征,具有很好的隐蔽性,但其实现严格依赖扫描主机所处的网络拓扑结构;和主动探测相比较,具有速度慢、可靠性不高等缺点。

主动扫描 采用向目标系统发送构造的特殊包并监控其应答的方式来识别操作系统类型。 主动扫描具有速度快、可靠性高等优点,但同样严重依赖于目标系统网络拓扑结构和过滤规则。

主动扫描-识别技术(一) FIN探测:发送一个FIN包给一个打开的端口,一般的行为是不响应,但某些实现例如 MS Windows, BSDI, CISCO,HP/UX,MVS,和IRIX 发回一个RESET。 BOGUS标记探测:设置一个未定义的TCP "标记"(64或128)在SYN包的TCP头里。Linux机器到2.0.35之前在回应中保持这个标记。 TCP ISN 取样:找出当响应一个连接请求时由TCP 实现所选择的初始化序列数式样。这可分为许多组例如传统的64K(许多老UNIX机器),随机增量(新版本的Solaris,IRIX,FreeBSD,Digital UNIX,Cray,等),真“随机”(Linux 2.0.*,OpenVMS,新的AIX,等),Windows 机器(和一些其他的)用一个“时间相关”模型,每过一段时间ISN就被加上一个小的固定数。

主动扫描-识别技术(二) 不分段位:许多操作系统开始在送出的一些包中设置IP的"Don't Fragment"位。 TCP初始化窗口:检查返回包的窗口大小。如queso和nmap保持对窗口的精确跟踪因为它对于特定OS基本是常数。 ACK值:不同实现中一些情况下ACK域的值是不同的。例如,如果你送了一个FIN|PSH|URG 到一个关闭的TCP 端口。大多数实现会设置ACK 为你的初始序列数,而Windows 会送给你序列数加1 。 ICMP错误信息终结:一些操作系统跟从限制各种错误信息的发送率。例如,Linux 内核限制目的不可达消息的生成每4 秒钟80个。测试的一种办法是发一串包到一些随机的高UDP端口并计数收到的不可达消息。

主动扫描-识别技术(三) ICMP消息引用:ICMP错误消息可以引用一部分引起错误的源消息。对一个端口不可达消息,几乎所有实现只送回IP请求头外加8个字节。然而,Solaris 送回的稍多,而Linux 更多。 SYN洪水限度:如果收到过多的伪造SYN数据包,一些操作系统会停止新的连接尝试。许多操作系统只能处理8 个包。 参考:Nmap Remote OS Detection http://www.insecure.org/nmap/nmap-fingerprinting-article.html

四、现有扫描器介绍及选择 现有主要扫描器产品介绍 评价扫描器的原则 现有扫描器产品的不足

扫描器产品介绍(一) ISS Internet Scanner 该产品一直是安全扫描器的业界标准。 优点:报告功能强大,漏洞检查集完备,可用性很好。 平台:Windows NT URL:Http://www.iss.net

扫描器产品介绍(二) Nessus 由Renaud编写的开放源码项目。 优点:采用分布式结构引擎具有极大弹性,可扩展性强,漏洞库较全面。 平台:UNIX URL:Http://www.nessus.org

扫描器产品介绍(三) SAINT 以SATAN为基础的网络安全扫描工具。 平台:UNIX URL:Http://www.wwwdsi.com

评价扫描器的原则(一) 漏洞检测的完整性 是否能扫描各类重要的系统漏洞,漏洞库信息的完备程度如何? 漏洞检测的精确性 是否能准确报告系统漏洞,很少误报或漏报 漏洞检测的范围 是否能进行本地主机或远端主机的扫描 及时更新 是否能及时更新漏洞库,加入新发现的漏洞信息

评价扫描器的原则(二) 报告功能 是否有完善的报告功能,是客户便于理解和维护 价格 产品价格是否合理

现有扫描器产品的不足 检测的完整性 没有一种产品可以发现所有漏洞 检测的准确性 常有漏报、误报现象 更新的及时性 对新漏洞的更新不够及时

五、扫描器实例分析 主要实现功能 扫描器的总体结构 主要工作流程 漏洞分析

主要实现功能 采用众多的扫描规避和隐蔽技术,扫描目标主机和端口,识别其工作状态; 识别目标主机系统及服务程序的类型和版本; 根据漏洞库信息,分析系统脆弱点; 提供漏洞产生背景、影响、攻击方式、修补措施等信息; 以网页形式生成扫描结果报告; 具有可扩展性,提供用户动态加载和扩充系统的接口

扫描器的总体结构(一) 扫描器基于B/S结构 扫描器运行在Linux平台,工作于一个Linux、UNIX和Windows操作系统相混合的TCP/IP网络环境中 扫描器建有漏洞库 控制平台则提供一个人机交互的界面。

扫描器的总体结构(二)

主要工作流程 主机扫描 端口扫描 识别系统及服务程序的类型 根据已知漏洞信息,分析系统脆弱点 生成扫描结果报告

漏洞分析:CGI漏洞扫描 漏洞扫描流程 连接目标WEB SERVER 发送一个特殊的请求 接收目标服务器返回数据

CGI漏洞扫描(一) 比如识别出Web 服务器为IIS,则向其发出Http请求: "GET /iissamples/exair/howitworks/codebrws.asp", "GET /iissamples/sdk/asp/docs/codebrws.asp", "GET /iissamples/exair/howitworks/code.asp", "GET /msadc/samples/selector/showcode.asp", "GET /scripts/tools/newdsn.exe” 如果返回“200 OK”的Http应答,则表明存在”http IIS samples“漏洞,需要提示用户进行修改。

CGI漏洞扫描(二) 如果向IIS服务器发Http请求, “GET /NULL.printer“ 其返回信息为 "500 13\r\nServer: Microsoft-IIS/5.0" 则目标系统存在”IIS5 NULL.printer”漏洞。

参考文献 ICMP Usage in Scanning http://www.sys-security.com Nmap Remote OS Detection http://www.insecure.org/nmap/nmap-fingerprinting-article.html http://www.iss.net.cn/downloads/document/Ss.ppt

谢谢!