跪求解决办法!您的请求已被远程服务器无法处理请求拒绝。参考#0.a7eab0b.76b8b845.1505573098

第2章 黑客常用的攻击方法-人邮教育社区
第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所示。
图2-2 黑客攻击的路线剖析图
 网络信息收集
【实验目的】
通过练习使用Whois查询、扫描器工具,可以获得目标系统的相关信息:IP地址、开放的端口和服务程序等,发现目标系统的相关漏洞,从而为网络管理员提升网络安全提供有用的借鉴。
【实验原理】
网络探测方法(参考2.2.1小节)。
端口基础知识和端口扫描的原理(参考2.2.2小节)。
综合扫描器的内容和原理(参考2.2.4小节)。
【实验环境】
两台预装Windows 7/Windows Server 的主机,通过网络相连并接入互联网。
软件工具: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所示。
图2-3 Whois–IP信息查询
图2-4 Whois–IP地理位置查询
图2-5 Whois–DNS查询
Whois查询也有小工具软件,如SmartWhois查询工具,可以通过IP地址查询目标系统的位置,如图2-6所示。
图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 著名的扫描软件
优点:用指纹技术扫描目的主机的操作系统类型,用半连接进行端口扫描 缺点:对安装防火墙的主机扫描速度慢
优点:扫描比较全面,扫描报告形式多样,适合不同层次和管理者查看 缺点:速度慢
Symantec公司基于主机的扫描系统,管理功能比较强大,但报表非常不完善,并且功能上存在一定缺陷
流光(Fluxay)
优点:扫描Windows NT系统用户名和猜测口令,可以扫描cgi漏洞
优点:可以较全面地扫描cgi漏洞 缺点:扫描大范围网络会占用极大量的系统资源
优点:插件比较全面的扫描器,扫描Windows NT系列漏洞比较出色
优点:审计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所示。
图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所示。
图2-11 -sP扫描结果
有些站点(如microsoft.com)阻塞ICMP echo请求数据包。还有许多个人主机用防火墙挡住ICMP包。因此,用Ping扫描不能检测出来。
【例2-2】-sT扫描。
TCP connect( )扫描(-sT参数)。这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的,如图2-12所示。
图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所示。
图2-13 -sS扫描结果
【例2-4】-sU扫描。
UDP扫描(-sU参数)。这一种方法是用来确定哪个UDP(User Datagram Protocol,用户数据报协议)端口在主机端开放。这一项技术是发送零字节的UDP信息包到目标机器的各个端口,如果收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则可以认为是开放的,如图2-14所示。
图2-14 -sU扫描结果
除了这几种最基本的扫描方式外,Nmap还提供了几种特殊的扫描方式,用于进行辅助扫描。
【例2-5】-sF -sX -sN扫描。
在SYN扫描都无法确定的情况下,如图2-15所示,可以使用另外几种特殊的扫描模式,FIN扫描、圣诞树扫描、Null扫描来进一步确认。
图2-15 -sS扫描中的filtered的端口
在图2-15中,-sS扫描某端口时,对方主机既没有回复ACK包,也没有回复RST包,所以无法判断该端口状态,显示处于filtered状态。换为-sF或者-sX、-sN扫描方式,结果如图2-16所示。
图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 其他参数
选择要进行扫描的端口号的范围
例如,-p21-150,0,如图2-17所示
获得目标主机操作系统的类型
激活对TCP/IP指纹特征(Fingerprinting)的扫描,检测目标主机操作系统网络协议栈的特征,如图2-17所示
欺骗扫描,伪装源IP地址
如图2-18所示
输出扫描过程的详细信息
这个选项使用两次,会提供更详细的信息
服务版本探测
如图2-19所示
激烈扫描,同时打开OS指纹(-O)和版本探测
如图2-20所示
使用诱饵方法进行扫描
把扫描者的IP地址随机夹杂在诱饵主机之中,也就是说除了真正的扫描源之外还添加了其他的扫描源,起到混淆防火墙和IDS(Intrusion Detection Systems,入侵检测系统)的目的。可以结合抓包软件,以判断扫描数据包的源IP地址信息,如图2-21所示
只对nmap的nmap-services 文件中指定的端口进行扫描
在扫描之前,不必Ping主机
使用-P0或者-PT 80选项,如图2-18所示
真正的Ping(ICMP请求)来扫描目标主机是否正在运行
只有在目标网络/主机阻塞了Ping包,而仍旧允许用户对其进行扫描时,这个选项才有效
一般使用-PT 80,因为这个端口通常不会被过滤
图2-17 -p、-O扫描结果
图2-18 -P0、-S扫描结果
图2-19 -sV扫描结果
图2-20 -A扫描结果
图2-21 -D扫描结果
高版本的Nmap除了提供DOS操作方式外,也提供了图形用户界面的操作方式,如图2-22所示。
图2-22 Nmap图形用户界面
2.2.4 综合扫描器演示实验
前面介绍了端口扫描器,下面介绍综合扫描器。综合扫描器不限于端口扫描,既可以是对漏洞、某种服务、某个协议等的扫描,也可以是针对系统密码的扫描。下面分别以X-Scan和Nessus为例,介绍综合扫描器的功能和用法。
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所示,从左至右依次是扫描参数(两项)、开始扫描、暂停扫描、中止扫描、检测报告、使用说明、退出。
图2-24 X-Scan v3.1的工具栏
具体的扫描步骤如下。
(1)单击工具栏中的【扫描参数】按钮,在出现的图2-25所示的窗口内输入要扫描主机的IP地址(或是一个范围)。需要注意的是,跳过Ping不通的主机,跳过没有开放端口的主机,可以大幅度地提高扫描的效率。在图2-26所示的【端口相关设置】选项卡中,可以进行扫描某一特定端口等特殊操作(X-Scan默认只是扫描一些常用端口)。
图2-25 【基本设置】选项卡
图2-26 【端口相关设置】选项卡
(2)设置好参数之后,单击【确定】按钮,出现图2-27所示的窗口,窗口中有扫描内容的设置。
图2-27 【扫描模块】窗口
(3)在【扫描参数】窗口中,还可以选择扫描的具体项目。例如,选择【CGI相关设置】选项卡,如图2-28所示。
图2-28 【CGI相关设置】选项卡
(4)用于口令破解的【字典文件设置】选项卡如图2-29所示,而【NETBIOS相关设置】选项卡如图2-30所示。NETBIOS相关设置对于局域网内的攻击是非常有用的。全部扫描完成后,出现图2-31所示的漏洞列表,单击检测报告就会出现报告。
图2-29 【字典文件设置】选项卡图
图2-30 【NETBIOS相关设置】选项卡
图2-31 X-Scan v3.1的扫描报告
(5)单击每个漏洞上的超链接,就会详细地显示各个漏洞,并可以连接上X-Focus的站点。X-Focus公司具有庞大的数据库,网络管理人员可以通过数据库来找到漏洞的解决办法。
X-Scan具有很全面并且不断更新的CGI/IIS漏洞库,选择【工具】→【CGI列表维护】菜单命令,出现如图2-32所示的窗口,可以对CGI/IIS的漏洞列表进行维护。
图2-32 X-Scan v3.1的CGI列表维护
总之,X-Scan是一款典型的扫描器,更确切地说,其是一款漏洞检查器,扫描时没有时间限制和IP限制等。国内类似的比较著名的同类软件还有流光、X-way等。
在企业中广泛应用的Nessus也是一款典型的综合扫描器,其被认为是目前全世界最多人使用的系统漏洞扫描与分析软件:总共有超过75000个机构使用Nessus 作为扫描该机构电脑系统的软件。
Nessus软件采用客户机/服务器体系架构(也即C/S架构;4.2版本以后改为浏览器/服务器架构,也即B/S架构),客户端提供图形界面,接受用户的命令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给客户端。服务器端可以运行在Windows或Linux系统下,是真正的扫描真正发起者。Nessus的体系架构如图2-33所示。
图2-33 Nessus体系架构
Nessus具有强大的插件功能,针对一个漏洞可以开发一个对应的插件(漏洞插件是用NASL语言编写的一小段模拟攻击漏洞的代码)。这种利用漏洞插件的扫描技术极大方便了漏洞数据的维护和更新。Nessus具有扫描任意端口、任意服务的能力,输出报告格式多样,内容详细(包括目标的脆弱点、修补漏洞以防止黑客入侵的方法及危险级别等),非常适合作为网络安全评估工具。
下面通过演示实验来讲解Nessus安装、配置和使用,以帮助读者掌握使用企业级漏洞扫描器进行网络安全扫描的方法。
Nessus的下载和安装的步骤如下。
(1)到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 在服务器端启动Nessus服务
(2)在客户端,可以通过网址(格式为“”)登录管理界面,如图2-39所示。
图2-39 在客户端登录管理界面
下面简单介绍Nessus使用时的几个关键步骤。
(1)用户管理:登录Nessus后,可以单击右上角的用户名,在下拉菜单中选中【User Profile】进行用户管理,如图2-40所示。
图2-40 用户管理界面
(2)使用策略:在Policies页面下选择New Policy可以新增一个策略,策略向导如图2-41所示。这里可以使用系统提供的策略模板进行扫描。例如,“Basic Network Scan”模板适用于对一般的内外网主机进行全面的扫描;“Windows Malware Scan”模板适用于查找Windows系统下的恶意软件,用户可以根据实际的扫描环境和扫描要求做针对性的选择。用户也可以选择“Advanced Policy”自定义策略,打开图2-42所示的设置对话框。该对话框中的几个选项的含义如下。
图2-41 策略向导界面
图2-42 自定义策略对话框
① Credentials:在扫描过程中通过使用预先设置的认证信息,可以得到更准确的结果。
② Plugins:使用系统提供的安全插件(插件中提供不同的扫描策略)进行扫描。
③ Preference:包括在扫描设置之上的精确控制方法。
(3)在定义好策略后,可以在【Scans】页面下新建一个扫描,如图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 设置扫描计划
(4)查看并分析结果:完成扫描后,可以以不同的方式查看到扫描的结果,如图2-45和图2-46所示。
图2-45 查看扫描结果之一
图2-46 查看扫描结果之二
(5)生成报告:在查看结果的界面上,可以选择生成报告的内容和格式,如图2-47所示。支持的导出格式包括:HTML、PDF、CSV等。
图2-47 生成结果报告
这些生成的扫描结果,可以作为网络风险分析与安全审计报告的重要组成部分,给用户提供很好的参考借鉴作用。
 口令破解
【实验目的】
通过密码破解工具的使用,了解账号的安全性,掌握安全口令的设置原则,以保护账号口令的安全。
【实验原理】
口令破解的意义和方法(参考2.3.1小节)。
【实验环境】
两台预装Windows 7/Windows Server 的主机,并通过网络相连。
软件工具: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所示。
图2-48 SMBCrack的参数
目标主机10.3.40.1的用户名为“405”,密码为“test4”(为了实验效果,我们提前制定好字典文件user.txt 和pass.dic)。口令破解的实验结果如图2-49所示。
图2-49 SMBCrack的扫描结果
SMBCrack默认使用139端口,如果目标主机的139端口关闭,则使用-P1参数,通过445端口进行破解。一般默认445端口是打开的。
图2-50所示为不指定用户名字典文件,而用-d参数通过dump方式获得用户名(命令为:smbcrack –i 10.3.40.1 –d –p pass.dic)。这样的方式还是要依赖139端口。
图2-50 SMBCrack的扫描结果
针对暴力破解Windows操作系统口令的攻击行为,有很有效的防护方式。其中启动账户锁定策略是一个有效的方法,如图2-51所示,将账户锁定策略的阈值设置为3,账户锁定时间只要3或5分钟即可,使策略生效。同时改变pass.dic文件内容,把真实密码“test4”的顺序放到第三以后的位置,如图2-52所示。
图2-51 账户锁定策略
图2-52 修改字典文件
修改字典文件后SMBCrack就扫描不出结果了,如图2-53所示。
图2-53 修改字典文件后的扫描结果
如果操作系统口令被破解了,黑客就可以用一些工具获得系统的Shell,那么用户的信息将很容易被窃取。图2-54演示了在已知远程主机操作系统口令的情况下,使用“psexec.exe”工具执行远程主机的cmd命令的方法。
图2-54 调用远程主机的cmd命令
如果我们不需要提供文件和打印共享服务,就可以关闭139和445端口。关闭139端口的方法是在【网络和拨号连接】的【本地连接】中选取【Internet协议(TCP/IP)】属性,进入【高级TCP/IP设置】,再进入【WINS】里面,选中【禁用TCP/IP的NETBIOS】单选项,就关闭了139端口,如图2-55所示。
图2-55 关闭139端口
关闭445端口的方法有很多,比较方便的方法就是修改注册表,添加一个键值,格式如下。
Key: HKLM \System\CurrentControlSet\Services\NetBT\ Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
修改完后重启机器,运行“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 的主机,将两台机通过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(下载地址为),按照向导安装,完成后桌面上会出现图标。启动Wireshark以后,出现如图2-60所示的界面,选择【Capture】→【Start】菜单命令,出现Wireshark选择网卡,如图2-61所示。
图2-60 Wireshark的面板
图2-61 Wireshark选择网卡
选择【Capture】→【Start】菜单命令,就会出现所捕获的数据包的统计。想停止时,单击捕捉信息对话框上的【stop】按钮停止,如图2-62所示。
图2-62 Wireshark捕获数据包
捕获到的数据包显示如图2-63所示。第一部分是数据包统计窗,可以按照各种不同的参数排序,如按照Source Ip或者Time等;如果想看某个数据包的消息信息,单击该数据包,在协议分析窗中显示详细信息,主要是各层数据头的信息;最下面是该数据包的具体数据。
图2-63 Wireshark分析数据包
分析数据包有3个步骤:选择数据包、分析协议、分析数据包内容。
(1)选择数据包。每次捕获的数据包的数量很多。首先,根据时间、地址、协议、具体信息等,对需要的数据进行简单的手动筛选,选出所要分析的那一个。例如,大家经常被其他人使用Ping来进行探测,那么,当想查明谁在进行Ping操作时,面对嗅探到的结果,应该选择的是ICMP。
例如,查看访问地址为202.165.102.134的Web服务器的数据包,如图2-64所示。
图2-64 选择数据包
(2)分析协议。在协议分析窗中直接获得的信息是帧头、IP头、TCP头和应用层协议中的内容,如MAC地址、IP地址和端口号、TCP的标志位等。另外,Wireshark还会给出部分协议的一些摘要信息,可以在大量的数据中选取需要的部分,如图2-65所示。
图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所示。
图2-68 Wireshark的显示过滤
图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的工作过程。
图2-71 FTP登录过程
图2-72 FTP分析结果
【例2-7】POP密码的嗅探。
在使用第三方客户端邮件工具进行邮件的收发时,可以嗅探到POP的密码。以Outlook Express(简称OE)作为这个实验的第三方邮件收发工具,打开OE后,输入用户名和密码,接收完邮件后立即停止Wireshark,图2-73所示是POP协议的嗅探结果。
图2-73 POP密码的嗅探
很明显,图2-70中所指向的数据是一个客户端的请求,第11条信息就是送出一个包含了用户名的邮件接收请求,然后服务器会自动检测该用户名是否存在,第14条信息显示用户名验证成功,接下来是输入密码,第14条信息是客户端输入的密码,校验成功后,返回第17条信息,说明用户名和密码都是合法且正确的,用户名和密码的验证过程结束,很轻易地获得用户名和密码。
【例2-8】Web邮箱密码的嗅探。
现在人们经常使用Web邮箱进行邮件的收发,由于HTTP是明文传送的,所以可以嗅探到Web邮箱的密码。图2-74所示为Web邮箱的嗅探结果。
图2-74 Web邮箱密码的嗅探
由于HTTP是明文传送的,所以用户的信息很容易被泄露,除了Web邮箱外,在WWW上还有其他许多敏感的信息,如网上银行、社区、论坛等,都存在这样的威胁。所以现在网上银行、大部分Web邮箱采用HTTPS,进行安全防护。另外,用户自己也要提高网络安全意识,不要轻易在WWW上传输敏感的信息。
2.4.3 网络监听的检测和防范
网络监听的一个前提条件是将网卡设置为混杂模式,因此,通过检测网络中主机的网卡是否运行在混杂模式下,可以发现正在进行网络监听的嗅探器。著名黑客团队L0pht开发的AntiSniff就是一款能在网络中探测与识别嗅探器的工具软件。
为了防范网络监听行为,应该尽量避免使用明文传输口令等敏感信息,而是使用网络加密机制,例如用SSH代替telnet协议。这样就算攻击者嗅探到数据,也无法获知数据的真实信息。
另外,由于在交换式网络中,攻击者除非借助ARP欺骗等方法,否则无法直接嗅探到别人的通信数据。因此,采用安全的网络拓扑,尽量将共享式网络升级为交换式网络,并通过划分VLAN等技术手段将网络进行合理的分段,也是有效防范网络监听的措施。
【实验目的】
通过在交换环境进行ARP欺骗并嗅探用户发送的信息,掌握ARP攻击的基本工作原理,并进一步掌握使用抓包软件进行嗅探分析的方法。
【实验原理】
ARP欺骗的工作过程(参考2.5.1小节)。
【实验环境】
两台预装Windows 7/Windows Server 的主机,通过网络相连并接入互联网。
软件工具: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 ARP欺骗攻击实验示意图
2.实验步骤
(1)在实施ARP欺骗之前,计算机10.3.40.5是可以正常上网的,而且通过“arp –a”命令可以查看到其本地的ARP缓存表,结果如图2-76所示。
图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所示。
图2-77 实施ARP欺骗
(4)攻击者打开Iris进行嗅探,同时让被欺骗的计算机10.3.40.5再次上网(例如登录邮箱webmail.szpt.net,输入用户名和密码。这时,输入的用户名和密码是否正确都无所谓)。这时黑客可以嗅探到被欺骗计算机的上网信息,如图2-78所示。
图2-78 实施ARP欺骗后的嗅探结果
(5)此时,再次查看被欺骗计算机的本地ARP缓存表,可以发现网关的MAC地址被欺骗成了攻击者的MAC地址,如图2-79所示,因此发给网关的数据包就发送给了攻击者的计算机。
图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 的主机,通过网络相连。
软件工具:冰河木马、灰鸽子木马。
【实验内容】
任务1:使用冰河木马对远程计算机进行控制(参考2.6.4小节)。
任务2:使用反弹端口木马对远程计算机进行控制(参考2.6.5小节)。
瑞星公司最新发布的《瑞星2015中国信息安全报告》显示,2015年全年,瑞星“云安全”系统共截获新增病毒样本3 715万个,其中新增木马病毒(Trojan)占总体病毒的61.79%,牢牢占据榜首位置,如图2-80所示。可见,木马是黑客攻击的一种非常重要的方法。
图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所示的就是冰河的安装路径、文件名称、监听端口等内容。
图2-82 冰河服务器端参数的设置
冰河在注册表设置的自我保护的内容也就是查杀时所寻找的内容。配置完后生成服务器端程序G-server.exe。服务器端一旦运行G-server,该程序就会按照前面的设置在“C:\WINNT\system32”目录下生成Kernel32.exe和sysexplr.exe,并删除自身。
Kernel32.exe在系统启动时自动加载运行,在注册表中sysexplr.exe和TXT文件关联,如图2-83所示。
图2-83 冰河服务器端启动、关联参数的设置
2.传播木马
通过邮件、QQ等方式传播该木马服务器程序,并诱惑被攻击者运行该程序。
3.客户端(控制端)操作
冰河的客户端界面如图2-84所示,冰河的功能是自动跟踪目标机屏幕变化、记录各种口令信息、获取系统信息、限制系统功能、远程文件操作、注册表操作、发送信息等。
图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所示开始配置服务器端程序。
图2-85 配置“灰鸽子”服务器程序
按照图2-86所示设置参数,其中10.3.40.55(计算机名“405-T”)是客户端(控制端),80是控制端打开的监听端口。从中可以看出“灰鸽子”木马的伪装,包括进程名称、设置为服务启动、显示的图标等。
图2-86 灰鸽子服务器程序端参数的设置
在客户端的菜单中选择【设置】→【系统设置】→【端口设置】可以设置自动上线的端口,如图2-87所示。设置这些端口之后,意味着客户端的这些端口处于监听状态。这里设置的是80端口。
图2-87 配置灰鸽子服务器程序端参数
2.传播木马
通过邮件、QQ等方式传播该木马服务器程序,并诱惑被攻击者运行该程序。
3.客户端(控制端)操作
“灰鸽子”的客户端界面如图2-88所示,服务器端运行后会自动上线。从图2-88中可以看到10.3.40.1和10.3.40.2已经上线。“灰鸽子”有获取系统信息、限制系统功能、屏幕捕获、文件管理、远程控制、注册表管理、文件传输、远程通信等功能。
图2-88 “灰鸽子”客户端
图2-89所示的是“灰鸽子”客户端端口的情况,本地打开的是HTTP端口。图2-90所示是“灰鸽子”服务器端端口的情况,在服务器端看来就是在连接405-T的80端口,与访问某台Web服务器一样。
图2-89 “灰鸽子”客户端端口的情况
图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端口打开,可能是有名的冰河木马。
图2-94 用netstat查看端口状态
① LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。
② ESTABLISHED表示建立连接,即两台机器正在通信。
③ TIME_WAIT表示结束连接,说明该端口曾经有过访问,但访问结束了。
(2)专用工具。通过专用工具,如Fport、TCPView等,都可以检查端口的情况及相关进程的详细情况,如图2-95所示。
图2-95 用TCPView查看端口、进程状态
2.检查注册表
上面在讨论木马的启动方式时已经提到,木马可以通过注册表启动,那么,同样可以通过检查注册表来发现木马在注册表里留下的痕迹。
3.检查DLL类木马
DLL类木马在进程中看不到,图2-96所示为借助IceSword(冰刃)工具查出DLL类木马。例如,efccywt.dll是一个木马文件,插入两个正常的进程中。
图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 的主机,两台预装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,分布式拒绝服务)攻击所造成的经济损失已经跃居第一。
日,美国和韩国的黑客对全世界13台DNS服务器同时进行DDoS攻击。受到攻击的13台主服务器同时遇到使用ICMP(Internet Control Message Protocol,internet控制报文协议)出现信息严重“堵塞”的现象,该类信息的流量短时间内激增到平时的10倍。这次攻击虽然是以全部13台机器为对象的,但受影响最大的是其中的9台。DNS服务器在Internet上是不可缺少的,如果这些机器全部陷入瘫痪,那么整个Internet都将瘫痪。
日,由于暴风影音软件而导致的全国多个省份大范围网络故障的“暴风门”事件,也是一次典型的DDoS事件。事件的起因是北京暴风科技公司拥有的域名baofeng.com的DNS被人恶意大流量DDoS攻击,承担dnspod.com网络接入的电信运营商断掉了其网络服务。由于暴风影音的安装量巨大和软件网络服务的特性(部分在线服务功能必须基于baofeng.com域名的正常解析),海量暴风用户向本地域名服务器(运营商的DNS服务器)频繁地发起DNS解析请求,这些大量的解析请求,客观上构成了对电信DNS服务器的DDoS攻击,导致各地电信DNS服务器超负荷瘫痪而无法提供正常服务,从而使更大范围的用户无法上网。
日起,香港公投网站PopVote陆续遭遇超大规模的DDoS攻击,攻击流量为史上第二高,连Amazon或Google都挡不住,最后靠着多家网络业者联手,才撑过了这段投票时间}

我要回帖

更多关于 ping服务器请求超时 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信