第2章扫描与防御技术张玉清国家计算机网络入侵防范中心2019/11/10网络入侵与防范讲义2本章内容安排2.1扫描技术概述2.2常见的扫描技术2.3扫描工具赏析2.4扫描的防御2.5小结2019/11/10网络入侵与防范讲义32.1扫描技术概述什么是扫描器网络扫描器是一把双刃剑为什么需要网络扫描器扫描的重要性网络扫描器的主要功能网络扫描器与漏洞的关系扫描三步曲一个典型的扫描案例2019/11/10网络入侵与防范讲义4什么是扫描器扫描器是一种自动检测远程或本地主机安全性弱点的程序。它集成了常用的各种扫描技术,能自动发送数据包去探测和攻击远端或本地的端口和服务,并自动收集和记录目标主机的反馈信息,从而发现目标主机是否存活、目标网络内所使用的设备类型与软件版本、服务器或主机上各TCP/UDP端口的分配、所开放的服务、所存在的可能被利用的安全漏洞。据此提供一份可靠的安全性分析报告,报告可能存在的脆弱性。2019/11/10网络入侵与防范讲义5网络扫描器是一把双刃剑安全评估工具系统管理员保障系统安全的有效工具网络漏洞扫描器网络入侵者收集信息的重要手段扫描器是一把“双刃剑”。2019/11/10网络入侵与防范讲义6为什么需要网络扫描器由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在许多人出于好奇或别有用心,不停的窥视网上资源2019/11/10网络入侵与防范讲义7扫描的重要性扫描的重要性在于把繁琐的安全检测,通过程序来自动完成,这不仅减轻了网络管理员的工作,而且也缩短了检测时间。同时,也可以认为扫描器是一种网络安全性评估软件,利用扫描器可以快速、深入地对目标网络进行安全评估。网络安全扫描技术与防火墙、安全监控系统互相配合能够为网络提供很高的安全性。2019/11/10网络入侵与防范讲义8网络扫描器的主要功能扫描目标主机识别其工作状态(开/关机)识别目标主机端口的状态(监听/关闭)识别目标主机操作系统的类型和版本识别目标主机服务程序的类型和版本分析目标主机、目标网络的漏洞(脆弱点)生成扫描结果报告2019/11/10网络入侵与防范讲义9网络扫描器与漏洞的关系网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改、拒绝服务或系统崩溃等问题。网络扫描可以对计算机网络系统或网络设备进行安全相关的检测,以找出安全隐患和可能被黑客利用的漏洞。2019/11/10网络入侵与防范讲义10扫描三步曲一个完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞2019/11/10网络入侵与防范讲义11扫描三步曲(续)网络安全扫描技术包括PING扫描、操作系统探测、穿透防火墙探测、端口扫描、漏洞扫描等PING扫描用于扫描第一阶段,识别系统是否活动OS探测、穿透防火墙探测、端口扫描用于扫描第二阶段OS探测是对目标主机运行的OS进行识别穿透防火墙探测用于获取被防火墙保护的网络资料端口扫描是通过与目标系统的TCP/IP端口连接,并查看该系统处于监听或运行状态的服务漏洞扫描用于安全扫描第三阶段,通常是在端口扫描的基础上,进而检测出目标系统存在的安全漏洞2019/11/10网络入侵与防范讲义12一个典型的扫描案例2019/11/10网络入侵与防范讲义131.Findtargets选定目标为:192.168.1.18测试此主机是否处于活动状态,工具是用操作系统自带的ping,使用命令:ping192.168.1.18结果见下页图。2019/11/10网络入侵与防范讲义14说明该主机处于活动状态2019/11/10网络入侵与防范讲义152.PortScan运用扫描工具,检查目标主机开放的端口,判断它运行了哪些服务使用的工具是Nmap4.20(此工具将在后面进行介绍)扫描命令:nmap192.168.1.18扫描结果见下面图2019/11/10网络入侵与防范讲义162019/11/10网络入侵与防范讲义172.PortScan(2)端口开放信息如下:21/tcpopenftp25/tcpopensmtp42/tcpopennameserver53/tcpopendomain80/tcpopenhttp……我们将重点关注SMTP端口2019/11/10网络入侵与防范讲义183.VulnerabilityCheck检测SMTP服务是否存在漏洞使用漏洞扫描工具Nessus3(此工具在后面将会介绍)扫描过程见下页图2019/11/10网络入侵与防范讲义19扫描目标是192.168.1.182019/11/10网络入侵与防范讲义20Nessus正在进行漏洞扫描2019/11/10网络入侵与防范讲义214.ReportNessus发现了目标主机的SMTP服务存在漏洞。扫描报告中与SMTP漏洞相关的部分见下页图。2019/11/10网络入侵与防范讲义22漏洞编号:CVE-2003-08182019/11/10网络入侵与防范讲义232.2常见的扫描技术TCP/IP相关知识常用网络命令主机扫描端口扫描全扫描半扫描秘密扫描认证(ident)扫描FTP代理扫描远程主机OS指纹识别漏洞扫描不可不学的扫描技术巧妙奇特的天才构思2019/11/10网络入侵与防范讲义24TCP/IP相关知识TCP报文格式TCP通信过程ICMP协议2019/11/10网络入侵与防范讲义25TCP报文格式2019/11/10网络入侵与防范讲义26TCP控制位URG:为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。ACK:为确认标志位。如果为1,表示包中的确认号是有效的。否则,包中的确认号无效。PSH:如果置位,接收端应尽快把数据传送给应用层。2019/11/10网络入侵与防范讲义27TCP控制位RST:用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。SYN:标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。FIN:表示发送端已经没有数据要求传输了,希望释放连接。2019/11/10网络入侵与防范讲义28TCP通信过程正常TCP通信过程:建立连接(数据传输)断开连接2019/11/10网络入侵与防范讲义29建立TCP连接ClientServerSYNJSYN,ACK,J+1ACKK+1SYN_SENT(主动打开)ESTABLISHEDLISTEN(被动监听)SYNRCVDESTABLISHED2019/11/10网络入侵与防范讲义30断开TCP连接2019/11/10网络入侵与防范讲义31ICMP协议(1)InternetControlMessageProtocol,是IP的一部分,在IP协议栈中必须实现。用途:网关或者目标机器利用ICMP与源通讯当出现问题时,提供反馈信息用于报告错误特点:其控制能力并不用于保证传输的可靠性它本身也不是可靠传输的并不用来反映ICMP报文的传输情况2019/11/10网络入侵与防范讲义32ICMP协议(2)ICMP报文类型0EchoReply3DestinationUnreachable4SourceQuench5Redirect8Echo11TimeExceeded12ParameterProblem13Timestamp14TimestampReply15InformationRequest16InformationReply17AddressMaskRequest18AddressMaskReply2019/11/10网络入侵与防范讲义33常用网络命令PingTraceroute、Tracert、x-firewalkNet命令系列2019/11/10网络入侵与防范讲义34常用网络命令--pingPing是最基本的扫描技术。ping命令——主要目的是检测目标主机是不是可连通,继而探测一个IP范围内的主机是否处于激活状态。不要小瞧ping黑客的攻击往往都是从ping开始的2019/11/10网络入侵与防范讲义35常用网络命令--ping的原理ping是一个基本的网络命令,用来确定网络上具有某个特定IP地址的主机是否存在以及是否能接收请求。Ping命令通过向计算机发送ICMP回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。2019/11/10网络入侵与防范讲义36常用网络命令--ping参数说明ping在安装了TCP/IP协议后可以使用。2019/11/10网络入侵与防范讲义37常用网络命令—ping命令使用-n:发送ICMP回应报文的个数2019/11/10网络入侵与防范讲义38常用网络命令--TracerouteTraceroute——跟踪两台机器之间的路径,显示中间的每一个节点的信息。这个工具可以用来确定某个主机的位置。traceroute命令旨在用于网络测试、评估和管理。它应主要用于手动故障隔离。语法:2019/11/10网络入侵与防范讲义39常用网络命令–Traceroute说明-f-f后指定一个初始TTL,它的范围是大于0小于最大TTL,缺省为1。-m-m后指定一个最大TTL,它的范围是大于初始TTL,缺省为30。-p-p后可以指定一个整数,该整数是目的主机的端口号,它的缺省为33434,用户一般无须更改此选项。-q-q后可以指定一个整数,该整数是每次发送的探测数据包的个数,它的范围是大于0,缺省为3。-w-w后可以指定一个整数,该整数指明IP包的超时时间,它的范围是大于0,缺省为5秒。host目的主机的IP地址2019/11/10网络入侵与防范讲义40常用网络命令–Traceroute示例Quid#traceroute35.1.1.48traceroutetonis.nsf.net(35.1.1.48),30hopsmax,56bytepacket1helios.ee.lbl.gov(128.3.112.1)19ms19ms0ms2lilac-dmc.Berkeley.EDU(128.32.216.1)39ms39ms19ms3ccngw-ner-cc.Berkeley.EDU(128.32.136.23)39ms40ms39ms4ccn-nerif22.Berkeley.EDU(128.32.168.22)39ms39ms39ms5128.32.197.4(128.32.197.4)40ms59ms59ms6131.119.2.5(131.119.2.5)59ms59ms59ms7129.140.70.13(129.140.70.13)99ms99ms80ms8129.140.71.6(129.140.71.6)139ms239ms319ms9129.140.81.7(129.140.81.7)220ms199ms199ms10nic.merit.edu(35.1.1.48)239ms239ms239ms可以看出从源主机到目的地都经过了哪些网关,这对于网络分析是非常有用的。2019/11/10网络入侵与防范讲义41常用的网络命令—Tracert、x-firewalkWindows下用tracert命令可以查看路由信息,但是如今的路由器大部分都对tracert命令做了限制,此命令已经没有效果。有黑客