第2章 黑客常用的攻击方法

第2章 黑客常用的攻击方法

本章讲述了黑客攻击的常用手段和相对应的防御方法,主要内容包括:网络扫描器的使用、加强口令安全的方法、网络监听的工作原理与防御方法、ARP欺骗及其防御方法、木马的工作原理与防御方法、拒绝服务攻击的原理与防御方法、缓冲区溢出的原理与防御方法和TCP会话劫持的原理与防御方法。在每个部分的讲解中,都是通过具体的实验操作,使读者在理解基本原理的基础上,重点掌握具体的方法,以逐步培养职业行动能力。黑客攻击手段多、内容涉及面广,本章只是针对一些典型黑客攻击技术进行分析和讲解,还需要读者通过查找相关资料进一步拓展、加深学习。

图像说明文字 职业能力要求

  • 熟悉TCP/IP。
  • 了解黑客攻击的常用手段和方法,掌握常用网络安全技术。
  • 具有良好的职业道德。

图像说明文字 学习目标

  • 理解黑客入侵攻击的一般过程。
  • 了解常见的网络信息收集技术,包括whois查询、网络扫描等,并掌握典型网络扫描器的使用方法。
  • 理解口令破解的原理,掌握加强口令安全的方法。
  • 理解网络监听的原理,掌握网络监听软件的使用和检测、防范网络监听的措施。
  • 理解ARP欺骗的工作原理,掌握检测和防范ARP欺骗的方法。
  • 理解木马的工作原理和工作过程,掌握木马的检测、防御和清除方法。
  • 理解拒绝服务攻击的原理,掌握防御拒绝服务攻击的方法。
  • 理解缓冲区溢出的原理,掌握预防缓冲区溢出攻击的方法。
  • 理解TCP会话劫持的工作原理和工作过程,掌握检测和防范TCP会话劫持攻击的方法。

 黑客概述

2.1.1 黑客的由来

黑客一词来自于英语——单词Hack。该词在美国麻省理工学院校园俚语中是“恶作剧”的意思,尤其是那些技术高明的恶作剧。确实,早期的计算机黑客个个都是编程高手。因此,“黑客”是人们对那些编程高手、迷恋计算机代码的程序设计人员的称谓。真正的黑客有自己独特的文化和精神,并不破坏其他人的系统,崇拜技术,对计算机系统的最大潜力进行智力上的自由探索。

美国《发现》杂志对黑客有以下5种定义。

(1)研究计算机程序并以此增长自身技巧的人。

(2)对编程有无穷兴趣和热忱的人。

(3)能快速编程的人。

(4)某专门系统的专家,如“UNIX系统黑客”。

(5)恶意闯入他人计算机或系统,意图盗取敏感信息的人。对于这类人最合适的用词是Cracker,而非Hacker。两者最主要的不同是,Hacker创造新东西,Cracker破坏东西,或者用“白帽黑客”和“黑帽黑客”来区分,其中,试图破解某系统或网络以提醒该系统所有者的系统安全漏洞的人被称做“白帽黑客”。

早期许多非常出名的黑客一方面做了一些破坏,另一方面也推动了计算机技术的发展,有些甚至成为了IT界的著名企业家或者安全专家。例如,李纳斯·托沃兹是非常著名的计算机程序员、黑客,后来与他人合作开发了Linux的内核,创造出了这套当今全球最流行的操作系统之一。

现在的黑客各种各样,一部分成了真正的计算机入侵者与破坏者,以进入他人防范严密的计算机系统为生活的一大乐趣,从而构成了一个复杂的黑客群体,对国内外的计算机系统和信息网络构成极大的威胁。随着时间的发展,这些威胁发展得越来越复杂,不再是单机作战,而是呈现出分布式攻击的趋势。黑客技术与病毒技术也互相融合,攻击的破坏程度也越来越大。

现在黑客的攻击越来越复杂化、智能化,因为网络上各种攻击工具非常多,可以自由下载,使用也越来越傻瓜化,对某些黑客的技术水平要求越来越低。攻击的复杂度与所需的入侵知识的关系如图2-1所示。

图像说明文字

图2-1 攻击复杂度与所需入侵知识的关系

2.1.2 黑客攻击的动机

随着时间的变化,黑客攻击的动机不再像以前那样简单了:只是对编程感兴趣,或是为了发现系统漏洞。现在,黑客攻击的动机越来越多样化,主要有以下几种。

(1)贪心——因为贪心而偷窃或者敲诈,有了这种动机,才引发许多金融案件。

(2)恶作剧——程序员搞的一些恶作剧,是黑客的老传统。

(3)名声——有些人为显露其计算机经验与才智,以便证明自己的能力,获得名气。

(4)报复/宿怨——解雇、受批评或者被降级的雇员,或者认为自己受到不公正待遇的人,为了报复而进行攻击。

(5)无知/好奇——有些人拿到了一些攻击工具,因为好奇而使用。

(6)仇恨——国家和民族原因。

(7)间谍——政治和军事谍报工作。

(8)商业——商业竞争,商业间谍。

黑客技术是网络安全技术的一部分,主要是看用这些技术做什么,用来破坏其他人的系统就是黑客技术,用于安全维护就是网络安全技术。学习这些技术就是要对网络安全有更深的理解,从更深的层次提高网络安全。

2.1.3 黑客入侵攻击的一般过程

黑客入侵攻击的一般过程如下所述。

(1)确定攻击的目标。

(2)收集被攻击对象的有关信息。黑客在获取了目标机及其所在的网络的类型后,还需要进一步获取有关信息,如目标机的IP地址、操作系统类型和版本、系统管理人员的邮件地址等,根据这些信息进行分析,可得到被攻击方系统中可能存在的漏洞。

(3)利用适当的工具进行扫描。收集或编写适当的工具,并在对操作系统分析的基础上对工具进行评估,判断有哪些漏洞和区域没有被覆盖。然后,在尽可能短的时间内对目标进行扫描。完成扫描后,可以对所获数据进行分析,发现安全漏洞,如FTP漏洞、NFS输出到未授权程序中、不受限制的服务器访问、不受限制的调制解调器、Sendmail的漏洞及NIS口令文件访问等。

(4)建立模拟环境,进行模拟攻击。根据之前所获得的信息,建立模拟环境,然后对模拟目标机进行一系列的攻击,测试对方可能的反应。通过检查被攻击方的日志,可以了解攻击过程中留下的“痕迹”。这样攻击者就可以知道需要删除哪些文件来毁灭其入侵证据了。

(5)实施攻击。根据已知的漏洞,实施攻击。通过猜测程序,可对截获的用户账号和口令进行破译;利用破译程序,可对截获的系统密码文件进行破译;利用网络和系统本身的薄弱环节和安全漏洞,可实施电子引诱(如安放特洛伊木马)等。黑客们或修改网页进行恶作剧,或破坏系统程序,或放病毒使系统陷入瘫痪,或窃取政治、军事、商业秘密,或进行电子邮件骚扰,或转移资金账户、窃取金钱等。

(6)清除痕迹。

(7)创建后门。通过创建额外账号等手段,为下次入侵系统提供方便。

被信息安全业界奉为圣经的《黑客大曝光》一书,在其封底给出了黑客攻击的路线剖析图,将黑客攻击过程分为踩点、扫描、查点、获取访问、特权提升、拒绝服务、偷盗窃取、掩踪灭迹、创建后门等9个步骤。这9个步骤又可以分成信息收集(包括踩点、扫描、查点等3个步骤)、实施攻击(包括获取访问、特权提升、拒绝服务等3个步骤)、成功之后(包括偷盗窃取、掩踪灭迹、创建后门等3个步骤)3个阶段,如图2-2所示。

Snap2

图2-2 黑客攻击的路线剖析图

 网络信息收集

【实验目的】

通过练习使用Whois查询、扫描器工具,可以获得目标系统的相关信息:IP地址、开放的端口和服务程序等,发现目标系统的相关漏洞,从而为网络管理员提升网络安全提供有用的借鉴。

【实验原理】

网络探测方法(参考2.2.1小节)。

端口基础知识和端口扫描的原理(参考2.2.2小节)。

综合扫描器的内容和原理(参考2.2.4小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,通过网络相连并接入互联网。

软件工具:Whois、Namp、X-Scan、Nessus。

【实验内容】

任务1:使用Whois工具(参考2.2.1小节)。

任务2:使用端口扫描器Namp(参考2.2.3小节)。

任务3:使用X-Scan扫描器(参考2.2.4小节)。

任务4:使用Nessus扫描器(参考2.2.4小节)。

2.2.1 常用的网络信息收集技术

入侵者确定攻击目标后,首先要通过网络踩点技术收集该目标系统的相关信息,包括IP地址范围、域名信息等;然后通过网络扫描进一步探测目标系统的开放端口、操作系统类型、所运行的网络服务,以及是否存在可利用的安全漏洞等;最后再通过网络查点技术对攻击目标实施更细致的信息探查,以获得攻击所需的更详细的信息,包括用户账号、网络服务类型和版本号等。通过收集这些网络信息,攻击者才能对目标系统的安全状况有一个大致的了解,从而针对性地寻求有效的攻击方法。攻击者收集的信息越全面越细致,就越有利于入侵攻击的实施。

在网络信息收集技术中,有一类Whois查询工具,可以查询获得目标系统的DNS、IP地址等注册登记信息。Whois查询可以通过Web的方式查询,已知IP地址查询该地址登记的信息,如图2-3所示;也可以查询该地址的地理位置,如图2-4所示;已知域名查询IP地址等信息,如图2-5所示。

图片 8

图2-3 Whois–IP信息查询

whois-ip

图2-4 Whois–IP地理位置查询

图片 10

图2-5 Whois–DNS查询

Whois查询也有小工具软件,如SmartWhois查询工具,可以通过IP地址查询目标系统的位置,如图2-6所示。

图片 8

图2-6 SmartWhois查询

2.2.2 网络扫描器

网络扫描作为网络信息收集中最主要的一个环节,其主要目标是探测目标网络,以找出尽可能多的连接目标,然后进一步探测获取目标系统的开放端口、操作系统类型、运行的网络服务、存在的安全弱点等信息。这些工作可以通过网络扫描器来完成。

1.扫描器的作用

对于扫描器的理解,大家一般会认为,这只是黑客进行网络攻击时的工具。扫描器对于攻击者来说是必不可少的工具,但也是网络管理员在网络安全维护中的重要工具。因为扫描软件是系统管理员掌握系统安全状况的必备工具,是其他工具所不能替代的。例如,一个系统存在“ASP源代码暴露”的漏洞,防火墙发现不了这些漏洞,入侵检测系统也只有在发现有人试图获取ASP文件源代码的时候才报警,而通过扫描工具,可以提前发现系统的漏洞,打好补丁,做好防范。

因此,扫描器是网络安全工程师修复系统漏洞的主要工具。另外,扫描漏洞特征库的全面性是衡量扫描软件功能是否强大的一个重要指标。漏洞特征库越全面,越强大,扫描器的功能也越强大。

扫描器的定义比较广泛,不限于一般的端口扫描和针对漏洞的扫描,可以是针对某种服务、某个协议的扫描,端口扫描只是扫描系统中最基本的形态和模块。扫描器的主要功能列举如下。

(1)检测主机是否在线。

(2)扫描目标系统开放的端口,有的还可以测试端口的服务信息。

(3)获取目标操作系统的敏感信息。

(4)破解系统口令。

(5)扫描其他系统的敏感信息。例如,CGI Scanner、ASP Scanner、从各个主要端口取得服务信息的Scanner、数据库Scanner及木马Scanner等。

一个优秀的扫描器能检测整个系统各个部分的安全性,能获取各种敏感的信息,并能试图通过攻击以观察系统反应等。扫描的种类和方法不尽相同,有的扫描方式甚至相当怪异,且很难被发觉,却相当有效。

2.常用扫描器

目前各种扫描器已经有不少,有的是在DOS(Disk Operating System,磁盘操作系统)下运行,有的还提供GUI(Graphical User Interface,图形用户界面)。表2-1列出了一些比较著名的扫描软件。

表2-1 著名的扫描软件

名称

所属公司

特点

Nmap

 

优点:用指纹技术扫描目的主机的操作系统类型,用半连接进行端口扫描 缺点:对安装防火墙的主机扫描速度慢

ISS

ISS

优点:扫描比较全面,扫描报告形式多样,适合不同层次和管理者查看 缺点:速度慢

ESM

Symantec

Symantec公司基于主机的扫描系统,管理功能比较强大,但报表非常不完善,并且功能上存在一定缺陷

流光(Fluxay)

 

优点:扫描Windows NT系统用户名和猜测口令,可以扫描cgi漏洞

X-scan

安全焦点

优点:可以较全面地扫描cgi漏洞 缺点:扫描大范围网络会占用极大量的系统资源

SSS

 

优点:插件比较全面的扫描器,扫描Windows NT系列漏洞比较出色

LC

 

优点:审计Windows的弱口令

3.端口扫描器预备知识

端口扫描器是最简单的一种扫描器,是对整个系统分析扫描的第一步。很多人认为端口扫描同时扫出了很多无用的信息,但是每一个被发现的端口都是一个入口,有很多被称为“木马”的后门程序就是在端口上做文章。很多免费的TCP端口扫描器和UDP端口扫描器,可以很容易地从网络中获取。

为了更好地理解端口扫描器的实现原理,下面首先介绍OSI模型和TCP/IP协议栈,如图2-7所示。IP数据报的格式如图2-8所示。

图2-7 OSI模型和TCP/IP协议栈

图像说明文字

图2-8 IP数据报格式

TCP数据报的格式如图2-9所示。

TCP数据报中的各标志位介绍如下。

(1)顺序号:4字节,该字段用来确保数据报在传送时保持正确的顺序。

(2)确认号:4字节,该字段用来确认是否正确接收到了对方的所有数据。

(3)标志位:一共6bit,每一位作为一个标志,各标志介绍如下。

① SYN标志(同步标志):标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,表示该数据报为连接请求;如果SYN=1而ACK=1,表示接受连接。

图像说明文字

图2-9 TCP数据报格式

② ACK标志(确认标志位):如果为1,表示数据报中的确认号是有效的;否则,数据报中的确认号无效。

③ URG标志(紧急数据标志位):如果为1,表示本数据 报中包含紧急数据 ,此时紧急数据 指针有效。

④ PSH标志(推送标志位):要求发送方的TCP立即将所有的数据发送给低层的协议,或者是要求接收方将所有的数据立即交给上层的协议。该标志的功能实际相当于对缓冲区进行刷新,如同将缓存中的数据刷新或者写入硬盘中一样。

⑤ RST标志(复位标志位):将传输层连接复位到其初始状态,作用是恢复到某个正确状态,以进行错误恢复。

⑥ FIN标志(结束标志位):作用是释放(结束)TCP连接。

下面简要介绍TCP/IP通信建立时的3次握手过程。

(1)发送方发送一个SYN标志位设置为1的数据报。

(2)接收方接收到该数据报,之后将返回一个SYN标志和ACK标志都置1的数据报。

(3)发送方接收到该数据报后再发送一个数据报。这时,只将ACK标志设置为1。

通过这样3次握手的过程,双方就建立了TCP连接。

4.端口扫描器实现细节

一般端口扫描器根据操作系统的TCP/IP栈实现时对数据报处理的原则来判断端口的信息,大部分操作系统的TCP/IP栈遵循以下原则。

(1)当一个SYN或者FIN数据报到达一个关闭的端口时,TCP丢弃数据报,同时发送一个RST数据报。

(2)当一个SYN数据报到达一个监听端口时,正常的3阶段握手继续,回答一个SYN + ACK数据报。

(3)当一个包含ACK的数据报到达一个监听端口时,数据报被丢弃,同时发送一个RST数据报。

(4)当一个RST数据报到达一个关闭的端口时,RST被丢弃。

(5)当一个RST数据报到达一个监听端口时,RST被丢弃。

(6)当一个FIN数据报到达一个监听端口时,数据报被丢弃。“FIN行为”(关闭的端口返回RST,监听端口丢弃包)在URG和PSH标志位置位时同样发生。所有的URG、PSH和FIN或者没有任何标记的TCP数据报都会引起“FIN行为”。

上面讲述了TCP/IP数据报的格式和建立连接的3次握手过程,以及端口扫描器在TCP/IP的实现细节。些对后面的学习非常重要。下面以Nmap(Network Mapper)为例,详细介绍Nmap端口扫描的功能。

2.2.3 端口扫描器演示实验

目前各种端口扫描器很多,在诸多端口扫描器中,Nmap是佼佼者——提供了大量的基于DOS的命令行的选项,还提供了支持Window系统的GUI,能够灵活地满足各种扫描要求,而且输出格式丰富。

Nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取某台主机正在运行及提供什么服务等信息(注意:Nmap需要WinPcap的支持,所以要安装WinPcap程序之后,Nmap才能正常运行)。Nmap支持很多扫描技术,如UDP、TCP connect(全连接扫描)、TCP SYN(半开扫描)、FTP代理、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和Null扫描。Nmap还提供了一些高级特征,例如,通过TCP/IP栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行Ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无需端口映射),碎片扫描,以及灵活的目标和端口设定。在DOS下可以查看到Nmap的参数,如图2-10所示。

图片 115

图2-10 DOS下的Nmap参数

下面把相关主要扫描方式的原理结合具体实例介绍一下。

计算机每个端口的状态有open、filtered、unfiltered。open状态意味着目标主机的这个端口是开放的,处于监听状态。filtered状态表示防火墙、包过滤和其他网络安全软件掩盖了这个端口,禁止Nmap探测其是否打开。unfiltered表示这个端口关闭,并且没有防火墙/包过滤软件来隔离Nmap的探测企图。通常情况下,端口的状态基本都是unfiltered,所以这种状态不显示。只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。

下面是Nmap支持的4种最基本的扫描方式。

  • (1)Ping扫描(-sP参数)。
  • (2)TCP connect( )扫描(-sT参数)。
  • (3)TCP SYN扫描(-sS参数)。
  • (4)UDP扫描(-sU参数)。

【例2-1】-sP扫描。

Ping扫描(-sP参数)。有时用户只是想知道此时网络上有哪些主机正在运行。这时,Nmap向用户指定的网络内的每个IP地址发送ICMP request请求数据包,如果主机正在运行就会做出响应。ICMP包本身是一个广播包,是没有端口概念的,只能确定主机的状态,非常适合于检测指定网段内正在运行的主机数量,如图2-11所示。

nmap-sP

图2-11 -sP扫描结果

有些站点(如microsoft.com)阻塞ICMP echo请求数据包。还有许多个人主机用防火墙挡住ICMP包。因此,用Ping扫描不能检测出来。

【例2-2】-sT扫描。

TCP connect( )扫描(-sT参数)。这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的,如图2-12所示。

nmap-sT1

图2-12 -sT扫描结果

这项技术最大的优点是:在UNIX中,用户不需要root权限就可以自由使用。这种扫描很容易被检测到,在目标主机的防火墙日志中会记录大批的连接请求及错误信息。

【例2-3】-sS扫描。

TCP SYN扫描(-sS参数)。因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(Half-Open)。可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN-ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序。如果收到一个SYN/ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。此时Nmap转入下一个端口。这实际上是由操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这些记入系统日志。不过,需要root权限来定制SYN数据包。

在LAN环境下扫描一个主机,测试结果为:TCP SYN扫描需要大约4s,如图2-13所示。而TCPconnect( )扫描耗时最多,需要大约403s,如图2-12所示。

nmap-sS1

图2-13 -sS扫描结果

【例2-4】-sU扫描。

UDP扫描(-sU参数)。这一种方法是用来确定哪个UDP(User Datagram Protocol,用户数据报协议)端口在主机端开放。这一项技术是发送零字节的UDP信息包到目标机器的各个端口,如果收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则可以认为是开放的,如图2-14所示。

nmap-su1

图2-14 -sU扫描结果

除了这几种最基本的扫描方式外,Nmap还提供了几种特殊的扫描方式,用于进行辅助扫描。

【例2-5】-sF -sX -sN扫描。

在SYN扫描都无法确定的情况下,如图2-15所示,可以使用另外几种特殊的扫描模式,FIN扫描、圣诞树扫描、Null扫描来进一步确认。

nmap-sS2

图2-15 -sS扫描中的filtered的端口

在图2-15中,-sS扫描某端口时,对方主机既没有回复ACK包,也没有回复RST包,所以无法判断该端口状态,显示处于filtered状态。换为-sF或者-sX、-sN扫描方式,结果如图2-16所示。

nmap-sFX1

nmap-sN1

图2-16 -sF、-sX、-sN扫描结果

原因是一般关闭的端口需要对探测包回应RST包,而打开的端口必须忽略“有问题”的包。因此,当一个FIN数据 包到达一个监听端口时,数据 包被丢弃。而关闭的端口返回RST,监听端口丢弃包,将这种行为称为“FIN行为”。同样,URG、PSH、FIN都标记的TCP数据包或者没有任何TCP标记的TCP数据 包都会引起“FIN行为”。FIN扫描使用暴露的FIN数据包来探测,圣诞树扫描打开数据包的FIN、URG和PUSH标志,而Null扫描则是使用了没有任何TCP标记的数据包。通过这样的方式进一步确定端口的状态。

另外,一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而这些特殊的扫描方式可以逃过这些干扰(备注:不同防火墙的实现技术不同,所以扫描的结果可能有出入)。

Nmap提供的扫描方式非常全面,除了以上方式以外,还提供了其他选项,如表2-2所示。

表2-2 其他参数

参数

简要描述

说明

-p

选择要进行扫描的端口号的范围

例如,-p21-150,0,如图2-17所示

-O

获得目标主机操作系统的类型

激活对TCP/IP指纹特征(Fingerprinting)的扫描,检测目标主机操作系统网络协议栈的特征,如图2-17所示

-S

欺骗扫描,伪装源IP地址

如图2-18所示

-v

输出扫描过程的详细信息

这个选项使用两次,会提供更详细的信息

-sV

服务版本探测

如图2-19所示

-A

激烈扫描,同时打开OS指纹(-O)和版本探测

如图2-20所示

-D

使用诱饵方法进行扫描

把扫描者的IP地址随机夹杂在诱饵主机之中,也就是说除了真正的扫描源之外还添加了其他的扫描源,起到混淆防火墙和IDS(Intrusion Detection Systems,入侵检测系统)的目的。可以结合抓包软件,以判断扫描数据包的源IP地址信息,如图2-21所示

-F

快速扫描

只对nmap的nmap-services 文件中指定的端口进行扫描

-P0

在扫描之前,不必Ping主机

使用-P0或者-PT 80选项,如图2-18所示

-PI

真正的Ping(ICMP请求)来扫描目标主机是否正在运行

 

-PT

只有在目标网络/主机阻塞了Ping包,而仍旧允许用户对其进行扫描时,这个选项才有效

一般使用-PT 80,因为这个端口通常不会被过滤

nmap-s-O1

图2-17 -p、-O扫描结果

nmap-S1

图2-18 -P0、-S扫描结果

图片 4

图2-19 -sV扫描结果

图片 21

图2-20 -A扫描结果

图片 22

图2-21 -D扫描结果

高版本的Nmap除了提供DOS操作方式外,也提供了图形用户界面的操作方式,如图2-22所示。

图片 23

图2-22 Nmap图形用户界面

2.2.4 综合扫描器演示实验

前面介绍了端口扫描器,下面介绍综合扫描器。综合扫描器不限于端口扫描,既可以是对漏洞、某种服务、某个协议等的扫描,也可以是针对系统密码的扫描。下面分别以X-Scan和Nessus为例,介绍综合扫描器的功能和用法。

1.X-Scan

X-Scan是国内比较出名的扫描工具,完全免费,无需注册,无需安装(解压缩即可运行),无需额外驱动程序支持,可以运行在Windows 9x/NT4/2000/XP/Server 2003等系统上。X-Scan采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能,提供了图形界面和命令行两种操作方式。扫描内容包括远程服务类型、操作系统类型及版本、各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等20多个大类。X-Scan v3.1的界面如图2-23所示。

图2-23 X-Scan v3.1的界面

X-Scanv3.1的工具栏如图2-24所示,从左至右依次是扫描参数(两项)、开始扫描、暂停扫描、中止扫描、检测报告、使用说明、退出。

http://www.frontfree.net/articles/pages/0000000743/Image00054.gif

图2-24 X-Scan v3.1的工具栏

具体的扫描步骤如下。

(1)单击工具栏中的【扫描参数】按钮,在出现的图2-25所示的窗口内输入要扫描主机的IP地址(或是一个范围)。需要注意的是,跳过Ping不通的主机,跳过没有开放端口的主机,可以大幅度地提高扫描的效率。在图2-26所示的【端口相关设置】选项卡中,可以进行扫描某一特定端口等特殊操作(X-Scan默认只是扫描一些常用端口)。

扫描参数

图2-25 【基本设置】选项卡

扫描参数5

图2-26 【端口相关设置】选项卡

(2)设置好参数之后,单击【确定】按钮,出现图2-27所示的窗口,窗口中有扫描内容的设置。

扫描模块

图2-27 【扫描模块】窗口

(3)在【扫描参数】窗口中,还可以选择扫描的具体项目。例如,选择【CGI相关设置】选项卡,如图2-28所示。

扫描参数3

图2-28 【CGI相关设置】选项卡

(4)用于口令破解的【字典文件设置】选项卡如图2-29所示,而【NETBIOS相关设置】选项卡如图2-30所示。NETBIOS相关设置对于局域网内的攻击是非常有用的。全部扫描完成后,出现图2-31所示的漏洞列表,单击检测报告就会出现报告。

SCAN-CGI

图2-29 【字典文件设置】选项卡图

扫描参数2

图2-30 【NETBIOS相关设置】选项卡

报告

图2-31 X-Scan v3.1的扫描报告

(5)单击每个漏洞上的超链接,就会详细地显示各个漏洞,并可以连接上X-Focus的站点。X-Focus公司具有庞大的数据库,网络管理人员可以通过数据库来找到漏洞的解决办法。

X-Scan具有很全面并且不断更新的CGI/IIS漏洞库,选择【工具】→【CGI列表维护】菜单命令,出现如图2-32所示的窗口,可以对CGI/IIS的漏洞列表进行维护。

CGI

图2-32 X-Scan v3.1的CGI列表维护

总之,X-Scan是一款典型的扫描器,更确切地说,其是一款漏洞检查器,扫描时没有时间限制和IP限制等。国内类似的比较著名的同类软件还有流光、X-way等。

2.Nessus

在企业中广泛应用的Nessus也是一款典型的综合扫描器,其被认为是目前全世界最多人使用的系统漏洞扫描与分析软件:总共有超过75000个机构使用Nessus 作为扫描该机构电脑系统的软件。

Nessus软件采用客户机/服务器体系架构(也即C/S架构;4.2版本以后改为浏览器/服务器架构,也即B/S架构),客户端提供图形界面,接受用户的命令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给客户端。服务器端可以运行在Windows或Linux系统下,是真正的扫描真正发起者。Nessus的体系架构如图2-33所示。

图片 136

图2-33 Nessus体系架构

Nessus具有强大的插件功能,针对一个漏洞可以开发一个对应的插件(漏洞插件是用NASL语言编写的一小段模拟攻击漏洞的代码)。这种利用漏洞插件的扫描技术极大方便了漏洞数据的维护和更新。Nessus具有扫描任意端口、任意服务的能力,输出报告格式多样,内容详细(包括目标的脆弱点、修补漏洞以防止黑客入侵的方法及危险级别等),非常适合作为网络安全评估工具。

下面通过演示实验来讲解Nessus安装、配置和使用,以帮助读者掌握使用企业级漏洞扫描器进行网络安全扫描的方法。

Nessus的下载和安装的步骤如下。

(1)到Nessus官方网站(http://www.tenable. com/products /nessus)下载Nessus的最新版本,需注意版本(Home版本是免费的)和操作系统类型。这里以Nessus5.2.7为例进行说明。

(2)安装开始后,进入欢迎页面,此时只需按提示一步步进入即可。

(3)由于客户端连接服务器时需要使用https进行连接,所以浏览器会提示证书存在问题,可以先不管,选择继续链接,或者在浏览器中将此链接加入信任,如图2-34所示。

图像说明文字

图2-34 将链接加入信任

(4)创建用户,如图2-35所示。

图像说明文字

图2-35 创建用户

(5)获取激活码,如图2-36所示。

图像说明文字

图2-36 获取激活码

此时可以到网站www.tenable.com/register进行注册,并把注册邮箱中的激活码填入并激活。

(6)注册成功后,会自动获取最新插件。这个过程比较慢,需要等待一段时间,如图2-37所示。

图像说明文字

图2-37 更新插件

插件更新成功后,也就完成了Nessus软件的安装。这之后可登录管理界面。需注意的是,需要在服务器端确认相应的服务启动后,才能在客户端通过浏览器登录管理界面。具体步骤如下。

(1)在服务器端,需要判断Tenable Nessus服务是否正常启动,如图2-38所示。

2-38

图2-38 在服务器端启动Nessus服务

(2)在客户端,可以通过网址(格式为“https://[Server的IP]:8834”)登录管理界面,如图2-39所示。

2-39

图2-39 在客户端登录管理界面

下面简单介绍Nessus使用时的几个关键步骤。

(1)用户管理:登录Nessus后,可以单击右上角的用户名,在下拉菜单中选中【User Profile】进行用户管理,如图2-40所示。

图片 40

图2-40 用户管理界面

(2)使用策略:在Policies页面下选择New Policy可以新增一个策略,策略向导如图2-41所示。这里可以使用系统提供的策略模板进行扫描。例如,“Basic Network Scan”模板适用于对一般的内外网主机进行全面的扫描;“Windows Malware Scan”模板适用于查找Windows系统下的恶意软件,用户可以根据实际的扫描环境和扫描要求做针对性的选择。用户也可以选择“Advanced Policy”自定义策略,打开图2-42所示的设置对话框。该对话框中的几个选项的含义如下。

2-41

图2-41 策略向导界面

2-42

图2-42 自定义策略对话框

① Credentials:在扫描过程中通过使用预先设置的认证信息,可以得到更准确的结果。

② Plugins:使用系统提供的安全插件(插件中提供不同的扫描策略)进行扫描。

③ Preference:包括在扫描设置之上的精确控制方法。

(3)在定义好策略后,可以在【Scans】页面下新建一个扫描,如图2-43所示。

2-43

图2-43 新建扫描界面

其中,【Targets】中目标系统的书写方式如下。

① 单一主机:192.168.0.1。

② 一个范围:192.168.0.1-192.168.0.100。

③ 一个网段:192.168.0.1/24。

④ 域名:www.tenable.com。

另外,可以对扫描进行计划设置,设置扫描的开始时间、周期等信息,如图2-44所示。

2-44

图2-44 设置扫描计划

(4)查看并分析结果:完成扫描后,可以以不同的方式查看到扫描的结果,如图2-45和图2-46所示。

2-45

图2-45 查看扫描结果之一

2-46

图2-46 查看扫描结果之二

(5)生成报告:在查看结果的界面上,可以选择生成报告的内容和格式,如图2-47所示。支持的导出格式包括:HTML、PDF、CSV等。

图像说明文字

图2-47 生成结果报告

这些生成的扫描结果,可以作为网络风险分析与安全审计报告的重要组成部分,给用户提供很好的参考借鉴作用。

 口令破解

【实验目的】

通过密码破解工具的使用,了解账号的安全性,掌握安全口令的设置原则,以保护账号口令的安全。

【实验原理】

口令破解的意义和方法(参考2.3.1小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,并通过网络相连。

软件工具:SMBCrack、psexec.exe。

【实验内容】

使用SMBCrack进行口令破解实验(参考2.3.2小节)。

2.3.1 口令破解概述

在X-Scan中已经看到“口令破解”这个环节,下面介绍口令破解的方法。为了安全,现在几乎所有的系统都通过访问控制来保护自己的数据。访问控制最常用的方法就是口令保护(密码保护)。口令应该说是用户最重要的一道防护门,如果密码被破解了,那么用户的信息将很容易被窃取。因此,口令破解也是黑客侵入一个系统比较常用的方法。或者当公司的某个系统管理员离开企业,而任何人都不知道该管理员账户的口令时,企业可能会雇佣渗透测试人员来破解管理员的口令。

一般入侵者常常通过下面几种方法获取用户的密码口令,包括暴力破解、Sniffer密码嗅探、社会工程学(即通过欺诈手段获取),以及木马程序或键盘记录程序等手段。下面主要讲解暴力破解。

系统用户账户密码口令的暴力破解主要是基于密码匹配的破解方法,最基本的方法有两个:穷举法和字典法。穷举法是效率最低的办法,将字符或数字按照穷举的规则生成口令字符串,进行遍历尝试。在口令稍微复杂的情况下,穷举法的破解速度很低。字典法相对来说较高,用口令字典中事先定义的常用字符去尝试匹配口令。口令字典是一个很大的文本文件,可以通过自己编辑或者由字典工具生成,里面包含了单词或者数字的组合。如果密码是一个单词或者是简单的数字组合,那么破解者就可以很轻易地破解密码。

常用的密码破解工具和审核工具很多,如Windows平台口令的SMBCrack、L0phtCrack、SAMInside等。通过这些工具的使用,可以了解口令的安全性。随着网络黑客攻击技术的增强和提高,许多口令都可能被攻击和破译。这就要求用户提高对口令安全的认识。

2.3.2 口令破解演示实验

SMBCrack是基于Windows操作系统的口令破解工具,与以往的SMB(共享)暴力破解 工具不同,没有采用系统的API,而是使用了SMB的协议。

首先我们了解一下什么是SMB协议。服务器信息块(Server Message Block ,SMB)用于实现文件、打印机、串口等共享。在Windows NT中,SMB基于NBT。NBT(NetBIOS over TCP/IP)实现,后者使用137(UDP)、138(UDP)和139(TCP)来实现基于TCP/IP的NETBIOS网际互联。要注意的是,139端口是一种TCP端口,作用是:通过网上邻居访问局域网中的共享文件或共享打印机。

而在Windows 2000 Server及后续版本中,SMB除了基于NBT的实现外,还有直接通过445端口实现。445端口也是一种TCP端口,其在Windows 2000Server及后续版本的系统中发挥的作用与139端口是完全相同的。具体地说,它也是提供局域网中文件或打印机共享服务。不过,该端口是基于CIFS协议(通用因特网文件系统协议)工作的。如果Windows 2000 Server及后续版本的服务器允许NBT,那么UDP端口137、138和TCP端口139、445将开放。如果NBT被禁止,那么只有445端口开放。

当Windows 2000 Server及后续版本的系统(允许NBT)作为client来连接SMB服务器时,它会同时尝试连接139和445端口,如果445端口有响应,就发送RST包给139端口断开连接,以455端口通信来继续。当445端口无响应时,才使用139端口。当Windows 2000 Server及后续版本的系统(禁止NBT)作为client来连接SMB服务器时,那么它只会尝试连接445端口,如果无响应,那么连接失败。

因为Windows可以在同一个会话内进行多次密码试探,所以用SMBCrack可以破解操作系统的口令,SMBCrack的参数如图2-48所示。

smb2

图2-48 SMBCrack的参数

目标主机10.3.40.1的用户名为“405”,密码为“test4”(为了实验效果,我们提前制定好字典文件user.txt 和pass.dic)。口令破解的实验结果如图2-49所示。

sbm1

图2-49 SMBCrack的扫描结果

SMBCrack默认使用139端口,如果目标主机的139端口关闭,则使用-P1参数,通过445端口进行破解。一般默认445端口是打开的。

图2-50所示为不指定用户名字典文件,而用-d参数通过dump方式获得用户名(命令为:smbcrack –i 10.3.40.1 –d –p pass.dic)。这样的方式还是要依赖139端口。

smb3

图2-50 SMBCrack的扫描结果

针对暴力破解Windows操作系统口令的攻击行为,有很有效的防护方式。其中启动账户锁定策略是一个有效的方法,如图2-51所示,将账户锁定策略的阈值设置为3,账户锁定时间只要3或5分钟即可,使策略生效。同时改变pass.dic文件内容,把真实密码“test4”的顺序放到第三以后的位置,如图2-52所示。

smb-p1

图2-51 账户锁定策略

smb5

图2-52 修改字典文件

修改字典文件后SMBCrack就扫描不出结果了,如图2-53所示。

smb4

图2-53 修改字典文件后的扫描结果

如果操作系统口令被破解了,黑客就可以用一些工具获得系统的Shell,那么用户的信息将很容易被窃取。图2-54演示了在已知远程主机操作系统口令的情况下,使用“psexec.exe”工具执行远程主机的cmd命令的方法。

psexec

图2-54 调用远程主机的cmd命令

如果我们不需要提供文件和打印共享服务,就可以关闭139和445端口。关闭139端口的方法是在【网络和拨号连接】的【本地连接】中选取【Internet协议(TCP/IP)】属性,进入【高级TCP/IP设置】,再进入【WINS】里面,选中【禁用TCP/IP的NETBIOS】单选项,就关闭了139端口,如图2-55所示。

图片 117

图2-55 关闭139端口

关闭445端口的方法有很多,比较方便的方法就是修改注册表,添加一个键值,格式如下。

Key: HKLM \System\CurrentControlSet\Services\NetBT\ Parameters

Name: SMBDeviceEnabled

Type: REG_DWORD

Value: 0

修改完后重启机器,运行“netstat -an”,会发现445端口已经不再监听了。

Windows server 2008中或在Windows 7中使用SMB版本2协议,而SMBCrack是针对SMB版本1协议开发的,所以它无法破解Windows server 2008和Windows 7中的账户密码。但是如果这两个系统中启动了账户锁定策略,当使用SMBCrack攻击时仍然会造成账户的锁定(administrator账户除外)。

 网络监听

【实验目的】

通过使用Wireshark软件掌握Sniffer(嗅探器)工具的使用方法,实现FTP、HTTP等数据包的捕捉,以理解TCP/IP中多种协议的数据结构、会话连接建立和终止的过程、TCP序列号、应答序号的变化规律,防止FTP、HTTP等由于传输明文密码造成的泄密,掌握协议分析软件的应用。

【实验原理】

网络监听的原理(参考2.4.1小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,将两台机通过HUB(集线器)连接,组成一个局域网。

软件工具:Wireshark。

【实验内容】

任务1:Wireshark工具的使用(参考2.4.2小节)。

任务2:FTP、HTTP、POP协议分析(参考2.4.2小节)。

2.4.1 网络监听概述

当人们舒适地坐在办公室里,惬意地享受网络带来的便利,收取E-mail或者购买喜欢的物品时,信件和信用卡账号变成了一个又一个的信息包,在网络上不停地传送着。人们是否想过这些信息包会通过网络流入其他人的机器呢?这是实实在在的危险,因为网络监听工具能够实现这样的功能。

网络监听是黑客在局域网中常用的一种技术,在网络中监听其他人的数据包,分析数据包,从而获得一些敏感信息,如账号和密码等。网络监听原本是网络管理员经常使用的一个工具,主要用来监视网络的流量、状态、数据等信息,例如,Sniffer Pro就是许多系统管理员的必备工具。另外,分析数据包对于防黑客技术(如扫描过程、攻击过程有深入了解)也非常重要,从而对防火墙制定相应规则来防范。所以网络监听工具和网络扫描工具一样,也是一把双刃剑,要正确地对待。

网络监听工具称为Sniffer(嗅探器),其可以是软件,也可以是硬件。硬件的Sniffer也称为网络分析仪。不管是硬件还是软件,Sniffer的目标只有一个,就是获取在网络上传输的各种信息。

为了深入了解Sniffer的工作原理,先简单地介绍一下网卡与HUB的原理。因为Internet是现在应用最广泛的计算机连网方式,所以下面都用Internet来讲解。

1.网卡工作原理

网卡工作在数据链路层,在数据链路层上,数据是以帧(Frame)为单位传输的。帧由几部分组成,不同的部分执行不同的功能,其中,帧头包括数据的目的MAC地址和源MAC地址。

帧通过特定的称为网卡驱动程序的软件进行成型,然后通过网卡发送到网线上,再通过网线到达目的机器,之后在目标机器的一端执行相反的过程。

目标机器的网卡收到传输来的数据,认为应该接收,就在接收后产生中断信号通知CPU,认为不该接收就丢弃,所以不该接收的数据网卡被截断,计算机根本不知道。CPU得到中断信号产生中断,操作系统根据网卡驱动程序中设置的网卡中断程序地址调用驱动程序接收数据。

网卡收到传输来的数据时,先接收数据头的目的MAC地址。通常情况下,像收信一样,只有收信人才去打开信件,同样网卡只接收和自己地址有关的信息包,即只有目的MAC地址与本地MAC地址相同的数据包或者是广播包(多播等),网卡才接收;否则,这些数据包就直接被网卡抛弃。

网卡还可以工作在另一种模式中,即“混杂”(Promiscuous)模式。此时网卡进行包过滤,不同于普通模式,混杂模式不关心数据包头内容,让所有经过的数据包都传递给操作系统处理,可以捕获网络上所有经过的数据帧。如果一台机器的网卡被配置成这样的方式,那么这个网卡(包括软件)就是一个嗅探器。

2.网络监听原理

Sniffer工作的基本原理就是让网卡接收一切所能接收的数据。Sniffer工作的过程基本上可以分为3步:把网卡置于混杂模式;捕获数据包;分析数据包。

下面根据不同的网络状况,介绍Sniffer的工作情况。

(1)共享式HUB连接的网络。如果办公室里的计算机A、B、C、D通过共享HUB连接,计算机A上的用户给计算机C上的用户发送文件,根据Internet的工作原理,数据传输是广播方式的,当计算机A发给计算机C的数据进入HUB后,HUB会将其接收到的数据再发给其他每一个端口,所以在共享HUB下,同一网段的计算机B、C、D的网卡都能接收到数据,并检查在数据帧中的地址是否和自己的地址相匹配,计算机B和计算机D发现目的地址不是自己的,就把数据帧丢弃,计算机C接收到数据帧,并在比较之后发现是自己的,就将数据帧交给操作系统进行分析处理,如图2-56所示。同样的工作情况,如果把计算机B的网卡置于混杂模式(即在计算机B上安装了Sniffer软件),那么计算机B的网卡也会对数据帧产生反应,把数据交给操作系统进行分析处理,实现监听功能,如图2-57所示。

图像说明文字

图2-56 HUB工作原理图

图像说明文字

图2-57 监听模式的HUB

(2)交换机连接的网络。交换机的工作原理与HUB不同。普通的交换机工作在数据链路层,交换机的内部有一个端口和MAC地址对应,当有数据进入交换机时,交换机先查看数据帧中的目的地址,然后按照地址表转发到相应的端口,其他端口收不到数据,如图2-58所示。只有目的地址是广播地址的,才转发给所有的端口。如果现在在计算机B上安装了Sniffer软件,计算机B也只能收到发给自己的广播数据包,无法监听其他人的数据。因此,在交换环境下,比HUB连接的网络安全得多。

现在许多交换机都支持镜像的功能,能够把进入交换机的所有数据都映射到监控端口,同样可以监听所有的数据包,从而进行数据分析,如图2-59所示。镜像的目的主要是为了网络管理员掌握网络的运行情况,采用的方法就是监控数据包。

要实现这个功能,必须能对交换机进行设置才可以。因此,在交换环境下,对于黑客来说很难实现监听,但是还有其他方法,如ARP欺骗、破坏交换机的工作模式、使其也广播式处理数据等。

图像说明文字

图2-58 交换机工作原理图

图像说明文字

图2-59 交换机的监听端口

2.4.2 Sniffer演示实验

1.Sniffer工具简介

硬件的Sniffer一般都比较昂贵,功能非常强大,可以捕获网络上所有的传输,并且可以重新构造各种数据包。软件的Sniffer有Sniffer Pro、Wireshark、Net monitor等,其优点是物美价廉,易于学习使用;缺点是无法捕获网络上所有的传输(如碎片、fragment、short event),某些情况下,无法真正了解网络的故障和运行情况。下面简要地介绍几种Sniffer工具。

(1)Sniffer Pro是美国网络联盟公司出品的网络协议分析软件,支持各种平台,性能优越。Sniffer Pro可以监视所有类型的网络硬件和拓扑结构,具备出色的监测和分辨能力,智能地扫描从网络上捕获的信息以检测网络异常现象,应用用户定义的试探式程序自动对每种异常现象进行归类,并给出一份警告、解释问题的性质和提出建议的解决方案。

(2)Wireshark(2006年夏天之前叫做 Ethereal)是一款开源的网络协议分析器,可以运行在UNIX和Windows上。Wireshark可以实时检测网络通信数据,也可以检测其捕获的网络通信数据快照文件;既可以通过图形界面浏览这些数据,也可以查看网络通信数据包中每一层的详细内容。Wireshark拥有许多强大的特性:包含有强显示过滤器语言(Rich Display Filter Language)和查看TCP会话重构流的能力,支持上百种协议和媒体类型,是网络管理员常用的工具。

(3)Net monitor是Microsoft自带的网络监视器,可捕获过滤器和触发器、实时监视统计和显示过滤器,包括依据协议属性而进行的过滤。与Sniffer Pro、Wireshark界面相似,但Net monitor的功能远远比不上前两者。

(4)EffTech HTTP Sniffer是一款针对HTTP进行嗅探的Sniffer工具,专门来分析局域网上HTTP数据传输封包,可以实时分析出局域网上所传送的HTTP资料封包。这个软件的使用相当简单,只要单击【开始】按钮,就开始记录HTTP的请求和回应信息。单击每个嗅探到的信息,就可以查看详细的提交和回应信息。

(5)Iris The Network Traffic Analyzer是网络流量分析监测工具,可以帮助系统管理员轻易地捕获和查看用户的使用情况,同时检测到进入和发出的信息流,会自动地进行存储和统计,便于查看和管理。

2.Wireshark的使用

首先安装Wireshark(下载地址为http://www.wireshark.org/download.html),按照向导安装,完成后桌面上会出现图标。启动Wireshark以后,出现如图2-60所示的界面,选择【Capture】→【Start】菜单命令,出现Wireshark选择网卡,如图2-61所示。

1-1

图2-60 Wireshark的面板

1

图2-61 Wireshark选择网卡

选择【Capture】→【Start】菜单命令,就会出现所捕获的数据包的统计。想停止时,单击捕捉信息对话框上的【stop】按钮停止,如图2-62所示。

1-3箭头2

图2-62 Wireshark捕获数据包

捕获到的数据包显示如图2-63所示。第一部分是数据包统计窗,可以按照各种不同的参数排序,如按照Source Ip或者Time等;如果想看某个数据包的消息信息,单击该数据包,在协议分析窗中显示详细信息,主要是各层数据头的信息;最下面是该数据包的具体数据。

wire-主窗口

图2-63 Wireshark分析数据包

分析数据包有3个步骤:选择数据包、分析协议、分析数据包内容。

(1)选择数据包。每次捕获的数据包的数量很多。首先,根据时间、地址、协议、具体信息等,对需要的数据进行简单的手动筛选,选出所要分析的那一个。例如,大家经常被其他人使用Ping来进行探测,那么,当想查明谁在进行Ping操作时,面对嗅探到的结果,应该选择的是ICMP。

例如,查看访问地址为202.165.102.134的Web服务器的数据包,如图2-64所示。

e选择数据报

图2-64 选择数据包

(2)分析协议。在协议分析窗中直接获得的信息是帧头、IP头、TCP头和应用层协议中的内容,如MAC地址、IP地址和端口号、TCP的标志位等。另外,Wireshark还会给出部分协议的一些摘要信息,可以在大量的数据中选取需要的部分,如图2-65所示。

e协议

图2-65 分析协议

(3)分析数据包内容。首先,要了解数据包的结构,这里所说的数据包是指捕获的一个“帧”,具体数据封装如图2-66所示。

图像说明文字

图2-66 数据的封装

数据包的结构与平常的信件类似,先将信封装好,然后填写信封的内容:收信人地址、发信人地址等。目标IP地址说明这个数据包是要发给谁的,相当于收信人地址;源IP地址说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容,例如,想嗅探FTP中的信息,就要查看净载数据中的内容。

(4)数据包的过滤。主要包括以下几个方面。

① 捕获过滤器

一次完整的嗅探过程并不是只分析一个数据包,可能是在几百或上万个数据包中找出有用的几个或几十个来分析。如果捕获的数据包过多,增加筛选的难度,也会浪费内存。所以我们可以在启动捕获数据包前,设置过滤条件,减少捕获数据包的数量,如图2-67所示。

图2-67 Wireshark的options

Wireshark捕获时条件过滤参考语法如下。

图像说明文字

  • Protocol(协议):ether、ip、arp、rarp、icmp、tcp and udp等。
  • Direction(方向):src、dst、src and dst、src or dst。
  • Host(s) :net、port、host、portrange。
  • Logical Operations(逻辑运算):not、and、or(not具有最高的优先级。or和and具有相同的优先级,运算时从左至右进行)。

例如,“src host 172.17.12.1 and not dst net 192.168.2.0/24”显示来源IP地址为172.17.12.1,但目的地址不是192.168.2.0/24的封包。 

还可以填写【Capture Filter】栏或者单击【Capture Filter】按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器

② 显示过滤器

通常经过捕捉过滤器过滤后的数据还是很复杂。可以使用显示过滤器进行更加细致的查找。它的功能比捕捉过滤器更为强大,而且在修改过滤器条件时,并不需要重新捕捉一次,参考语法如下。

图像说明文字

  • Protocol:显示过滤器支持OSI模型第2-7层大量的协议。单击【Expression...】按钮,如图2-68所示,然后可以看到它所支持的协议,如图2-69所示。

f1

图2-68 Wireshark的显示过滤

f3

图2-69 Wireshark支持的显示过滤协议1

    同样可以在以下位置找到所支持的协议,如图2-70所示。

图像说明文字

图2-70 Wireshark支持的显示过滤协议2

  • String:单击相关协议父类旁的“+”号,然后选择其子类,如图2-69所示。

  • 运算符:可以使用6种比较运算符,如图2-69所示。还有逻辑运算符:and和or。

例如,语句“ip.src= =192.168.0.0/16 and ip.dst= =192.168.0.0/16”表示只显示“192.168.x.x”网段内部主机之间的流量。

表达式语法正确,Filter栏背景色为绿色显示,并显示符合过滤条件的封包;语法错误,背景色为红色,会弹出错误提示信息,不会显示出对应条件的封包。

【例2-6】用Wireshark嗅探一个FTP过程。

由于FTP中的数据都是明文传输的,所以很容易获得。打开Wireshark,然后登录FTP服务器,如图2-71所示。登录后,Wireshark停止捕获数据。图2-72所示是在Wireshark中看到的分析结果。登录的用户名是“405”,密码是“test4”。通过这样的方法,也可以掌握FTP的工作过程。

4

图2-71 FTP登录过程

3-3

图2-72 FTP分析结果

【例2-7】POP密码的嗅探。

在使用第三方客户端邮件工具进行邮件的收发时,可以嗅探到POP的密码。以Outlook Express(简称OE)作为这个实验的第三方邮件收发工具,打开OE后,输入用户名和密码,接收完邮件后立即停止Wireshark,图2-73所示是POP协议的嗅探结果。

7

图2-73 POP密码的嗅探

很明显,图2-70中所指向的数据是一个客户端的请求,第11条信息就是送出一个包含了用户名的邮件接收请求,然后服务器会自动检测该用户名是否存在,第14条信息显示用户名验证成功,接下来是输入密码,第14条信息是客户端输入的密码,校验成功后,返回第17条信息,说明用户名和密码都是合法且正确的,用户名和密码的验证过程结束,很轻易地获得用户名和密码。

【例2-8】Web邮箱密码的嗅探。

现在人们经常使用Web邮箱进行邮件的收发,由于HTTP是明文传送的,所以可以嗅探到Web邮箱的密码。图2-74所示为Web邮箱的嗅探结果。

6

图2-74 Web邮箱密码的嗅探

由于HTTP是明文传送的,所以用户的信息很容易被泄露,除了Web邮箱外,在WWW上还有其他许多敏感的信息,如网上银行、社区、论坛等,都存在这样的威胁。所以现在网上银行、大部分Web邮箱采用HTTPS,进行安全防护。另外,用户自己也要提高网络安全意识,不要轻易在WWW上传输敏感的信息。

2.4.3 网络监听的检测和防范

网络监听的一个前提条件是将网卡设置为混杂模式,因此,通过检测网络中主机的网卡是否运行在混杂模式下,可以发现正在进行网络监听的嗅探器。著名黑客团队L0pht开发的AntiSniff就是一款能在网络中探测与识别嗅探器的工具软件。

为了防范网络监听行为,应该尽量避免使用明文传输口令等敏感信息,而是使用网络加密机制,例如用SSH代替telnet协议。这样就算攻击者嗅探到数据,也无法获知数据的真实信息。

另外,由于在交换式网络中,攻击者除非借助ARP欺骗等方法,否则无法直接嗅探到别人的通信数据。因此,采用安全的网络拓扑,尽量将共享式网络升级为交换式网络,并通过划分VLAN等技术手段将网络进行合理的分段,也是有效防范网络监听的措施。

 ARP欺骗

【实验目的】

通过在交换环境进行ARP欺骗并嗅探用户发送的信息,掌握ARP攻击的基本工作原理,并进一步掌握使用抓包软件进行嗅探分析的方法。

【实验原理】

ARP欺骗的工作过程(参考2.5.1小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,通过网络相连并接入互联网。

软件工具:SwitchSniffer、Iris。

【实验内容】

在交换环境下使用SwitchSniffer进行ARP欺骗,并使用Iris嗅探其他用户的上网信息(参考2.5.2小节)。

2.5.1 ARP欺骗的工作原理

ARP(Address Resolution Protocol)是地址解析协议,是一种利用网络层地址来取得数据链路层地址的协议。如果网络层使用IP,数据链路层使用以太网,那么当我们知道某个设备的IP地址时,就可以利用ARP来取得对应的以太网MAC地址。网络设备在发送数据时,当网络层信息包要封装为数据链路层信息包之前,需要首先取得目的设备的MAC地址。因此,ARP在网络数据通信中是非常重要的。

正常情况下,某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,将B的MAC地址封装进数据链路层的帧头,并进行数据传输。如果未找到,则A会以广播的方式发送一个ARP请求报文(携带主机A的IP地址A_IP和物理地址A_MAC),请求IP地址为B_IP的主机B回答其物理地址B_MAC。这时,网上所有主机包括B都收到这个ARP广播请求,但只有主机B识别自己的IP地址,于是B以单播的形式向A主机发回一个ARP响应报文,其中就包含有B的MAC地址B_MAC。A接收到B的应答后,就会更新本地的ARP缓存,接着使用这个MAC地址进行帧的封装并发送数据。

但是,ARP协议并不只在发送了ARP请求后才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存。这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络通信不是根据IP地址进行,而是按照MAC地址进行传输的。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。

ARP欺骗是黑客常用的攻击手段之一,其中最常见的一种形式是针对内网PC的网关欺骗。它的基本原理是黑客通过向内网主机发送ARP应答报文,欺骗内网主机说“网关的IP地址对应的是我的MAC地址”,也就是ARP应答报文中将网关的IP地址和黑客的MAC地址对应起来。这样内网PC本来要发送给网关的数据就发送到了黑客的机器上了。

2.5.2 交换环境下的ARP欺骗攻击及其嗅探演示实验

我们知道,在交换环境中,攻击者是无法直接监听到其他主机上网的数据包的,因为这些主机上网的数据包都是直接通过网关发送出去的。攻击者为了嗅探到其他主机的信息,可以借助ARP欺骗,让其他主机发送给网关的数据发送到攻击者的机器上,从而实现嗅探的目的。

1.实验拓扑

在图2-75中,IP地址为10.3.40.59的机器模拟攻击者的计算机,并在该计算机上安装ARP欺骗工具SwithchSniffer,以实现对交换环境下的计算机10.3.40.5的ARP欺骗。

2-75

图2-75 ARP欺骗攻击实验示意图

2.实验步骤

(1)在实施ARP欺骗之前,计算机10.3.40.5是可以正常上网的,而且通过“arp –a”命令可以查看到其本地的ARP缓存表,结果如图2-76所示。

图片 75

图2-76 正常情况下计算机10.3.40.5的本地ARP缓存表

从图2-76可以看到,网关10.3.40.254的MAC地址为00-0F-E2-50-4B-A0。

(2)在攻击者计算机10.3.40.59安装ARP欺骗工具SwithchSniffer和抓包工具Iris(或者其他抓包工具,例如SnifferPro)。

(3)攻击者打开SwitchSniffer,实施ARP欺骗,步骤如下。

① 扫描网段内有哪些计算机。

② 选中要欺骗的计算机(这里只选10.3.40.5)。

③ 单击【Start】按钮开始对选中的计算机进行ARP欺骗,如图2-77所示。

图片 76

图2-77 实施ARP欺骗

(4)攻击者打开Iris进行嗅探,同时让被欺骗的计算机10.3.40.5再次上网(例如登录邮箱webmail.szpt.net,输入用户名和密码。这时,输入的用户名和密码是否正确都无所谓)。这时黑客可以嗅探到被欺骗计算机的上网信息,如图2-78所示。

图片 77

图2-78 实施ARP欺骗后的嗅探结果

(5)此时,再次查看被欺骗计算机的本地ARP缓存表,可以发现网关的MAC地址被欺骗成了攻击者的MAC地址,如图2-79所示,因此发给网关的数据包就发送给了攻击者的计算机。

图片 120

图2-79 实施ARP欺骗后的本地ARP缓存表

该实验中,作为攻击者的计算机10.3.40.59通过欺骗交换环境下的计算机10.3.40.5,将10.3.40.5发送给网关10.3.40.254的信息发送给了10.3.40.59。同时,SwitchSniffer工具还将收到的这些数据转发给网关,让10.3.40.5登录邮箱的数据能发送出去。另外,10.3.40.59又通过欺骗网关10.3.40.254,让网关把要发送给10.3.40.5的数据发送给10.3.40.59。然后,10.3.40.59再将数据转发给计算机10.3.40.5,实现双向的ARP欺骗。计算机10.3.40.5本应该直接和网关之间的数据传输过程,变成了通过攻击者计算机10.3.40.59转发了,而这样的通信数据流的改变对被欺骗的计算机10.3.40.5是完全透明的,它完全感觉不到异常,还是能够正常完成登录邮箱等上网工作,但是正是由于这样的通信数据流的改变(数据流经过了攻击者的计算机),使得攻击者可以通过嗅探得到其他人的通信信息。这样的攻击,也称为“中间人攻击”。

2.5.3 ARP欺骗攻击的检测和防范

从上面的学习中我们知道,攻击者为了实施ARP欺骗,需要向被欺骗计算机发送虚假的ARP响应包;而且,为了防止被欺骗计算机收到正确的ARP响应包后正确更新了本地的ARP缓存,攻击者需要持续发送ARP响应包。因此,发生ARP欺骗攻击时,网络中通常会有大量的ARP响应包。网络管理员可以根据这一特征,通过网络嗅探,检测网络中是否存在ARP欺骗攻击。

防范ARP欺骗攻击的主要方法有以下几种。

(1)静态绑定网关等关键主机的MAC地址和IP地址的对应关系,命令格式为:arp -s 192.168.0.1 aa-bb-cc-dd-ee-ff-00。该方法可以将相关的静态绑定命令做成一个自启动的批处理文件,让计算机一启动就执行该批处理文件,以达到绑定关键主机MAC地址和IP地址对应关系的目的。

(2)使用一些第三方的ARP防范工具,例如360 ARP防火墙等。

(3)通过加密传输数据、使用VLAN技术细分网络拓扑等方法,以降低ARP欺骗攻击的危害后果。

 木马

【实验目的】

通过对木马配置的实验,理解与掌握木马传播与运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。

【实验原理】

木马的工作原理(参考2.6.1小节)。

木马的工作过程(参考2.6.3小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,通过网络相连。

软件工具:冰河木马、灰鸽子木马。

【实验内容】

任务1:使用冰河木马对远程计算机进行控制(参考2.6.4小节)。

任务2:使用反弹端口木马对远程计算机进行控制(参考2.6.5小节)。

瑞星公司最新发布的《瑞星2015中国信息安全报告》显示,2015年全年,瑞星“云安全”系统共截获新增病毒样本3 715万个,其中新增木马病毒(Trojan)占总体病毒的61.79%,牢牢占据榜首位置,如图2-80所示。可见,木马是黑客攻击的一种非常重要的方法。

图片 81

图2-80 2015年新增病毒/木马统计图

2.6.1 木马的工作原理

特洛伊木马(其名称取自希腊神话的特洛伊木马记,以下简称木马)的英文为“Trojan Horse”,是一种基于远程控制的黑客工具(病毒程序)。虽然,现在有很多杀毒软件都可以自动清除大部分木马,但是并不能防范新出现的木马程序。因此,查杀木马最关键的还是要知道木马的工作原理。

常见的普通木马一般是客户端/服务端(Client/Server,C/S)模式,客户端/服务端之间采用TCP/UDP的通信方式,攻击者控制的是相应的客户端程序,服务器端程序是木马程序,木马程序被植入到毫不知情的用户的计算机中。以“里应外合”的工作方式工作,服务程序通过打开特定的端口并进行监听,这些端口好像“后门”一样,所以,也有人把特洛伊木马叫做后门工具。攻击者所掌握的客户端程序向该端口发出请求(Connect Request),木马便与其连接起来。攻击者可以使用控制器进入计算机,通过客户端程序命令达到控制服务器端的目的。这类木马的一般工作模式如图2-81所示。

图像说明文字

图2-81 木马的工作原理

2.6.2 木马的分类

木马的数量庞大,种类也是多种多样,常见的木马可以分为以下几类。

1.远程访问型木马

这是目前使用最广泛的木马,这类木马可以远程访问被攻击者的硬盘、进行屏幕监视等。远程访问型木马使用简单,只需运行服务器端程序,让客户端知道服务器端的IP地址,就可以实现远程控制。

2.键盘记录木马

这种木马非常简单,只做一件事情,即记录被攻击者的键盘敲击,并且在LOG文件里查找密码。这种特洛伊木马随着Windows的启动而启动,有在线和离线记录这样的选项,即分别记录在线和离线状态下敲击键盘的情况。从这些按键中很容易得到密码等有用信息。

3.密码发送型木马

这种木马的目的是找到隐藏的密码,并且在被攻击者不知道的情况下,将其发送到指定的信箱。

4.破坏型木马

这种木马的目的是破坏并且删除文件,可以自动地删除计算机上的DLL、INI、EXE文件。这种木马非常危险,一旦被感染,就会严重威胁到计算机的安全。

5.代理木马

黑客在入侵的时候会掩盖自己的足迹,谨防其他人发现自己的身份。因此,黑客会找到一台毫不知情的计算机,为其种上代理木马,变成攻击者发动攻击的跳板。这就是代理木马最重要的任务。通过代理木马,攻击者可以在匿名的情况下使用Telnet、ICQ、IRC等程序,从而隐蔽自己的踪迹。

6.FTP木马

这种木马的唯一功能就是打开21端口,等待用户连接。现在新FTP木马还加上了密码功能,这样,只有知道密码的攻击者才能进入对方计算机。

7.下载型木马

这种木马的功能是从网络上下载其他病毒程序或安装广告软件。由于该类木马的容量一般很小,因此更容易传播,传播速度也更快。通常功能强大、体积也很大的后门类病毒(如“灰鸽子”),传播时都单独编写一个小巧的下载型木马,用户中毒后会把后门主程序下载到本机运行。

以上是从木马的功能上进行的分类,现在木马的技术在不断提高,从其他角度来分,还有很多新型木马。例如,从实现技术上分类的DLL木马、反弹端口型木马等,从感染途径上分类的网游木马、网银木马、通信软件木马等。

2.6.3 木马的工作过程

不论哪种木马,黑客进行网络入侵时,从过程上看大致都可以分为5个步骤。

1.配置木马

一般来说,一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两个功能。

(1)木马伪装。木马配置程序为了在服务器端尽可能隐藏好,会采用多种伪装手段,如修改图标、捆绑文件、定制端口、自我销毁等。

(2)信息反馈。木马配置程序会根据信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址、IRC号、ICQ号等。

2.传播木马

配置好木马后,就要传播出去。木马的传播方式主要有:控制端通过E-mail将木马程序以附件的形式夹在邮件中发送出去,收信人只要打开附件就会感染木马;软件下载,一些非正规的网站以提供软件下载为名义,将木马捆绑在软件安装程序上,下载后,只要运行这些程序,木马就会自动安装;通过QQ等通信软件进行传播;通过病毒的夹带把木马传播出去。

3.启动木马

木马程序传播给对方后,接下来是启动木马。一种方式是被动地等待木马或捆绑木马的程序被主动运行,这是最简单的木马。大多数首先将自身复制到Windows的系统文件夹中(C:\Windows或C:\Windows\system32目录下),然后写入注册表启动组,非启动组中设置好木马的触发条件,这样木马的安装就完成了。一般系统重新启动时木马就可以启动,然后木马打开端口,等待连接。

4.建立连接

一个木马连接的建立必须满足两个条件:一是服务器端已安装了木马程序;二是控制端、服务器端都要在线。在此基础上控制端可以通过木马端口与服务器端建立连接。控制端可以根据提前配置的服务器地址、定制端口来建立连接;或者是用扫描器,根据扫描结果中检测哪些计算机的某个端口开放,从而知道该计算机里某类木马的服务器端在运行,然后建立连接;或者根据服务器端主动发回来的信息知道服务器端的地址、端口,然后建立连接。

5.远程控制

前面的步骤完成之后,就是最后的目的阶段,对服务器端进行远程控制,实现窃取密码、文件操作、修改注册表、锁住服务器端及系统操作等。

2.6.4 传统木马演示实验

冰河是国内非常有名的木马,虽然许多杀毒软件可以将其查杀,但现在网上又出现了许多冰河变种程序,这里介绍的是V8.4。

1.配置服务器程序

冰河的客户端程序为G-client.exe,在冰河的控制端可以对服务器端进行配置。图2-82所示的就是冰河的安装路径、文件名称、监听端口等内容。

binghe3

图2-82 冰河服务器端参数的设置

冰河在注册表设置的自我保护的内容也就是查杀时所寻找的内容。配置完后生成服务器端程序G-server.exe。服务器端一旦运行G-server,该程序就会按照前面的设置在“C:\WINNT\system32”目录下生成Kernel32.exe和sysexplr.exe,并删除自身。

Kernel32.exe在系统启动时自动加载运行,在注册表中sysexplr.exe和TXT文件关联,如图2-83所示。

binghe4

图2-83 冰河服务器端启动、关联参数的设置

2.传播木马

通过邮件、QQ等方式传播该木马服务器程序,并诱惑被攻击者运行该程序。

3.客户端(控制端)操作

冰河的客户端界面如图2-84所示,冰河的功能是自动跟踪目标机屏幕变化、记录各种口令信息、获取系统信息、限制系统功能、远程文件操作、注册表操作、发送信息等。

binghe1

图2-84 冰河客户端界面

4.冰河木马的防御

冰河是传统木马,中了该木马以后,计算机就会主动打开端口等待控制端来连接。这样很容易被发现,而且对于安装了防火墙的计算机来说,会阻止该计算机主动对外的连接,所以安装防火墙是对传统木马有效防御。

5.冰河木马的手动清除

相对应的冰河木马手动清除方法如下。

(1)关闭“Kernel32.exe”进程。

(2)删除“C:\WINNT\system32”下的“Kernel32.exe”和“Sysexplr.exe”文件。

(3)冰河会驻留在注册表“HKEY_LOCAL_MACHINE\software\microsoft\windows\ Current Version\ Run”下,键值为“C:\ WINNT \system32\Kernel32.exe”,将其删除即可。

(4)在注册表的“HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentVersion\ Runservices”下,还有键值为“C:\ WINNT \system32 \Kernel32.exe”的,也要将其删除。

(5)修改注册表“HKEY_CLASSES_ROOT\txtfile\shell\open\command”下的默认值,由中木马后的“C:\ WINNT \system32\Sysexplr.exe%1”改为正常情况下的“C:\ WINNT \notepad.exe %1”,即可恢复TXT文件关联功能。

2.6.5 反弹端口木马演示实验

普通木马的服务程序打开特定的端口监听,攻击者通过所掌握的客户端程序发出请求,木马便与其连接起来。可见,此类木马的最大弱点在于攻击者必须和用户主机建立连接,木马才能起作用。所以在对外部连接审查严格的防火墙下,这样的木马很难工作起来。

反弹端口型木马分析了防火墙的特性后发现:防火墙对于连入的连接往往会进行非常严格的过滤,但是对于连出的连接却疏于防范。于是,与一般的木马相反,客户端(控制端)打开某个监听端口,反弹端口型木马的服务端(被控制端)主动与该端口连接,客户端(控制端)使用被动端口,木马定时监测控制端的存在,发现控制端上线,立即弹出端口主动连接控制端打开的主动端口。由于反弹式木马使用的是系统信任的端口,系统会认为木马是普通应用程序,而不对其连接进行检查。防火墙在处理内部发出的连接时,就会信任反弹木马。例如,控制端的被动端口一般为80,这样,即使用户使用端口扫描软件检查端口,发现的也是类似“TCP UserIP:1026 ControllerIP:80 ESTABLISHED”的情况,稍微疏忽一点,就会以为是自己在浏览网页。下面以“灰鸽子”为例介绍此类木马的工作过程。

1.配置服务器程序

打开“灰鸽子”客户端程序“H_client.exe”,按照图2-85所示开始配置服务器端程序。

hgz0

图2-85 配置“灰鸽子”服务器程序

按照图2-86所示设置参数,其中10.3.40.55(计算机名“405-T”)是客户端(控制端),80是控制端打开的监听端口。从中可以看出“灰鸽子”木马的伪装,包括进程名称、设置为服务启动、显示的图标等。

灰鸽子

图2-86 灰鸽子服务器程序端参数的设置

在客户端的菜单中选择【设置】→【系统设置】→【端口设置】可以设置自动上线的端口,如图2-87所示。设置这些端口之后,意味着客户端的这些端口处于监听状态。这里设置的是80端口。

hgz-3

图2-87 配置灰鸽子服务器程序端参数

2.传播木马

通过邮件、QQ等方式传播该木马服务器程序,并诱惑被攻击者运行该程序。

3.客户端(控制端)操作

“灰鸽子”的客户端界面如图2-88所示,服务器端运行后会自动上线。从图2-88中可以看到10.3.40.1和10.3.40.2已经上线。“灰鸽子”有获取系统信息、限制系统功能、屏幕捕获、文件管理、远程控制、注册表管理、文件传输、远程通信等功能。

hgz-5

图2-88 “灰鸽子”客户端

图2-89所示的是“灰鸽子”客户端端口的情况,本地打开的是HTTP端口。图2-90所示是“灰鸽子”服务器端端口的情况,在服务器端看来就是在连接405-T的80端口,与访问某台Web服务器一样。

hgz-cmd4-4

图2-89 “灰鸽子”客户端端口的情况

hgz-k-cmd-2

图2-90 配置“灰鸽子”服务器端端口的情况

现在个人版防火墙在防范反弹式木马上都有有效的方法:采用应用程序访问网络规则,专门防范存在于用户计算机内部的各种不法程序对网络的应用,从而可以有效地防御“反弹式木马”等骗取系统合法认证的非法程序。当用户计算机内部的应用程序访问网络时,必须经过防火墙的内墙审核,合法的应用程序被审核通过,非法的应用程序将会被个人版防火墙所拦截。

2.6.6 木马的隐藏与伪装方式

1.木马与远程控制软件的区别

木马的目的就是窃取他人的信息,因此隐蔽性是其首要的特征。因为木马是非法进入系统的,必须隐藏在系统之中,所以木马设计者会想尽一切办法不让使用者发现该程序。这也是木马和远程控制软件的区别。

木马和远程控制的原理是一样的,都是通过远程控制功能控制目标机器,基本的功能也差不多,但是远程控制软件的服务器端不隐藏,运行时有很明显的标志。例如,常用的远程控制软件PC anywhere等在服务器端运行时,客户端与服务器端连接成功后,服务器端的任务栏上会出现很醒目的提示标志。木马类的软件的服务器端在运行时,不可能出现提示,而是应用各种手段隐藏自己。

2.木马文件的隐藏与伪装

(1)文件的位置。木马的服务器程序文件的一般位置是在“C:\WINNT”和“C:\WINNT\ system32”中。因为Windows的一些系统文件在这两个位置,所以许多人不敢随意删除这里的文件。如果误删了文件,计算机可能崩溃。

(2)文件的属性。把文件的属性设置为隐藏,这是最简单、最初级的隐藏方法。

(3)文件的捆绑。这种伪装手段是将某个可执行程序和木马捆绑成一个程序,而且会自动更改图标,使捆绑后的程序和捆绑前的程序图标一样,做到天衣无缝。执行捆绑后的程序就等于同时执行了两个程序。被捆绑的文件一般是可执行文件(即EXE、COM之类的文件),网上有各种各样的文件捆绑工具。

(4)文件的名字。有些木马是独立的文件,经常使用的是常见的文件名或扩展名,或者仿制一些不易被人区别的文件名。例如,冰河木马的文件名是“kernl32.exe”,而Windows系统本身正常的文件名就有“kernel32.dll”。木马SubSeven1.5版本服务器的文件名是“C:\WINNT\window.exe”,只比正常的文件名少一个字母“s”。“WAY无赖小子”的服务端进程名称为“msgsvc.exe”,与系统基本进程“msgsrv32.exe”类似。例如,字母“o”与数字“0”,如果不仔细留意是很难被人发现的。

(5)文件的扩展名。把可执行文件伪装成图片或文本文件,把文件名改为“*.jpg.exe”,由于Windows的默认设置是“不显示已知的文件后缀名”,文件将会显示为“*.jpg”,一旦执行这个文件就会中木马。在程序中把图标改成Windows的默认图片图标,伪装得就更像了。

(6)文件的图标。现在已经有些木马可以将木马服务器端程序的图标改成HTML、TXT、ZIP、JPG等各种文件的图标。

3.木马运行中的隐藏与伪装

(1)在任务栏里隐藏。这是最基本的隐藏方式,也是所有木马的特征。在任务栏中隐藏是很容易实现的,以VB为例,只要把from的Visible属性设置为“False”,ShowInTaskBar设为“False”,程序就不会出现在任务栏中。

(2)进程隐藏。按【Ctrl+Alt+Del】组合键打开任务管理器,查看正在运行的进程,可以发现木马的进程,所以木马需要隐藏进程。

① 系统服务:木马把自己设为“系统服务”就不会出现在任务管理器里。现在添加系统服务的工具很多,最典型的就是net service,还可以手动添加系统服务。

② DLL木马:DLL(Dynamic Link Library)是Windows系统的另外一种可执行文件,由多个功能函数构成,不能独立运行,必须由其他进程加载并调用,也就是说“*.dll”运行时是直接挂在调用程序的进程里,并不会另外产生进程。如果木马是一个“*.dll”文件,在任务管理器中就看不到了。

③ CPL木马:每一个CPL文件都对应【控制面版】中的一个选项,由于CPL文件的特殊性,需要使用RunDll32.exe来启动该文件,如desk.cpl对应【桌面属性】。例如,选择【开始】→【运行】执行后,输入“RunDll32 shell32.dll,Control_RunDLL desk.cpl,,0”(注意是两个逗号),按【回车】键后,将打开【显示属性】对话框的【背景】窗口。CPL文件可以像“*.dll”文件那样被其他进程加载并调用,如果木马是一个“*.cpl”文件,在任务管理器中可以看到RunDll32.exe进程,而RunDll32.exe进程又是常见的进程,看不出木马痕迹。

(3)隐藏端口。利用端口反弹木马,如前面讲到的灰鸽子木马。

2.6.7 木马的启动方式

木马传播完之后,能够随系统启动时自动运行。只有打开端口,木马才能够起到作用,因此木马必须找一个既安全又能在系统启动时自动运行的地方。

木马一般会在以下3个地方驻留,即启动配置文件、启动组、注册表,因为计算机启动的时候需要装载这3个文件。也有捆绑方式、通过超级链接等启动的木马,下面分别进行介绍。

1.配置文件中启动

(1)在Win.ini中。一般情况下,“C:\WINNT\Win.ini”的“windows”字段中启动命令“load=”和“run=”的后面是空白的,如果后面有程序,如“run=C:\ WINNT\file.exe load=C:\ WINNT\file.exe”,那么这个file.exe很可能是木马。

(2)在System.ini中。“C:\WINNT\ System.ini”的“boot”字段,正常为“shell=Explorer.exe”,Explorer.exe是启动桌面,如果不是这样,如“shell=Explorer.exe file.exe”,这里的“file.exe”就可能是木马服务器端程序。另外,在System.ini中的“386Enh”字段中,要注意检查“driver=路径\程序名”,这里也有可能被木马所利用。另外,在System.ini中的“mic”“drivers”“drivers32”等3个字段起到加载驱动程序的作用,但也是增添木马程序的好场所。

2.在启动组中启动

启动组也是木马可以藏身的地方,因为这里可以自动加载运行。在【开始】→【程序】→【附件】→【系统工具】→【系统信息】→【软件环境】→【启动程序】菜单中,查看随系统启动的程序,如图2-91所示。

启动组

图2-91 木马在启动程序中的设置

3.在注册表中启动

(1)在注册表的启动项中。通过regedit命令打开注册表编辑器,木马在注册表中的“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”(RunOnce、RunOnceEx、RunServices),如图2-92所示,另外,还有“HKEY_CURRENT_USER\SOFTWARE\ Microsoft\Windows\CurrentVersion\Run”,查看这些键值中有没有不熟悉的文件,一般扩展名为EXE,如netspy.exe或其他可疑的文件名,如果有,可能就是木马。

木马注册表

图2-92 木马在注册表中的设置

(2)文件关联。有些木马通过修改文件打开关联来达到加载的目的,当打开一个已修改了打开关联的文件时,木马就开始运作。例如,冰河木马就是利用文本文件(“*.txt”)这个最常见但又最不引人注目的文件格式关联来加载的,当有人打开文本文件时,就会自动加载冰河木马,如图2-93所示。

木马注册表冰河

图2-93 冰河木马在启动程序中的设置

4.捆绑式启动

通过捆绑工具将木马和可执行程序捆绑成一个程序,执行捆绑后的程序就同时执行了两个程序,木马被激活。如果捆绑到系统文件上,那么每一次Windows启动均会启动木马。例如,PhAse 1.0版本和NetBus 1.53版本就可以捆绑到启动程序上,也可以捆绑到一般程序的常用程序上。如果捆绑到一般的程序上,启动是不确定的。捆绑方式是一种手动的安装方式,一般捆绑的是非自动方式启动的木马。捆绑木马可以由黑客确定捆绑方式、捆绑位置、捆绑程序等,位置的多变使木马有很强的隐蔽性。

5.在超链接中启动

有些木马是在网页上放置的恶意代码,使用一些诱人的语句,如免费软件下载,设置成超链接,引诱用户,单击超链接后就自动下载并运行。这就是网页木马。

2.6.8 木马的检测

在上网过程中和进行一些计算机正常使用时,计算机速度明显发生变化、硬盘在不停地读写、鼠标不受控制、键盘无效、一些窗口在未得到允许的情况下被关闭、新的窗口被莫名其妙地打开。这一切的不正常现象都可能是木马客户端在远程控制计算机,可以通过下面的方法检测。

1.查看端口

木马启动后自然会打开端口,可以通过检查端口的情况来查看有无木马,但是这种方法无法查出“驱动程序/动态链接”类型木马。

(1)netstat命令。netstat是Windows自带的网络命令,在DOS窗口或命令行下运行,可以使用户了解到自己的主机与Internet相连接的情况。可以显示当前正在活动的网络连接的详细信息,如图2-94所示。例如,7626端口打开,可能是有名的冰河木马。

ck1

图2-94 用netstat查看端口状态

① LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。

② ESTABLISHED表示建立连接,即两台机器正在通信。

③ TIME_WAIT表示结束连接,说明该端口曾经有过访问,但访问结束了。

(2)专用工具。通过专用工具,如Fport、TCPView等,都可以检查端口的情况及相关进程的详细情况,如图2-95所示。

tcpview

图2-95 用TCPView查看端口、进程状态

2.检查注册表

上面在讨论木马的启动方式时已经提到,木马可以通过注册表启动,那么,同样可以通过检查注册表来发现木马在注册表里留下的痕迹。

3.检查DLL类木马

DLL类木马在进程中看不到,图2-96所示为借助IceSword(冰刃)工具查出DLL类木马。例如,efccywt.dll是一个木马文件,插入两个正常的进程中。

dll木马-1

图2-96 用IceSword查看DLL类木马

4.检查配置文件

可以按照上面讨论木马在配置文件中的设置来发现木马。

2.6.9 木马的防御与清除

木马一般都是通过E-mail和文件下载传播的,因此,要提高防范意识,不要打开陌生人邮件中的附件。另外,建议大家到正规网站去下载软件,这些网站的软件更新快,并且大部分都经过测试,可以放心使用。假如需要下载一些非正规网站上的软件,注意不要在在线状态下安装软件,一旦软件中含有木马程序,就有可能导致系统信息的泄露。

一旦发现了木马,最简单的方法就是使用杀毒软件。现在国内的杀毒软件都推出了清除某些特洛伊木马的功能,如金山毒霸、瑞星、KV2008等,可以不定期地在脱机的情况下进行检查和清除。另外,有的杀毒软件还提供网络实时监控功能。这一功能可以在黑客从远端执行用户机器上的文件时提供报警或让执行失败,使黑客向用户机器上传可执行文件后无法正确执行。

新的木马不断出现,旧的木马变种也很快,有些需要手动查找并清除。有些木马程序有隐藏属性,必须在Windows窗口中选择【查看】→【文件夹选项】→【查看】→【隐藏文件】→【显示所有文件】命令,才能看到木马程序。由于木马种类繁多,各有特点,删除的方法也不尽相同,在此不一一详述。

以前,我们说到木马,大多是指那些盗号木马,盗号木马以窃取网游玩家的虚拟财产为目标。现在,随着互联网商业应用的不断拓展,病毒木马作者已经不屑于盗取虚拟财产。很多正常商业网站或商业软件的推广会提供丰厚的佣金,病毒木马传播者的目标就是强行修改用户系统配置,为这些商业网站带流量,或者使用流氓手段推广商业软件,再从商业公司赚取推广费。

 拒绝服务攻击

【实验目的】

通过练习使用DoS/DDoS攻击工具对目标主机进行攻击,理解DoS/DDoS攻击及其实施过程;掌握检测和防范DoS/DDoS攻击的措施。

【实验原理】

拒绝服务攻击的工作原理(参考2.7.2小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,两台预装Redhat Linux的主机,通过网络相连。

软件工具:SYN-Killer、SYN、独裁者Autocrat、TFN。

【实验内容】

任务1:拒绝服务攻击工具SYN-Killer、SYN的使用(参考2.7.3小节)。

任务2:分布式拒绝服务攻击工具独裁者的使用(参考2.7.5小节)。

任务3:分布式拒绝服务攻击工具TFN的使用(参考2.7.5小节)。

2.7.1 拒绝服务攻击概述

1.拒绝服务攻击的定义

拒绝服务(Denial of Service,DoS)攻击从广义上讲可以指任何导致网络设备(服务器、防火墙、交换机、路由器等)不能正常提供服务的攻击,现在一般指的是针对服务器的DoS攻击。这种攻击可能是网线被拔下或者网络的交通堵塞等,最终的结果是正常用户不能使用所需要的服务。

从网络攻击的各种方法和所产生的破坏情况来看,DoS是一种很简单但又很有效的进攻方式。尤其是对于ISP、电信部门,还有DNS服务器、Web服务器、防火墙等来说,DoS攻击的影响都是非常大的。

2.DoS攻击的目的

DoS攻击的目的是拒绝服务访问,破坏组织的正常运行,最终会使部分Internet连接和网络系统失效。有些人认为DoS攻击是没用的,因为DoS攻击不会直接导致系统渗透。但是,黑客使用DoS攻击有以下目的。

(1)使服务器崩溃并让其他人也无法访问。

(2)黑客为了冒充某个服务器,就对其进行DoS攻击,使之瘫痪。

(3)黑客为了启动安装的木马,要求系统重新启动,DoS攻击可以用于强制服务器重新启动。

3.DoS攻击的对象与工具

DoS攻击的对象可以是节点设备、终端设备,还可以针对线路。对不同的对象所用的手段不同,例如,针对服务器类的终端设备可以攻击操作系统,也可以攻击应用程序。对于手机类的产品,可以利用APP(Application,手机软件)攻击。针对节点设备,路由器、交换机等,可以攻击系统的协议。针对线路,可以利用蠕虫病毒。

DoS攻击的对象,根据业务类型还可以分为:网络服务提供商(Internet Service Provider,ISP)和应用服务提供商(Application Service Provider,ASP),针对不同的提供商采取的手段也不同。

随着网络技术的发展,能够连接网络的设备越来越多,DoS攻击的对象可以是:服务器、PC、Pad、手机、智能电视、路由器、打印机、摄像头,反过来这些也都能被DDoS攻击所利用,成为攻击的工具。

4.DoS攻击的事件

近年来,DoS攻击事件层出不穷,影响面广,据美国最新的安全损失调查报告,全球DDoS(Distributed Denial of Service,分布式拒绝服务)攻击所造成的经济损失已经跃居第一。

2002年10月21日,美国和韩国的黑客对全世界13台DNS服务器同时进行DDoS攻击。受到攻击的13台主服务器同时遇到使用ICMP(Internet Control Message Protocol,internet控制报文协议)出现信息严重“堵塞”的现象,该类信息的流量短时间内激增到平时的10倍。这次攻击虽然是以全部13台机器为对象的,但受影响最大的是其中的9台。DNS服务器在Internet上是不可缺少的,如果这些机器全部陷入瘫痪,那么整个Internet都将瘫痪。

2009年5月19日,由于暴风影音软件而导致的全国多个省份大范围网络故障的“暴风门”事件,也是一次典型的DDoS事件。事件的起因是北京暴风科技公司拥有的域名baofeng.com的DNS被人恶意大流量DDoS攻击,承担dnspod.com网络接入的电信运营商断掉了其网络服务。由于暴风影音的安装量巨大和软件网络服务的特性(部分在线服务功能必须基于baofeng.com域名的正常解析),海量暴风用户向本地域名服务器(运营商的DNS服务器)频繁地发起DNS解析请求,这些大量的解析请求,客观上构成了对电信DNS服务器的DDoS攻击,导致各地电信DNS服务器超负荷瘫痪而无法提供正常服务,从而使更大范围的用户无法上网。

2014年6月20日起,香港公投网站PopVote陆续遭遇超大规模的DDoS攻击,攻击流量为史上第二高,连Amazon或Google都挡不住,最后靠着多家网络业者联手,才撑过了这段投票时间。2015年某网络游戏进行上线公测,公测前10分钟,主力机房遭遇DDoS攻击,带宽瞬间被占满,上游路由节点被打瘫,游戏发行商被迫宣布停止公测。

2.7.2 拒绝服务攻击原理

DoS攻击就是想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。

DoS的攻击方式有很多种,根据其攻击的手法和目的不同,有两种不同的存在形式。

一种是以消耗目标主机的可用资源为目的,使目标服务器忙于应付大量非法的、无用的连接请求,占用了服务器所有的资源,造成服务器对正常的请求无法再做出及时响应,从而形成事实上的服务中断。这是最常见的拒绝服务攻击形式之一。这种攻击主要利用的是网络协议或者是系统的一些特点和漏洞进行攻击,主要的攻击方法有死亡之Ping、SYN Flood、UDP Flood、ICMP Flood、Land、Teardrop等。针对这些漏洞的攻击,目前在网络中都有大量的工具可以利用。

另一种拒绝服务攻击以消耗服务器链路的有效带宽为目的,攻击者通过发送大量的有用或无用数据包,将整条链路的带宽全部占用,从而使合法用户请求无法通过链路到达服务器。例如,蠕虫对网络的影响。具体的攻击方式很多,如发送垃圾邮件,向匿名FTP塞垃圾文件,把服务器的硬盘塞满;合理利用策略锁定账户,一般服务器都有关于账户锁定的安全策略,某个账户连续3次登录失败,那么这个账号将被锁定。破坏者伪装一个账号,去错误地登录,使这个账号被锁定,正常的合法用户则不能使用这个账号登录系统了。

下面介绍几种常见的拒绝服务攻击。

1.死亡之Ping

死亡之Ping(Ping of Death)是最古老、最简单的拒绝服务攻击,发送畸形的、超大尺寸的ICMP数据包,如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

此外,向目标主机长时间、连续、大量地发送ICMP数据包,最终也会使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使目标主机耗费大量的CPU资源。

正确地配置操作系统与防火墙、阻断ICMP及任何未知协议,都可以防止此类攻击。

2.SYN Flood攻击

SYN Flood攻击利用的是TCP缺陷。通常一次TCP连接的建立包括3个步骤:客户端发送SYN包给服务器端;服务器分配一定的资源并返回SYN/ACK包,并等待连接建立的最后的ACK包;最后客户端发送ACK报文。这样两者之间的连接建立起来,并可以通过连接传送数据。攻击的过程就是疯狂地发送SYN报文,而不返回ACK报文。当服务器未收到客户端的确认包时,规范标准规定必须重发SYN/ACK请求包,一直到超时,才将此条目从未连接队列删除。SYN Flood攻击耗费CPU和内存资源,而导致系统资源占用过多,没有能力响应其他操作,或者不能响应正常的网络请求,如图2-97所示。

图像说明文字

图2-97 SYN攻击

由于TCP/IP相信报文的源地址,攻击者可以伪造源IP地址,如图2-98所示,为追查造成很大困难。如果想要查找,必须通过所有骨干网络运营商的路由器,逐级地向上查找。

SYN Flood攻击除了能影响主机外,还危害路由器、防火墙等网络系统,事实上SYN Flood攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。

图像说明文字

图2-98 伪装源IP的SYN攻击

SYN Flood攻击实现起来非常简单,网上有大量现成的SYN Flood攻击工具,如xdos、Pdos、SYN-Killer等。以SYN-Killer为例,选择随机的源地址和源端囗,并填写目标机器地址和TCP端囗,激活运行,很快就会发现目标系统运行缓慢。UDP Flood、ICMP Flood攻击的原理与SYN Flood攻击类似。

关于SYN Flood攻击的防范,目前许多防火墙和路由器都可以做到。首先关掉不必要的TCP/IP服务,对防火墙进行配置,过滤来自同一主机的后续连接,然后根据实际的情况来判断。

3.Land攻击

Land攻击是打造一个特别的SYN包,包的源IP地址和目标IP地址都被设置成被攻击的服务器地址。这时将导致服务器向自己的地址发送SYN/ACK消息,结果这个地址又发回ACK消息,并创建一个空连接,每一个这样的连接都将保留直到超时。

不同的系统对Land攻击的反应不同,许多UNIX系统会崩溃,而Windows NT会变得极其缓慢(大约持续5分钟)。有人专门用Land对某种路由器进行了测试,结果发现,当对23端口进行攻击时,路由器则不能连到本地网或外网。路由器前面面板上的灯也停止了闪烁,用Ping没有响应,Tenlnet命令也无效。此时,唯一的选择便是硬重启。

4.Teardrop攻击

Teardrop(泪珠)攻击的原理是,IP数据包在网络传递时,数据包可以分成更小的片段,攻击者可以通过发送两段(或者更多)数据包来实现。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。

关于Land攻击、泪珠攻击的防范,系统打最新的补丁即可。

5.CC攻击

前面讲的几种DoS攻击是针对TCP/IP协议的,现在说说CC(Challenge Collapsar)攻击。Collapsar(黑洞)是绿盟科技的一款抗DDoS产品品牌,在对抗拒绝服务攻击的领域内具有比较高的影响力和口碑。因此,此攻击更名为Challenge Collapsar,表示要向黑洞发起挑战。

CC攻击跟DDoS攻击本质上是一样的,都是以消耗服务器资源为目的。目前看来,它主要针对Web应用程序比较消耗资源的地方进行疯狂请求,如论坛中的搜索功能,如果不加以限制,任由人搜索,普通配置的服务器在几百个并发请求下,MYSQL服务性能就下降很多。CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停地进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。

假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说它一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60秒,那么使用CC模拟120个用户并发连接,经过1分钟,服务器被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。这时候服务器会开始丢连接,但是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了。这样服务器达到了超级繁忙状态,从而达到了DoS攻击的目的。

每个攻击源攻击业务的流量和频率与相对真实业务相差无几,也没有携带具有明显特征的User-Agent或者Referer,因此,在这种场景下,无法通过行为特征或字段特征的方式快速区分出攻击流量,对攻击防护也无从下手。

2.7.3 拒绝服务攻击演示实验

【例2-9】SYN-Killer攻击演示实验

SYN-Killer是一个图形截面的攻击工具,首先确认攻击的目标主机开放的端口。本实验中目标主机是10.1.14.142,开放的端口是80,SYN-Killer工具可以伪造源IP地址,如图2-99所示。

synkiller_1

图2-99 SYN-Killer攻击

如图2-100所示,在被攻击的目标主机上通过Wireshark截取到的数据包中可以看到,只在短短的几秒钟内就收到13209个SYN包,而且源IP地址是伪造的127.0.0.1。

synkiller_3

图2-100 SYN-Killer攻击的数据包

【例2-10】syn.exe攻击演示实验

syn.exe是命令行的攻击工具,同样可以伪造源IP地址,具体参数如图2-101所示。

syn_1

图2-101 syn.exe攻击图图

被攻击的目标主机通过Wireshark同样截取到大量的SYN包,通过任务管理器观察系统性能的变化:CPU的利用率从10%上升到100%(见图2-102),可以看出SYN-killer攻击的危害程度。这个数据是一对一攻击的结果。如果是多对一攻击,将会使被攻击的目标蓝屏。多对一的攻击方式也就是下面所要讲的分布式拒绝服务攻击。

synkiller_4

图2-102 SYN攻击后系统性能变化

2.7.4 分布式拒绝服务攻击原理

分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是一种基于DoS的特殊形式的攻击,是一种分布、协作的大规模攻击方式,主要攻击比较大的站点,如商业公司、搜索引擎和政府部门的站点。

早期的拒绝服务攻击主要是针对处理能力比较弱的单机,如PC,或是窄带宽连接的网站,对拥有高带宽连接、高性能设备的网站影响不大,但在1999年底,出现了DDoS攻击。

与早期的DoS攻击相比,DDoS借助数百台、甚至数千台被植入攻击守护进程的攻击主机同时发起进攻,如图2-103所示。这种攻击对网络服务提供商的破坏力是巨大的。下面介绍DDoS攻击的Smurf方法。

图像说明文字

图2-103 DDoS攻击

Smurf是一种简单但有效的DDoS攻击技术,是以最初发动这种攻击的程序名Smurf来命名的。这种攻击方法结合使用了IP欺骗和ICMPecho方法,使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。

当某台机器使用广播地址发送一个ICMPecho请求包时(如Ping),一些系统会回应一个ICMPecho响应包,也就是说,发送一个包会收到许多响应包。Smurf攻击就是使用这个原理来进行的,当然,还需要一个假冒的源地址。也就是说,在网络中发送源地址为要攻击主机的地址,目的地址为广播地址的包,会使许多系统响应发送大量的信息给被攻击主机(因为其地址被攻击者假冒了)。使用网络发送一个包而引出大量响应的方式也被叫做“放大器”。

Smurf为了能工作,必须要找到攻击平台。这个平台就是路由器上启动了IP广播功能。这个功能允许Smurf发送一个伪造的Ping信息包,然后将其传播到整个计算机网络中。为了保护内网,可以使用路由器的访问控制列表,保证内部网络中发出的所有信息都具有合法的源地址,并且要将所有路由器上IP的广播功能都禁止,以防止这种攻击。另一个最简单的方法就是对边界路由器的回音应答(Echo Reply)信息包进行过滤。

UDP Flood和 TCP Flood仍旧是网站的最大威胁。从另一方面来说,随着越来越多的网站追求数据的安全性,而采用HTTPS协议进行流量传输,网站遭受到HTTPS/CC攻击的事件数量随之上升。因为对HTTPS协议的处理相对HTTP会占用消耗的资源,所以无论是网站运营者还是安全服务商在面对HTTPS/CC资源消耗型攻击时,防护能力与效果会面临巨大挑战。

近期,DDoS攻击事件仍然很多,其中阿里云云盾防御的最大攻击峰值流量为477Gbit/s,他们预测2016年整个互联网可能会发生流量在800Gbit/s-1TGbit/s之间的攻击事件。以商业竞争或敲诈勒索为背景的DDoS攻击威胁形势仍将严峻。游戏仍旧是DDoS事件高发行业。来自移动终端APP的应用层的DDoS攻击将迅速崛起。

DDoS攻击利用了TCP/IP本身的弱点,攻击技术不断翻新及其所针对的协议层的缺陷短时间无法改变,因此成了流传最广、最难防范的攻击方式之一。改进某些的系统和网络协议是提高网络安全的根本途径。

2.7.5 分布式拒绝服务攻击演示实验

【例2-11】独裁者Autocrat攻击演示实验。

独裁者Autocrat是黑客常用的DDoS攻击工具,其是一款基于TCP/IP协议的DDoS分布式拒绝服务攻击工具,运用远程控制方式联合多台服务器进行DDoS攻击。

下载解压后包括5个文件,如图2-104所示,其中,Server.exe是服务器端(攻击代理程序),Client.exe是控制端,用来操作Autocrat。

ddos-1

图2-104 Autocrat的文件

实验步骤如图2-105所示,第一步扫描左边的主机,获得Client能控制的所有主机列表;第二步检查代理主机的状态;第三步确定攻击的目标IP、目标端口,攻击的目标源IP、源端口可以任意填写;第四步选择攻击的方式,本实验中选择的是SYN攻击。

ddos-3-1

图2-105 Autocrat的Client

【例2-12】TFN攻击演示实验。

在近几年来,DDoS攻击的工具不断增加,而且许多集中了各种攻击程序,形成了一个名为“Denial of Service Cluster”(拒绝服务集群)的软件包。TFN(Tribe Flood Network)和TFN2K工具就是这样的例子。这些程序可以使分散在Internet各处的机器共同完成对一台主机攻击的操作,从而使主机看起来好像是遭到了不同位置的许多主机的攻击。这些分散的机器由几台主控制机操作,进行多种类型的攻击,如UDPFlood、SYN Flood、ICMPecho请求及ICMP广播等。类似的工具包还有trinoo、Stacheldraht等。

下面通过演示实验介绍TFN分布式拒绝服务攻击的过程。

(1)实验拓扑。如图2-106所示,主控端和代理端机器运行Linux操作系统。主控端安装tfn控制端,遥控并指定攻击目标,更改攻击方法;代理端是被植入并运行td进程的代理机,接受tfn的指挥,是实施攻击的真正实施者。

图像说明文字

图2-106 TFN DDoS实验拓扑

(2)tfn文件的解压、编译。在主控端Linux主机下,解压下载的tfn.tgz文件,并用make命令进行编译,如图2-107所示。

图片 104

图2-107 tfn文件的解压、编译

编译生成两个可执行文件,分别为在主控端主机运行的tfn文件和在代理端主机运行的td文件。

(3)在代理端安装td。将主控端主机编译生成的td文件,发送到代理端Linux主机上并运行,如图2-108所示。

图片 105

图2-108 在代理端主机上运行td文件

(4)代理端新建记录IP的文件。在主控端主机上,先新建一个记录代理端主机IP地址的文件,格式是每行一个IP地址。这里的IP地址代表运行了td文件的代理端主机,如图2-109所示。

图片 106

图2-109 在主控端主机上新建一个记录代理主机IP地址的文件

(5)运行tfn文件。在主控端主机上,运行tfn文件,控制代理端主机同时向目标服务器发起DDoS攻击,如图2-110所示。

图片 107

图2-110 在主控端主机上运行tfn实施DDoS攻击

从上图可以看到,主控端利用了两个代理端主机10.1.14.10和10.1.14.20,同时向目标服务器10.1.14.30的80端口发起了SYN Flood攻击。也可以使用其他参数,发起死亡之Ping、smurf等其他不同的DDoS攻击方式。

在本实验中,为了节省资源,主控端主机10.1.14.10同时也当成代理端主机使用。

(6)发现SYN同步请求包。在被攻击的目标服务器上,通过抓包,发现大量的DDoS攻击数据包——SYN同步请求包,如图2-111所示。

图片 10

图2-111 在目标服务器上捕获的DDoS攻击数据包

从图2-111可以看到,代理端主机伪造源IP地址和源端口号,向目标服务器10.1.14.30的80端口发送了大量的SYN请求数据包,形成分布式的SYN Flood攻击。进一步分析可以看到,尽管这些攻击数据包的源IP地址和源端口号是伪造的,但源MAC地址是真实的,分别来源于两台代理端主机。这就进一步说明了,DDoS攻击的真正实施者是代理端主机而非主控端主机。

(7)停止DDoS攻击。如果要停止DDoS攻击,需要在主控端主机上发送相应的tfn命令,如图2-112所示。

图片 11

图2-112 在主控端主机上停止DDoS攻击

2.7.6 冰盾防火墙的演示实验

防火墙是应用最普遍、提供最基本网络防范DDoS攻击的一种有效手段。冰盾防火墙来自IT技术世界一流的美国硅谷,由华人留学生Mr.Bingle Wang和Mr.Buick Zhang设计开发,是专门为抵御DDoS洪水攻击和防止黑客入侵而设计的专业级防火墙。该防火墙采用微内核技术实现,工作在系统的最底层,充分发挥CPU的效能,仅耗费少许内存即获得惊人的处理效能:理想条件下,100M环境可抵御25万SYN攻击包,在1000M环境可抵御160万SYN攻击包。

冰盾防火墙按照向导安装完之后,桌面有如图2-113所示的图标,如果启动不了,单击【重新启动冰盾】就可以了。

绘图9

图2-113 冰盾的安装

冰盾主界面如图2-114所示。单击【进入】按钮,可以根据网络的情况设置TCP的参数,如图2-115所示。

绘图1

图2-114 冰盾的主界面图

绘图3

图2-115 TCP/的参数的设置

冰盾还能有效地防御CC攻击,如图2-116所示。单击【编辑】按钮进入,可以根据网络的情况设置CC的参数,如图2-117所示。对于单个IP发出的多个连接,可以限制连接的数量。

绘图4

图2-116 冰盾预防CC攻击图

绘图2

图2-117 CC攻击的参数设置

冰盾防火墙还有许多其他的功能,如黑白名单、IP过滤等,在这里就不一一叙述了。

 缓冲区溢出

【实验目的】

学习缓冲区溢出的基本概念及缓冲区溢出的原理过程,掌握预防和防御缓冲区溢出的方法,并且在实际编程中严格遵循安全原则。

【实验原理】

缓冲区溢出的原理(参考2.8.2小节)。

【实验环境】

两台预装Windows 7/Windows Server 2008/2003的主机,通过网络相连。

软件工具:OllyDbg。

【实验内容】

缓冲区溢出演示实验(参考2.8.3小节)。

2.8.1 缓冲区溢出攻击概述

早在20世纪80年代初,国外就有人开始讨论缓冲区溢出(Buffer Overflow)攻击。1988年的Morris蠕虫,利用的攻击方法之一就是fingerd的缓冲区溢出,虽然那次蠕虫事件导致6000多台机器被感染,但是缓冲区溢出问题并没有得到人们的重视。

真正有教育意义的第一篇文章诞生在1996年。当时,Aleph One在Phrack杂志第49期发表的论文详细地描述了Linux系统中栈的结构和如何利用基于栈的缓冲区溢出。Aleph One的贡献还在于给出了如何写执行一个Shell的Exploit的方法,并给这段代码赋予Shellcode的名称。下面列出了近几年一些基于Windows操作系统典型的缓冲区溢出漏洞。据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。

(1)2003年的“冲击波”蠕虫病毒,是利用Windows操作系统的RPC部分在通过TCP/IP处理信息交换时存在多个远程堆栈缓冲区溢出问题引起的,溢出后可执行任意可执行代码。

(2)2004年“Microsoft Windows的JPEG处理时(GDI+)的缓冲区溢出漏洞(MS04-028)”的攻击,溢出后也是可执行任意可执行代码。

(3)2005年又出现针对“Microsoft Windows即插即用缓冲区溢出漏洞(MS05-039)”的攻击,溢出后也是可执行任意可执行代码。

(4)2006年“Microsoft Windows Server服务远程缓冲区溢出漏洞(MS06-040)”。

(5)2007年“Microsoft Windows的DNS RPC缓冲区溢出漏洞(MS07-029)”。

缓冲区溢出攻击技术已经相当成熟,是渗透测试者主要的技术手段。

2.8.2 缓冲区溢出原理

1.什么是缓冲区

Windows系统的内存结构如图2-118所示。在计算机运行时将内存划分为3个段,分别是代码段、数据段和堆栈段。

0282

图2-118 Windows系统的内存结构

(1)代码段:数据只读,可执行。代码段存放了程序的代码,在代码段中的数据是在编译时生成的二进制机器代码,可供CPU执行,在代码段一切数据不允许更改。任何尝试对该区的写操作都会导致段违法出错。

(2)数据段:静态全局变量,位于数据段,并且在程序开始运行的时候被加载。

(3)堆栈段:放置程序运行时动态的局部变量,局部变量的空间被分配在堆栈里面。

堆栈是一个后进先出(Last In First Out,LIFO)的数据结构,往低地址增长,保存本地变量、函数调用等信息。随着函数调用层数的增加,栈帧是逐块地向内存低地址方向延伸的,随着进程中函数调用层数的减少,即各函数的返回,栈帧会逐块地被遗弃,而向内存的高地址方向回缩。各函数的栈帧大小随着函数性质的不同而不等。

缓冲区是一块连续的计算机内存区域。在程序中,通常把输入数据存放在一个临时空间内,这个临时存放空间被称为缓冲区,也就是所说的堆栈段。

2.什么是缓冲区溢出

如果把1L的水注入容量为0.5L的容器中,水就会四处溢出。同理,在计算机内部,如果向一个容量有限的内存空间里存储过量数据,这时数据也会溢出存储空间。

在程序编译完以后,缓冲区中存放数据的长度事先已经被程序或者操作系统定义好,如果往程序的缓冲区写超出其长度的内容,就会造成缓冲区的溢出,覆盖其他空间的数据,从而破坏程序的堆栈,使程序转而执行其他指令。

根据被覆盖数据的位置的不同,缓冲区溢出分为静态存储区溢出、栈溢出和堆溢出等3种。这里只关心动态缓冲区的溢出问题,即基于堆栈的缓冲区溢出。下面将通过调试一个简单的溢出实例来讲解Windows缓冲区溢出的机制。

2.8.3 缓冲区溢出演示实验

本实验的演示程序如下。

/* overflow.c“Windows缓冲区溢出攻击”演示程序*/
#include <stdio.h>
#include <string.h>
char bigbuff[]="aaaaaaaaaa";     //10个a
int main()
{
  char smallbuff[5];    //只分配5Byte空间
  strcpy(smallbuff,bigbuff);
}

程序编译好以后,用OllyDbg加载上生成的overflow.exe文件,进行调试。如图2-119所示,OllDbg的左上部分是反汇编编辑窗口,灰色选择部分就是main()函数的反汇编代码。右上部分是寄存器窗口;左下部分是数据区窗口,现在00406030地址开始存放的是字符串bigbuff[]的数据,即10个a(ASIIC码61),右下部分是堆栈窗口。

overflow3

图2-119 OllyDbg反汇编信息

接下来介绍Windows平台下的溢出过程。

(1)把光标放到程序中的calloverflow位置,然后按【F4】键执行到地址0040100C(strcpy的那行),这时堆栈如图2-120所示。常用的快捷键介绍:【F4】,运行到选定的位置,作用就是直接运行到光标所在的位置处暂停;【F8】,单步步过,每按一次键,执行反汇编窗口中的一条指令,遇到CALL等子程序,不进入其代码;【F7】,单步步入,功能同【F8】类似,遇到CALL等子程序,进入后,首先会停留在子程序的第一条指令上。

over-1-1

图2-120 OllyDbg反汇编信息

堆栈内容说明如下。

图像说明文字

堆栈底部是两个压栈的参数,00406030地址里的字符串会向地址0012FF7C中复制,在堆栈内,地址“0012FF84”处原先存放了main()函数的返回地址。

(2)按【F7】键执行完strcpy()操作,此时堆栈内容变化如图2-121所示。

over-5

图2-121 OllyDbg反汇编信息

(3)执行完strcpy()函数,复制了字符串后返回地址被覆盖。smallbuff()数组理论上是分配了5个字节的空间。由于执行strcpy()函数前没有进行数组长度检查,把10个字节长的字符串复制到了8个字节的空间内。61是小写字母a的十六进制ASCII码,结果缓冲区内被字母a填满了,还溢出覆盖了紧跟着缓冲区的返回地址,现在的返回地址被覆盖为00006161,这样就造成了一次缓冲区溢出,如图2-122所示。

overflow4

图2-122 执行完RETN后显示的信息

图像说明文字不同编译器生成的可执行文件不同,实际调试时溢出的效果可能不同。

发生溢出后,进程可能的表现有3种:一是运行正常,这时,被覆盖的是无用数据,并且没有发生访问违例;二是运行出错,包括输出错误和非法操作等;第三种是受到攻击,程序开始执行有害代码,此时,哪些数据被覆盖和用什么数据来覆盖都是攻击者精心设计的。一般情况下,静态存储区和堆上的缓冲区溢出漏洞不太可能被攻击者利用,而栈上的漏洞则具有极大的危险性。

上述的缓冲区溢出例子中,只是出现了一般的拒绝服务的效果。但是,实际情况往往并不是这么简单。当黑客精心设计这一个EIP(Execute Interface Program,执行接口程序),使得程序发生溢出之后改变正常流程,转而去执行他们设计好的一段代码(也即ShellCode),攻击者就能获取对系统的控制,利用ShellCode实现各种功能,例如,监听一个端口,添加一个用户,等等。这也正是缓冲区溢出攻击的基本原理。目前流行的缓冲区溢出病毒,如“冲击波”蠕虫病毒、“震荡波”蠕虫病毒等,就都是采用同样的缓冲区溢出攻击方法对用户的计算机进行攻击的。本地缓冲区溢出比较简单,远程缓冲区溢出要复杂一些,这里就不再叙述了。

2.8.4 缓冲区溢出的预防

通过上面是演示实验,可以看到:C和C++等语言在编译的时候没有进行内存检查,即数组的边界检查和指针的引用,也就是说开发人员必须进行边界检查。可是这些事情往往被忽略。标准C库中还存在许多非安全字符串操作,包括strcpy()、sprintf()、gets()等,从而带来了很多脆弱点。这些脆弱点便成了缓冲区溢出。从软件的角度来看,目前有4种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。

(1)通过操作系统使缓冲区不可执行,从而阻止攻击者植入攻击代码。

(2)强制程序员编写正确、安全的代码的方法。

(3)利用编译器的边界检查来实现缓冲区的保护。这个方法使缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁,但是相对而言代价比较大。

(4)在程序指针失效前进行完整性检查。虽然这种方法不能使所有的缓冲区溢出失效,但能阻止绝大多数的缓冲区溢出攻击。

总之,要想有效地预防由于缓冲区溢出的漏洞产生的攻击,对于程序开发人员来说,就是提高安全编程意识,在应用程序这个环节减少缓冲区溢出的漏洞;对于系统管理员来说,就是经常与系统供应商联系,经常浏览系统供应商的网站,及时发现漏洞,对系统和应用程序及时升级、打补丁。

 TCP会话劫持

【实验目的】

通过练习TCP会话劫持实验,掌握TCP会话劫持的工作原理,并理解检测和防范TCP会话劫持的方法。

【实验原理】

TCP会话劫持的工作原理(参考2.9.1小节和2.9.2小节)。

【实验环境】

一台预装Windows 7/Windows Server 2008/2003的主机,两台预装Redhat Linux的主机,通过网络相连。

软件工具:hunt。

【实验内容】

TCP会话劫持演示实验(参考2.9.3小节)。

2.9.1 TCP会话劫持攻击概述

TCP会话劫持是一种TCP协议攻击技术,是在一次正常的TCP通信过程中,攻击者作为第三方劫持正常通信双方已经建立起来的TCP会话连接,以假冒其中一方(通常是客户端)的身份与另一方进行进一步通信。TCP会话劫持攻击这样做的目的是因为:通常一些网络服务(如telnet服务)会在建立TCP会话之后进行应用层的身份认证(通常是输入用户名和密码),客户端在通过身份认证后,在和服务器端的进一步通信过程中无需再次进行身份认证;而TCP会话劫持正是为攻击者提供了一种绕过应用层身份认证的攻击途径。

TCP会话劫持成功的关键是攻击者要能通过TCP协议对会话通信方的验证。要达到这个目的,攻击者必须完成两方面的事情。

(1)利用ARP欺骗、ICMP路由重定向攻击等技术,使得要攻击的网络通信经过攻击者控制的主机,从而结合网络嗅探技术获取到客户端和服务器之间通信的TCP序列号、确认号等信息。

(2)根据获取的序列号、确认号等信息和TCP协议的工作原理,猜测出需要发送给服务器的数据包的正确序列号,从而假冒客户端的地址和身份,向服务器发送该数据包宣称自己就是正常的客户端,从而实现会话劫持。

之所以攻击者能够根据获取的序列号、确认号等信息猜测到服务器所需要的数据包的正确序列号,是因为TCP会话中,前后数据包的序列号和确认号之间是有联系的。具体来说,对于一台主机来说,其收到的前一个TCP报文和要发送的下一个TCP报文之间的序列号和确认号的关系是:它所要发送报文的序列号应该等于它所收到的前一个报文的确认号,而它所要发送报文的确认号应该为它收到的前一个报文的序列号加上该报文中所发送的TCP净荷的长度。

2.9.2 TCP会话劫持工作过程

TCP会话劫持攻击的基本工作过程如图2-123所示,步骤如下。

图像说明文字

图2-123 TCP会话劫持的基本工作过程

(1)客户端主机与服务器(如telnet服务器)进行连接,并通过身份认证建立会话。

(2)telnet服务器将会向客户端主机发送响应包,并包含服务器当前序列号(记为S_SEQ),以及期望客户端发送的下一个序列号(记为S_ACK)。

(3)攻击者通过ARP欺骗、ICMP路由重定向攻击等方法实施中间人攻击,嗅探获取到客户端和telnet服务器之间的通信内容(包括TCP序列号、确认号等信息),然后假冒客户端的IP地址及身份,向telnet服务器发送数据包,宣称自己就是客户端。只要攻击者发送的数据包中的序列号(记为H_SEQ)满足条件“S_ACK<=H_SEQ<=S_ACK+S_WIN”,其中S_WIN是服务器的接收窗口,服务器就会接收该数据包,攻击者就能成功劫持客户端和服务器之间的会话,并以客户端已经认证的身份执行任意命令。

(4)在客户端和服务器之间的会话被攻击者劫持后,由于客户端仍然维持与服务器之间的链接会话,还会向服务器发送数据包,而服务器会发现由客户端发来的数据包不是它所期望的(确认号不正确),服务器就会以自己所期待的确认号返回ACK包,期望重新建立起同步状态,而客户端收到服务器的ACK包后,也发现它不符合自己的接收条件,因此它也再次返回一个ACK包。这样就形成了恶性循环,最终导致“ACK风暴”。ACK风暴使得TCP会话劫持很容易被网络管理员发现,因此攻击者往往向客户端发送RST重置掉客户端和telnet服务器之间的会话连接。

2.9.3 TCP会话劫持演示实验

(1)实验拓扑,如图2-124所示,Telnet服务器在Linux环境下搭建;客户端使用Windows系统,在另一台Linux系统下安装hunt作为攻击机。实验中,为了保证攻击者能嗅探到客户端和Telnet服务器之间的会话内容,必须保证Linux攻击机和Windows客户端或Telnet服务器处于共享网络中。否则,则要使用ARP欺骗等方法使得客户端和服务器之间的通信经过攻击机,才能实现网络嗅探。嗅探成功是TCP会话劫持成功的前提条件。

图像说明文字

图2-124 TCP会话劫持实验拓扑

(2)在Windows客户端上登录telnet服务器,输入正确的用户名和密码进行正常身份认证。

(3)在Linux攻击机上解压hunt工具,具体命令如图2-125所示。

图片 127

图2-125 解压hunt文件

(4)启动hunt,进入hunt主界面,如图2-126所示。

图片 124

图2-126 启动hunt进入主界面

(5)使用w选项监视会话,如图2-127所示。

图片 125

图2-127 使用w选项监视会话

此时,攻击者可以监视到客户端和telnet服务器之间的正常会话,看到会话的内容,如图2-128所示。

图片 130

图2-128 监视客户端和telnet服务器的会话内容

这时,攻击者只是对telnet会话进行了嗅探,不破坏正常的telnet过程。

(6)改用s选项进行TCP会话劫持,如图2-129所示。

图片 131

图2-129 劫持客户端和telnet服务器之间的会话

这时,攻击者替换了客户端和telnet服务器进行通信,就可以任意执行如图2-129所示的ifconfig等命令。而正常的客户端,由于收到攻击者发来的中断会话的RST包,会发现与telnet服务器的会话异常中断了。

(7)当发生会话劫持时,客户端和服务器之间会互相发送ACK响应包,形成“ACK风暴”,因此,如果使用Wireshark进行抓包,可以发现网络中存在ACK风暴数据包,如图2-130所示。

图片 132

图2-130 ACK风暴数据包

2.9.4 TCP会话劫持攻击的检测和防范

由于TCP会话劫持会在网络中产生大量的ACK风暴数据包,所以查看网络中是否存在ACK风暴是检测TCP会话劫持攻击的有效方法。

基于TCP会话劫持的工作原理,目前防范TCP会话劫持攻击的措施主要有以下两种。

(1)采用加密机制(例如,使用IPSec协议、用SSH代替telnet等)加密客户端和服务器之间的通信过程,使得攻击者无法在网络上获取TCP序列号、确认号等信息,是防范TCP会话劫持最通用的方法。

(2)为了避免攻击者成为客户端和服务器通信双方的中间人,可以从防范ARP欺骗、ICMP路由重定向攻击等攻击方法入手,例如采用静态绑定MAC地址方法以防范ARP欺骗;过滤ICMP路由重定向报文以防范ICMP路由重定向攻击。

图像说明文字练习题

1.选择题

(1)网络攻击的发展趋势是(  )。

    A.黑客技术与网络病毒日益融合  B.攻击工具日益先进

    C.病毒攻击  D.黑客攻击

(2)拒绝服务攻击(  )。

    A.用超出被攻击目标处理能力的海量数据包消耗可用系统、带宽资源等方法的
攻击

    B.全称是Distributed Denial Of Service

    C.拒绝来自一个服务器所发送回应请求的指令

    D.入侵控制一个服务器后远程关机

(3)通过非直接技术攻击称做(  )攻击手法。

    A.会话劫持  B.社会工程学  C.特权提升  D.应用层攻击

(4)网络型安全漏洞扫描器的主要功能有(  )。(多选题)

    A.端口扫描检测  B.后门程序扫描检测

    C.密码破解扫描检测  D.应用程序扫描检测

    E.系统安全信息扫描检测

(5)在程序编写上防范缓冲区溢出攻击的方法有(  )。

    I.编写正确、安全的代码  II.程序指针完整性检测

    III.数组边界检查  IV.使用应用程序保护软件

    A.I、II和IV  B.I、II和III  C.II和III  D.都是

(6)HTTP默认端口号为(  )。

    A.21  B.80  C.8080  D.23

(7)对于反弹端口型的木马,(  )主动打开端口,并处于监听状态。

    I.木马的客户端 II.木马的服务器端 III.第三服务器

    A.I   B.II  C.III  D.I或III

(8)关于“攻击工具日益先进,攻击者需要的技能日趋下降”的观点不正确的是(  )。

    A.网络受到攻击的可能性将越来越大  B.网络受到攻击的可能性将越来越小

    C.网络攻击无处不在  D.网络风险日益严重

(9)网络监听是(  )。

    A.远程观察一个用户的计算机  B.监视网络的状态、传输的数据流

    C.监视PC系统的运行情况  D.监视一个网站的发展方向

(10)漏洞评估产品在选择时应注意(  )。

    A.是否具有针对网络、主机和数据库漏洞的检测功能

    B.产品的扫描能力

    C.产品的评估能力

    D.产品的漏洞修复能力

    E.以上都正确

(11)DDoS攻击破坏了(  )。

    A.可用性  B.保密性  C.完整性  D.真实性

(12)当感觉到操作系统运行速度明显减慢,打开任务管理器后发现CPU的使用率达到100%时,最有可能受到(  )攻击。

    A.特洛伊木马  B.拒绝服务  C.欺骗  D.中间人攻击

(13)在网络攻击活动中,Tribal Flood Network(TFN)是(  )类的攻击程序。

    A.拒绝服务  B.字典攻击  C.网络监听  D.病毒程序

(14)(  )类型的软件能够阻止外部主机对本地计算机的端口扫描。

    A.反病毒软件  B.个人防火墙

    C.基于TCP/IP的检查工具,如netstat  D.加密软件

(15)以下属于木马入侵的常见方法是(  )。(多选题)

    A.捆绑欺骗  B.邮件冒名欺骗  C.危险下载

    D.文件感染  E.打开邮件中的附件

(16)局域网中如果某台计算机受到了ARP欺骗,那么它发出去的数据包中,(  )地址是错误的。

    A.源IP地址  B.目标IP地址  C.源MAC地址  D.目标MAC地址

(17)在Windows操作系统中,对网关IP和MAC地址进行绑定的操作为(  )。

    A.ARP -a 192.168.0.1 00-0a-03-aa-5d-ff

    B.ARP -d 192.168.0.1 00-0a-03-aa-5d-ff

    C.ARP -s 192.168.0.1 00-0a-03-aa-5d-ff

    D.ARP -g 192.168.0.1 00-0a-03-aa-5d-ff

(18)当用户通过域名访问某一合法网站时,打开的却是一个不健康的网站,发生该现象的原因可能是(  )。

    A.ARP欺骗  B.DHCP欺骗

    C.TCP SYN攻击  D.DNS缓存中毒

(19)下面描述与木马相关的是(  )。

    A.由各户端程序和服务器端程序组成夹

    B.感染计算机中的文件

    C.破坏计算机系统   

    D.进行自我复制

(20)死亡之ping属于(  )。

    A.冒充攻击  B.拒绝服务攻击  C.重放攻击  D.篡改攻击

(21)向有限的空间输入超长的字符串是(  )攻击手段。

    A.缓冲区溢出  B.网络监听  C.拒绝服务  D.IP欺骗

(22)Windows 操作系统设置账户锁定策略,这可以防止(  )。

    A.木马  B.暴力攻击  C.IP欺骗  D.缓存溢出攻击

2.判断题

(1)冒充信件回复、下载电子贺卡同意书,使用的是叫做“字典攻击”的方法。

(  )

(2)当服务器遭受到DoS攻击的时候,只需要重新启动系统就可以阻止攻击。

(  )

(3)一般情况下,采用Port scan可以比较快速地了解某台主机上提供了哪些网络服务。

(  )

(4)DoS攻击不但能使目标主机停止服务,还能入侵系统,打开后门,得到想要的资料。

(  )

(5)社会工程攻击目前不容忽视,面对社会工程攻击,最好的方法是对员工进行全面的教育。

(  )

(6)ARP欺骗只会影响计算机,而不会影响交换机和路由器等设备。

(  )

(7)木马有时称为木马病毒,但却不具有计算机病毒的主要特征。

(  )

3.问答题

(1)一般的黑客攻击有哪些步骤?各步骤主要完成什么工作?

(2)扫描器只是黑客攻击的工具吗?常用的扫描器有哪些?

(3)端口扫描分为哪几类?原理是什么?

(4)什么是网络监听?网络监听的作用是什么?

(5)是否能够在网络上发现一个网络监听?说明理由。

(6)特洛伊木马是什么?工作原理是什么?

(7)用木马攻击的一般过程是什么?

(8)如何发现计算机系统感染木马?如何防范计算机系统感染木马?

(9)什么是拒绝服务攻击?分为哪几类?

(10)拒绝服务攻击是如何导致的?说明SYN Flood攻击导致拒绝服务的原理。

(11)什么是缓冲区溢出?产生缓冲区溢出的原因是什么?

(12)缓冲区溢出会产生什么危害?

(13)什么是TCP会话劫持攻击?如何检测和防范?

目录

同系列书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部