网络安全攻防技术第三讲扫描与防御技术软件学院网络工程方向网络安全攻防技术2020/4/272内容安排3.1扫描技术概述3.2常见的扫描技术3.3扫描工具应用3.4扫描的防御3.5小结网络安全攻防技术2020/4/2733.1扫描技术概述什么是扫描器网络扫描器是一把双刃剑为什么需要网络扫描器扫描的重要性网络扫描器的主要功能网络扫描器与漏洞的关系扫描三步曲一个典型的扫描案例网络安全攻防技术2020/4/274为什么需要网络扫描器由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在许多人出于好奇或别有用心,不停的窥视网上资源网络安全攻防技术2020/4/275什么是扫描器扫描器是一种自动检测远程或本地主机安全性弱点的程序。扫描器的扫描原理:集成了常用的各种扫描技术扫描器的扫描对象:能自动发送数据包去探测和攻击远端或本地的端口和服务,并自动收集和记录目标主机的各项反馈信息扫描器对网络安全的作用:据此提供一份可靠的安全性分析报告,报告可能存在的脆弱性。网络安全攻防技术2020/4/276网络扫描器的主要功能扫描目标主机识别其工作状态(开/关机)识别目标主机端口的状态(监听/关闭)识别目标主机操作系统的类型和版本识别目标主机服务程序的类型和版本分析目标主机、目标网络的漏洞(脆弱点)生成扫描结果报告网络安全攻防技术2020/4/277网络扫描器是一把双刃剑安全评估工具系统管理员保障系统安全的有效工具网络漏洞扫描器网络入侵者收集信息的重要手段扫描器是一把“双刃剑”。网络安全攻防技术2020/4/278网络扫描器与漏洞的关系网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改、拒绝服务或系统崩溃等问题。网络扫描可以对计算机网络系统或网络设备进行安全相关的检测,以找出安全隐患和可能被黑客利用的漏洞。网络安全攻防技术2020/4/279扫描三步曲一个完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞网络安全攻防技术2020/4/2710扫描三步曲(续)网络安全扫描技术包括PING扫描、操作系统探测、穿透防火墙探测、端口扫描、漏洞扫描等PING扫描用于扫描第一阶段,识别系统是否活动OS探测、穿透防火墙探测、端口扫描用于扫描第二阶段OS探测是对目标主机运行的OS进行识别穿透防火墙探测用于获取被防火墙保护的网络资料端口扫描是通过与目标系统的TCP/IP端口连接,并查看该系统处于监听或运行状态的服务漏洞扫描用于安全扫描第三阶段,通常是在端口扫描的基础上,进而检测出目标系统存在的安全漏洞网络安全攻防技术2020/4/2711一个典型的扫描案例网络安全攻防技术2020/4/27121.Findtargets选定目标为:192.168.1.18测试此主机是否处于活动状态,工具是用操作系统自带的ping,使用命令:ping192.168.1.18结果见下页图。网络安全攻防技术2020/4/2713说明该主机处于活动状态网络安全攻防技术2020/4/27142.PortScan运用扫描工具,检查目标主机开放的端口,判断它运行了哪些服务使用的工具是Nmap4.20(此工具将在后面进行介绍)扫描命令:nmap192.168.1.18扫描结果见下面图网络安全攻防技术2020/4/2715网络安全攻防技术2020/4/27162.PortScan(2)端口开放信息如下:21/tcpopenftp25/tcpopensmtp42/tcpopennameserver53/tcpopendomain80/tcpopenhttp……我们将重点关注SMTP端口网络安全攻防技术2020/4/27173.VulnerabilityCheck检测SMTP服务是否存在漏洞使用漏洞扫描工具Nessus3(此工具在后面将会介绍)扫描过程见下页图网络安全攻防技术2020/4/2718扫描目标是192.168.1.18网络安全攻防技术2020/4/2719Nessus正在进行漏洞扫描网络安全攻防技术2020/4/27204.ReportNessus发现了目标主机的SMTP服务存在漏洞。扫描报告中与SMTP漏洞相关的部分见下页图。网络安全攻防技术2020/4/2721漏洞编号:CVE-2003-0818网络安全攻防技术2020/4/27223.2常见的扫描技术TCP/IP相关知识常用网络命令主机扫描端口扫描全扫描半扫描秘密扫描认证(ident)扫描FTP代理扫描远程主机OS指纹识别漏洞扫描网络安全攻防技术2020/4/2723TCP通信过程正常TCP通信过程:建立连接(数据传输)断开连接网络安全攻防技术2020/4/2724建立TCP连接ClientServerSYNJSYN,ACK,J+1ACKK+1SYN_SENT(主动打开)ESTABLISHEDLISTEN(被动监听)SYNRCVDESTABLISHED网络安全攻防技术2020/4/2725断开TCP连接网络安全攻防技术2020/4/2726ICMP协议InternetControlMessageProtocol,是IP的一部分,在IP协议栈中必须实现。用途:网关或者目标机器利用ICMP与源通讯当出现问题时,提供反馈信息用于报告错误特点:其控制能力并不用于保证传输的可靠性它本身也不是可靠传输的并不用来反映ICMP报文的传输情况网络安全攻防技术2020/4/2727常用网络命令PingTraceroute、Tracert、x-firewalkNet命令系列网络安全攻防技术2020/4/2728常用网络命令--pingPing是最基本的扫描技术。ping命令——主要目的是检测目标主机是不是可连通,继而探测一个IP范围内的主机是否处于激活状态。不要小瞧ping黑客的攻击往往都是从ping开始的网络安全攻防技术2020/4/2729常用网络命令--TracerouteTraceroute、tracert——跟踪两台机器之间的路径,显示中间的每一个节点的信息。这个工具可以用来确定某个主机的位置。traceroute命令(调用UDP,经过路由加1)tracert命令(调用ICMP回显)Windows下用tracert命令(调用ICMP回显)可以查看路由信息,但是如今的路由器大部分都对tracert命令做了限制,此命令已经没有效果。网络安全攻防技术2020/4/2730常用网络命令--netNet命令系列——很多的Windows的网络命令都是net开头的。利用net开头的命令,可以实现很多的网络管理功能……比如用netstartserver,可以启动服务器;NETUSE用于将计算机与共享的资源相连接,或者切断计算机与共享资源的连接,当不带选项使用本命令时,它会列出计算机的连接。以下以WindowsNT下的NetUSE命令为例。网络安全攻防技术2020/4/2731常用网络命令—netuse示例netuse命令及参数使用网络安全攻防技术2020/4/2732常用网络命令—netuse示例(1)用户名为Administrator,密码为longmang与远程计算机192.168.1.34进行IPC$连接,如图所示。(2)查看与远程计算机建立的连接,如图所示。网络安全攻防技术2020/4/2733常用网络命令—netuse示例(3)将远程计算机的c盘映射到本地o盘,如图所示。网络安全攻防技术2020/4/2734主机扫描技术传统技术高级技术网络安全攻防技术2020/4/2735主机扫描技术-传统技术主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。常用的传统扫描手段有:PING(ICMP)网络安全攻防技术2020/4/2736主机扫描技术-高级技术防火墙和网络过滤设备常常导致传统的探测手段变得无效。为了突破这种限制,必须采用一些非常规的手段(规避技术),利用ICMP协议提供网络间传送错误信息的手段,往往可以更有效的达到目的:异常的IP包头在IP头中设置无效的字段值错误的数据分片通过超长包探测内部路由器反向映射探测网络安全攻防技术端口扫描技术TCP/IP协议提出的端口是网络通信进程与外界通讯交流的出口,可被命名和寻址,可以认为是网络通信进程的一种标识符。进程通过系统调用与某端口建立连接绑定后,便会监听这个端口,传输层传给该端口的数据都被相应进程所接收,而相应进程发给传输层的数据都从该端口输出。互联网上的通信双方不仅需要知道对方的IP地址,也需要知道通信程序的端口号。网络安全攻防技术端口扫描技术目前IPv4协议支持16位的端口,端口号范围是0~65535。其中,0~1023号端口称为熟知端口,被提供给特定的服务使用;1024~49151号端口称为注册端口,由IANA记录和追踪;49152~65535号端口称为动态端口或专用端口,提供给专用应用程序。许多常用的服务使用的是标准的端口,只要扫描到相应的端口,就能知道目标主机上运行着什么服务。端口扫描技术就是利用这一点向目标系统的TCP/UDP端口发送探测数据包,记录目标系统的响应,通过分析响应来查看该系统处于监听或运行状态的服务。网络安全攻防技术2020/4/2739端口扫描技术当确定了目标主机可达后,就可以使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。端口扫描技术包括以下几种:全扫描会产生大量的审计数据,容易被对方发现,但其可靠性高。半扫描隐蔽性和可靠性介于全扫描和秘密扫描之间。秘密扫描能有效的避免对方入侵检测系统和防火墙的检测,但使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息。认证(ident)扫描需要先建立一个完整的TCP连接。FTP代理扫描隐蔽性好,难以追踪。但受到服务器设置的限制。网络安全攻防技术2020/4/2740全扫描全扫描原理全扫描特点网络安全攻防技术2020/4/2741全扫描--全扫描原理全TCP连接是TCP端口扫描的基础。扫描主机尝试(使用三次握手)与目标主机的某个端口建立正规的连接。连接由系统调用connect()开始。如果端口开放,则连接将建立成功;否则,返回-1,则表示端口关闭。网络安全攻防技术2020/4/2742全扫描--全扫描特点(优点)优点是实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用。另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。网络安全攻防技术2020/4/2743全扫描--全扫描特点(缺点)扫描方式不隐蔽这种扫描方法很容易被检测出来,在日志文件中会有大量密集的连接和错误记录并容易被防火墙发现和屏蔽网络安全攻防技术2020/4/2744半扫描TCPSYN扫描的原理TCPSYN扫描的特点网络安全攻防技术2020/4/2745TCPSYN扫描--原理在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。如果应答是RST,那么,说明端口是关闭的,按照设定继续探听其他端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。由于SYN扫描时,全连接尚未建立,所以,这种技术通常被称为“半连接”扫描。网络安全攻防技术2020/4/2746TCPSYN扫描--特点