1、第二篇 网络攻击篇,第8章 权限获取及提升,第8章 权限获取及提升,攻击一般从确定攻击目标、收集信息开始,之后对目标系统进行弱点分析,根据目标系统的弱点想方设法获得权限,在这一章中将重点讨论攻击者如何获得权限以及如何进行权限的提升。,第8章 权限获取及提升,8.1 通过网络监听获取权限 8.2 通过网络漏洞获取权限 8.3 基于网络账号口令破解获取权限 8.4 通过网络欺骗获取权限 8.5 基于TCP/IP会话劫持获取权限 8.6 实验:口令破解,8.1 通过网络监听获取权限,8.1.1 网络监听的原理 8.1.2 网络监听获取权限 8.1.3 网络监听工具,8.1 通过网络监听获取权限,网络
2、监听是攻击者获取权限的一种最简单而且最有效的方法,在网络上,监听效果最好的地方是在网关、路由器、防火墙一类的设备处,通常由网络管理员来操作。而对于攻击者来说,使用最方便的是在一个以太网中的任何一台上网的主机上进行监听。网络监听常常能轻易地获得用其他方法很难获得的信息。,8.1 通过网络监听获取权限,8.1.1 网络监听的原理 8.1.2 网络监听获取权限 8.1.3 网络监听工具,8.1.1 网络监听的原理,以太网协议的工作方式为将要发送的数据包发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。因此,只有与数据包中目标地址一致的那台主机才能接收信包。但是当主机工作在监听模式
3、下,可以接收发来的所有数据包。在Internet上,有许多这样的局域网。几台甚至十几台主机通过一条电缆一个集线器连在一起。,8.1.1 网络监听的原理,当同一网络中的两台主机通信时,源主机将写有目的主机IP地址的数据包发向网关。但是,这种数据包并不能在协议栈的高层直接发送出去。要发送的数据包必须从TCP/IP协议的IP层交给网络接口,即数据链路层。在网络接口,由IP层来的带有IP地址的数据包又增加了一部分信息:以太帧的帧头。,8.1.1 网络监听的原理,在帧头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址,就是网卡MAC地址,也称为硬件地址或链路地址。无论是把这块网卡接入到
4、网络的任何地方,MAC地址都是不变的,MAC地址是由一个12位的十六进制组成。网卡MAC地址是与IP地址对应的。,8.1.1 网络监听的原理,一个IP地址,必然对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,因此它同时具有多个IP地址,在每个网络中都有一个IP地址。发向局域网之外的帧中携带的是网关的物理地址。,8.1.1 网络监听的原理,在以太网中,填写了物理地址的帧从网络接口中,也就是从网卡中发送出去,传送到物理的线路上。当使用集线器时,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。在物理线路上传输的数字信号也能到达连接在集线器上的每一主机。,8.1.1 网
5、络监听的原理,数字信号到达一台主机的网络接口时,在正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的,或者物理地址是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。,8.1.1 网络监听的原理,对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,则所有的数据帧都将被交给上层协议软件处理。局域网的这种工作方式,使得一台计算机能监听在同一个网段所有计算机传输的信息。,8.1.1 网络监听的原理,数字信号到达一台主机的网络接口时,在正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的,或者物理地
6、址是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。,8.1.1 网络监听的原理,对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,则所有的数据帧都将被交给上层协议软件处理。局域网的这种工作方式,使得一台计算机能监听在同一个网段所有计算机传输的信息。,8.1.1 网络监听的原理,要使主机工作在监听模式下,需要向网络接口(Interface)发送I/O控制命令,将其设置为监听模式。在Unix系统中,发送这些命令需要超级用户的权限。这一点限制了在Unix系统中,普通用户是不能进行网络监听的。只有获得超级用户权限,才能进行网络监听。,8.1.
7、1 网络监听的原理,监听是非常消耗CPU资源的,在一个担负繁忙任务的计算机中进行监听,很容易被管理员立即发现,因为这时计算机的响应速度令人惊奇地慢。,8.1.2 网络监听获取权限,目前的绝大多数计算机网络使用共享的通信信道,通信信道的共享意味着,计算机有可能接收发向另一台计算机的信息。由于Internet中使用的大部分协议都是很早设计的,许多协议的实现都是基于通信的双方充分信任的基础之上。在通常的网络环境下,用户的所有信息,包括用户名和口令信息都是以明文的方式在网上传输。,8.1.2 网络监听获取权限,对于网络攻击者来说,进行网络监听并获得用户的各种信息并不是一件很困难的事。当实现了网络监听,
8、获取了IP包,根据上层协议就可以分析网络传输的数据,例如在POP3协议里,密码通常是明文传递的(假如邮件服务系统没有特别的对密码进行加密的话),在监听到的数据包里可以按照协议截取出密码,类似的协议有SMTP,FTP等。这样便很容易的获取到了系统或普通用户权限。,8.1.3 网络监听工具,对于一台连网的计算机,只须安装一个监听软件,然后就可以坐在机器旁浏览监听到的信息了。 最简单的监听程序包括内核部分和用户分析部分。其中内核部分负责从网络中捕获和过滤数据。用户分析部分负责界面、数据转化与处理、格式化、协议分析,如果在内核没有过滤数据包,还要对数据进行过滤。,8.1.3 网络监听工具,一个较为完整
9、的基于网络监听程序一般包括以下步骤: 数据包捕获; 数据包过滤与分解; 数据分析。,1.数据包捕获,数据包捕获的常用的方法有两种: (1)通过设置硬路由器的监听端口; (2)利用以太网络的广播特性。这种方式必须将网卡设置为混杂模式,监听程序工作在网络环境的底三层,可以拦截所有经过该机器的网络上传送的数据,然后将这些数据做相应处理,可以实时分析这些数据的内容,进而分析网络当前状态和整体布局。,2. 数据包过滤与分解,捕获数据包后要进行的工作是对其进行包过滤与分解,用通俗的语言表达就是在海量的数据里面找我们感兴趣的内容.不好的过滤规则和程序会导致数据包丢失、来不及分析,严重的影响系统的工作效率,甚
10、至导致系统崩溃。,2. 数据包过滤与分解,一些基础的过滤规则如下: (1)站过滤:专门筛选出来自一台主机或者服务器的数据; (2)协议过滤:根据不同的协议来筛选数据,例如:选择TCP数据而非UDP数据; (3)服务过滤:根据端口号来选择特定数据包; (4)通用过滤:通过数据包中某一特定位置开始,选择具有某些共同数据特征的数据包。,2. 数据包过滤与分解,大部分情况下,过滤规则是上面基本规则的组合。有时,为了保证设置的缓冲区不被一些莫名其妙的无效数据溢出,必须在捕获前进行粗过滤,然后在捕获后再进行一次过滤,之后进行分析。 过滤完成后,为了使得缓冲区能处理的包更多,必须进行包分解(Slice),因
11、为数据包最关键的部分在数据包的头部,包分解的原则是对捕获的包按照相应协议规定的数据结构来提取结构中每个字段的数据。,3. 数据分析,数据分析就是对已经捕获的数据包进行各种分析,比如网络流量分析、数据包中信息分析、敏感信息提取分析等,其功能取决于系统要达到的目的。,常见的网络监听工具,8.2通过网络漏洞获取权限,首先要进行漏洞扫描,对前面提到的不同漏洞,都有专门的扫描工具可以很有效地扫描到漏洞。然后是利用相应工具进行入侵,从而获取系统的权限。,8.2通过网络漏洞获取权限,现有的各种操作系统平台都存在着安全隐患,从交换机,路由器使用的网络操作系统到Unix/Linux再到Microsoft操作系统
12、均无一例外,只不过这些平台的安全漏洞类型不同,或者发现时间不同,对系统造成的危害程度不同,也就是说,每一种操作系统平台上都有目前已经被发现的和潜在的各种安全漏洞。这些漏洞存在的直接后果是允许非法用户未经授权获得访问权限或提高其访问权限,从而可以使非法用户能在未授权情况下访问或破坏系统。,8.3基于网络账号口令破解获取权限,口令破解是网络进攻最基本的方法之一,口令窃取是一种比较简单、低级的入侵方法,但由于网络用户的急剧扩充和人们的忽视,使得口令窃取成为危及网络核心系统安全的严重问题。 口令是系统的大门,网上绝大多数的系统入侵是通过窃取口令进行的。,8.3基于网络账号口令破解获取权限,8.3.1
13、操作系统的口令管理 8.3.2 破解口令方法 8.3.3 口令破解工具,8.3.1 操作系统的口令管理,每个操作系统都有自己的口令数据库,用以验证用户的注册授权。以WINDOWS和UNIX为例,系统口令数据库都经过加密处理并单独维护存放。,8.3.1 操作系统的口令管理,在WINDOWS NT中,口令数据库存放在winntsys-tem32configsam目录下。该数据库中没有实际存放用户口令,它只是存放了一个用户口令的单向hash表。操作系统将用户的文本口令转化成Unicode,并使用MD-4生成唯一的单向hash值存入数据库。当用户登录系统时,工作站将用户口令转化成hash值,然后将该值
14、传给服务器,服务器检查该值是否与口令数据库相符,若匹配成功即完成登录。,8.3.2 破解口令方法,1. 强制口令破解 通过破解获得系统管理员口令,进而掌握服务器的控制权,是黑客的一个重要手段。破解获得管理员口令的方法有很多,下面是3种最为常见的方法。 (1)猜解简单口令; (2)字典攻击; (3)暴力猜解。,8.3.2 破解口令方法,2. 获取口令文件很多时候,入侵者会仔细寻找攻击目标的薄弱环节和系统漏洞,伺机复制目标中存放的系统文件,然后用口令破解程序破译。目前一些流行的口令破解程序能在7至10天内破译16位的操作系统口令。以Unix操作系统为例,用户的基本信息都放在passwd文件中,而所
15、有的口令则经过DES加密方法加密后专门存放在shadow文件中,并处于严密的保护之下,但由于系统可能存在缺陷或人为产生的错误,入侵者仍然有机会获取文件,一旦得到口令文档,入侵者就会用专门破解DES加密的方法进行破解口令。,8.3.3 口令破解工具,口令破解的一般过程如下: (1)首先使用一个字典文件,这个文件只是一般的文本文件(明文),它有许许多多的单词(通常称其为单词序列,或者词汇表)。 (2)将这些单词用DES或hash算法加密 。 (3)将加密后的单词与目标口令(加密后的口令)进行比较。如果相同,那么就说明这个口令已经被攻破。 (4)某些破译程序还对词汇表中的单词应用一些规则进行基本逻辑
16、组合筛选,以提高口令破解成功率。,8.3.3 口令破解工具,口令破解工具就是入侵者使用的口令破译程序. 口令破译程序通常采用上述方法,许多入侵事件都与口令窃取有关,目前口令破解的工具越来越简便实用,入侵事件的数量也越来越多。 口令破解程序通常采用字典法、枚举法,或两者结合的方法破解口令。以著名的NT口令攻击工具10phtcrack 为例,它可以采用两种方法破解口令。,8.3.3 口令破解工具,获取到密码之后自然也就获得了相应的网络权限。 关于口令窃取问题,现有两种比较模糊的认识: 一种是口令无忧论,认为如果系统设定了好的口令,如至少有8 个字符长,要有一些非字母字符,就很安全了。 其实不然,采
17、用字典穷举法自动循环猜测用户,理论上只要有足够的时间,入侵者就可以获得系统口令。 另一种是口令无用论,认为即使系统设定了好的口令也不能保证安全。于是他们或者听天由命或者频频更换口令,后果可想而知。,8.4通过网络欺骗获取权限,8.4.1 社会工程 8.4.2 网络钓鱼,8.4通过网络欺骗获取权限,8.4.1 社会工程社会工程学(Social Engineering),一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的手法,近年来已成迅速上升甚至滥用的趋势。社会工程学利用受害者心理弱点、结合心理学知识来获得目标系统的敏感信息。,8.4.2
18、 网络钓鱼,网络钓鱼 (password harvesting fishing, Phishing)就是通过欺骗手段获取敏感个人信息(如口令、信用卡详细信息等)的攻击方式, 攻击者通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息(如用户名、口令、账号 ID 、 ATM PIN 码或信用卡详细信息),欺骗手段一般是假冒成确实需要这些信息的可信方。,8.4.2 网络钓鱼,随着在线金融服务和电子商务的普及,大量的互联网用户开始享受这些在线服务所带来的便利,然而这也给了网络攻击者利用欺骗的形式骗取他们享受在线服务所必需的个人敏感信息的机会。,8.4.2 网络钓鱼,最
19、典型的网络钓鱼攻击是将收信人引诱到一个精心设计的与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息,通常这个攻击过程不会让受害者警觉,这些个人信息对黑客们具有非常大的吸引力,因为这些信息使得他们可以假冒受害者进行欺诈性金融交易,从而获得经济利益。由于能够直接获取经济利益,同时钓鱼者可以通过一系列技术手段使得他们的踪迹很难被追踪,所以网络钓鱼已经逐渐成为职业黑客们所最钟爱的攻击方式,同时也成为危害互联网用户的重大安全威胁之一。,2005 年5月至2006年5月报告的 网络钓鱼数量统计图,8.4.2 网络钓鱼,一旦钓鱼者建立起一个模仿可信机构的真实且能够让人信以为真的假
20、冒网站后,下一步是将用户从一个合法的网站转移到访问他们所架设的假冒网站。一个无戒备心的用户可能会收到一封看起来像是由他们的银行所发来的、带有银行正式标志的电子邮件,要求他们访问一个看起来与银行官方网站一模一样的网站并由于安全理由更改他们在线的银行口令, 当受害的用户打开虚假的网站,并按一般的习惯输入ID、密码和PIN码时,黑客就已经获得了他们想要的东西,就可以进入你的帐户。,8.4.2 网络钓鱼,2005 年五一节日期间出现了钓鱼网站 假冒工商银行网站,打着抽奖的招牌骗取用户填写密码。,8.5 基于TCP/IP会话劫持获取权限,所谓IP劫持是指,当用户连接远程机器的时候,攻击者能接管用户的连线
21、,使得正常连线如同经过攻击者一样。攻击者能任意对连线交换的数据进行修改,冒充合法用户给服务器发送非法命令,或者冒充服务器给用户返回虚假信息。 IP劫持不同于用网络侦听来窃取密码的被动攻击方式,而是一种主动攻击方式。,8.5 基于TCP/IP会话劫持获取权限,8.5.1 TCP运行机制 8.5.2 IP劫持攻击原理 8.5.3 TCP应答风暴 8.5.4 权限获取 8.5.5 进行会话劫持的工具,8.5.1 TCP运行机制,TCP协议 三次握手建立TCP连接(即一个TCP会话) 如何标识一个会话: 状态:源IP:端口+SN 目标IP:端口+SN 从TCP会话的状态入手 要了解每一个方向上的SN(
22、数据序列号) 两个方向上的序列号是相互独立的 TCP数据包,除了第一个SYN包之外,都有一个ack标志,给出了期待对方发送数据的序列号 所以,猜测序列号是成功劫持TCP会话的关键,连接非同步 在连接建立完毕并且没有数据交换的状态下,有下面的关系式成立:CLI_ACK=AVR_SEQ,SVR_ACK=CLI_SEQ此时的状态称为“同步状态”。若CLI_ACKAVR_SEQ,SVR_ACKCLI_SEQ. 则此时的状态称为 “同步非状态”。,8.5.2 IP劫持攻击原理,8.5.2 IP劫持攻击原理,在攻击中,攻击者诱使连接进入非同步状态,连接双方无法再进行正常的数据交换,而攻击者却能冒充合法客户
23、方发送可以被服务方接受的报文。这就构成了IP劫持攻击。,Kill a connection,攻击者发送一个RST包给B,并且假冒A的IP地址 观察A和B之间的数据往来,算出A和B的序列号,在适当的时机插入一个RST包,只要在插入点上,序列号正确,则RST包就会被接受,从而达到目的 攻击者发送一个FIN包给B,并且假冒A的IP地址 同样地,在适当的时机给B发送一个FIN包 这时候,A怎么办?,A,B,攻击者,会话劫持过程 (1),看到一个A-B包 TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB,A,攻击者,B,B回应一
24、个包,B-A TCP Packet ID (from_IP.port-to_IP.port): IP_B.PortB-IP_A.PortA,A回应一个包,A-B TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB,会话劫持过程 (2),攻击者模仿A插入一个包给B,假设这个包正常跟在第一个包之后 TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB,A,攻击者,B,B回应一个包,B-A TCP Packet ID (from_IP.port-to_IP
25、.port): IP_B.PortB-IP_A.PortA,此时,A会按照它所理解的SEQ/ACK发送包 TCP Packet ID (from_IP.port-to_IP.port):IP_A.PortA-IP_B.PortB 一阵广播风暴,会话劫持过程 (3),攻击者已经劫持了会话,它可以与B正常通讯(用A的地址) TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex): 5C8223F5 ACK (hex): C34A680B FLAGS: -AP- Window: 7C00,包长不定(比如37),
26、A,攻击者,B,B回应这个包,B-A TCP Packet ID (from_IP.port-to_IP.port): IP_B.PortB-IP_A.PortA SEQ (hex): C34A680B ACK (hex): 5C82241A FLAGS: -AP- Window: 2238,包长不定,会话劫持示意图,被劫持者A,服务器B,为了进行IP劫持攻击,首先必须制造连接的非同步状态。攻击者可以用网络监视器(如SUN下的Sniffit, PC上的NetXray等)来侦听广播网段上的报文,从而监控并分析他准备攻击的机器上所发送的各种报文,并予以攻击。在此介绍两个常用的方法:,非同步状态的制
27、造,当连接C建立之初,攻击者用网络侦听工具能窃取到客户方的连接端口号和序列号等重要信息。利用这些信息,攻击者就能冒充客户方,向服务方发送一个含有RST控制标记位的报文,要求重置该连接。当服务方收到这个报文后,就会重置连接C,并释放与该连接有关的所有资源。服务方不会对这个RST文给出应答。然而,客户方己经收到服务方SYN/ACK应答包,认为连接成功并进入Established状态。随后,攻击者冒充客户方发送一个新的SYN连接请求,并在其中填写自己的序列号(不妨称之为ATK_SEQ)。,1、连接重置法,由于原来分给连接C的端口号等资源在短时间内还未被分给其他连接,所以,服务方仍把这些资源分给攻击者
28、请求的连接,然后初始化自生的初始序列号SVR_SEQ1,并发送SM_ACK反馈报文。攻击者截获该报文后,根据反馈报文中的服务方序列号继续冒充客户方发送第三次握手反馈包。服务方收到该反馈包后就进入Established状态。至此,攻击者己经制造了非同步状态,然而合法连接的双方仍一无所知。,1、连接重置法,攻击者可以用发送大量空报文的方法使连接进入非同步状态。例如:当客户方通过telnet远程连接某服务器来创建连接时,它所发送的数据将被攻击者侦听到。连接建立完成后,攻击者可以冒充客户方向服务方发送大量的不含具体数据的报文,如在telnet连接中发送IAC NOP报文,服务方TCP实现就会简单地递增
29、SVR_ACK的值。由于TCP对无具体数据的报文是不予回答的,所以,客户方对此毫无所知,从而造成了连接的非同步状态。采用这种方法,攻击者甚至可以在连接正在建立时就进行非同步攻击。,2、空报文法,当客户方发送报文后,由于攻击者造成连接的非同步状态,所以服务方将这个报文抛弃,发回ACK反馈报文,通告可接受序列号。同样,客户方又认为该ACK反馈报文不可接受,于是丢弃该报文,并向服务方发回ACK反馈报文。服务方也认为报文的序列号不能接受,于是丢弃该报文,并向客户方发回ACK反馈报文,如此往复,从而构成了TCP的ACK风暴。若客户方收不到服务方的确认报文,就会重新发送报文,这将进一步加剧ACK风暴。,8
30、.5.3 TCP应答风暴,完成TCP/IP会话劫持后,想要获取网络权限是很容易的,这时攻击者已经完全获取被攻击方的TCP传送的数据,这里面含有攻击想获取的密码等信息,只要进行相应得信息提取即可。,8.5.4 权限获取,8.5.5 进行会话劫持的工具,可以进行会话劫持的工具很多,比较常用有 Juggernaut 可以进行TCP会话攻击的网络sniffer程序 Hunt 功能与Juggernaut类似 TTY Watcher 免费程序,针对单一主机上的连接 IP Watcher 商用的会话劫持工具,Hunt工具介绍,源码开放的自由软件,可运行在Linux平台上 功能特点 监听当前网络上的会话 重置
31、会话(reset a session) 劫持会话 在劫持之后,使连接继续同步 确定哪些主机在线 四个守护进程 自动reset Arp欺骗包的转发 收集MAC地址 具有搜索功能的sniffer,Hunt主菜单,l/w/r) list/watch/reset connections u) host up tests a) arp/simple hijack (avoids ack storm if arp used) s) simple hijack d) daemons rst/arp/sniff/mac o) options x) exit -,用hunt接管会话,用hunt接管并重置会话,H
32、unt劫持会话时听到的ACK风暴,如何防止会话劫持,部署共享式网络,用交换机代替集线器 TCP会话加密 防火墙配置 限制尽可能少量的外部许可连接的IP地址 检测 ACK包的数量明显增加,8.6 实验:口令破解,实验目的 学会使用简单的Windows口令破解工具,并进一步认识安全口令设置原则的重要性。 实验原理 字典破解和暴力破解。 实验环境 装有Windows2000/XP操作系统的计算机。,8.6 实验:口令破解,使用简单的Windows口令破解工具L0phtCrack5,对Windows2000/XP操作系统的帐户口令进行字典破解和暴力破解实验。 实验将设置空口令和简单口令并进行破解。在实
33、验之前,要建立新帐户test,口令设为空。打开L0phtCrack5,在文件菜单中选择LC5向导,进行破解前的设置。,8.6 实验:口令破解,LC5向导的界面和设置如下图所示:选择“NEXT”,得到:,8.6 实验:口令破解,选择导入加密口令的方法,此处由于破解本机计算机的口令,选择“从本地机器导入”,然后NEXT:,8.6 实验:口令破解,由于设置的是空口令,所以这里选择快速口令破解,再点击Next:,8.6 实验:口令破解,这里选择默认的设置即可,点击Next,再单击Finish,就开始破解。由于口令为空,所以很快就会有破解结果:,8.6 实验:口令破解,8.6 实验:口令破解,8.6 实验:口令破解,可以自己将test用户的口令改为123,保留上述设置再次破解来查看破解情况。 还可以将口令设置的更复杂一些,这时可以在图4所示选项中选择“自定义破解选项”,使用字典破解或暴力破解,只是破解所需要的时间要长一些。,