课件146张PPT。黑客与网络攻击技术第11章 黑客技术11.1 黑客的动机
11.2 黑客攻击的流程
11.3 黑客技术概述
11.4 针对网络的攻击
11.5 本章小结
习题黑客命名(1)飞客 “phreak”
早期攻击电话网的青少年,研究各种盗打电话而不用付费的技术。
黑客 “Hacker”
一个给予喜欢发现和解决技术挑战、攻击计算机网络系统的精通计算机技能的人的称号,与闯入计算机网络系统目的在于破坏和偷窃信息的骇客不同。
骇客 “Cracker”
一个闯入计算机系统和网络试图破坏和偷窃个人信息的个体,与没有兴趣做破坏只是对技术上的挑战感兴趣的黑客相对应。 黑客命名(2)快客 “Whacker”
从事黑客活动但没有黑客技能的人,whacker是穿透系统的人中,在技术和能力上最不复杂的一类。
武士 “Samurai”
被他人雇佣的帮助他人提高网络安全的黑客,武士通常被公司付给薪金来攻击网络。
幼虫 “Lara”
一个崇拜真正黑客的初级黑客
黑客命名(3)欲望蜜蜂“Wannabee”
处于幼虫的初始阶段的黑客的称呼,他们急于掌握入侵技术,但由于他们没有经验,因此即使没有恶意也可能造成很大危险
黑边黑客(Dark-Side)
是指由于种种原因放弃黑客的道德信念而恶意攻击的黑客
半仙 “Demigod”
一个具有多年经验在黑客团体具有世界级声誉的黑客。
黑客的动机究竟是什么?在回答这个问题前,我们应对黑客的种类有所了解,原因是不同种类的黑客动机有着本质的区别。从黑客行为上划分,黑客有“善意”与“恶意”两种,即所谓白帽(White Hat)及黑帽(Black Hat)。白帽利用他们的技能做一些善事,而黑帽则利用他们的技能做一些恶事。白帽长期致力于改善计算机社会及其资源,为了改善服务质量及产品,他们不断寻找弱点及脆弱性并公布于众。与白帽的动机相反,黑帽主要从事一些破坏活动,从事的是一种犯罪行为。11.1 黑客的动机大量的案例分析表明黑帽具有以下主要犯罪动机。
(1) 好奇心
许多黑帽声称,他们只是对计算机及电话网感到好奇,希望通过探究这些网络更好地了解它们是如何工作的。
(2) 个人声望
通过破坏具有高价值的目标以提高在黑客社会中的可信度及知名度。
(3) 智力挑战
为了向自己的智力极限挑战或为了向他人炫耀,证明自己的能力;还有些甚至不过是想做个“游戏高手”或仅仅为了“玩玩”而已。(4) 窃取情报
在Internet上监视个人、企业及竞争对手的活动信息及数据文件,以达到窃取情报的目的。
(5) 报复
电脑罪犯感到其雇主本该提升自己、增加薪水或以其他方式承认他的工作。电脑犯罪活动成为他反击雇主的方法,也希望借此引起别人的注意。
(6) 金钱
有相当一部分电脑犯罪是为了赚取金钱。(7) 政治目的
任何政治因素都会反映到网络领域。主要表现有:
①敌对国之间利用网络的破坏活动;
②个人及组织对政府不满而产生的破坏活动。这类黑帽的动机不是钱,几乎永远都是为政治,一般采用的手法包括更改网页、植入电脑病毒等。
尽管黑客攻击系统的技能有高低之分,入侵系统手法多种多样,但他们对目标系统实施攻击的流程却大致相同。其攻击过程可归纳为以下9个步骤:踩点(Foot Printing)、扫描(scanning)、查点(enumeration)、获取访问权(Gaining Access)、权限提升(Escalating Privilege)、窃取(pilfering)、掩盖踪迹(Covering Track)、创建后门(Creating Back Doors)、拒绝服务攻击(Denial of Services)。黑客攻击流程如图11.1所示。11.2 黑客攻击的流程图11.1 黑客攻击流程图“踩点”原意为策划一项盗窃活动的准备阶段。举例来说,当盗贼决定抢劫一家银行时,他们不会大摇大摆地走进去直接要钱,而是狠下一番工夫来搜集这家银行的相关信息,包括武装押运车的路线及运送时间、摄像头的位置、逃跑出口等信息。在黑客攻击领域,“踩点”是传统概念的电子化形式。“踩点”的主要目的是获取目标的如下信息:11.2.1 踩点(1) 因特网网络域名、网络地址分配、域名服务器、邮件交换主机、网关等关键系统的位置及软硬件信息。
(2) 内联网与Internet内容类似,但主要关注内部网络的独立地址空间及名称空间。
(3) 远程访问模拟/数字电话号码和VPN访问点。
(4) 外联网与合作伙伴及子公司的网络的连接地址、连接类型及访问控制机制。
(5) 开放资源未在前4类中列出的信息,例如 Usenet、雇员配置文件等。
为达到以上目的,黑客常采用以下技术。1.开放信息源搜索
通过一些标准搜索引擎,揭示一些有价值的信息。例如,通过使用Usenet工具检索新闻组(newsgroup)工作帖子,往往能揭示许多有用东西。通过使用Google检索Web的根路径C:\Inetpub,揭示出目标系统为Windows NT/2000。2.whois查询
whois是目标Internet域名注册数据库。目前,可用的whois数据库很多,例如,查询com、net、edu及org等结尾的域名可通过http://www.networksolutions.com得到,而查询美国以外的域名则应通过查询http://www.allwhois.com得到相应whois数据库服务器的地址后完成进一步的查询。
Whois是为Internet 提供目录服务 , 包括名字 、 通讯地址 、 电话号码 、 电子邮箱 、 IP地址等信息。
进入http://whois.hichina.com/ 界面 , 在界面的对话框中我们输入 www.sina.com.cn 的域名 , 选择”go”,whois 为我们检索信息 。
通过对whois数据库的查询,黑客能够得到以下用于发动攻击的重要信息:
注册机构,得到特定的注册信息和相关的whois服务器;机构本身,得到与特定目标相关的全部信息;
域名,得到与某个域名相关的全部信息;
网络,得到与某个网络或IP相关的全部信息;
联系点(POC),得到与某个人(一般是管理联系人)的相关信息。
例如,下面是通过http://www.networksolutions.com查询
Ibm.com得到的IBM公司的信息:Registrant:
IBM Corporation (IBM?DOM)
Old Orchard Rd.
Armonk, NY 10504
USDomain Name: IBM.COM
Administrative Contact, Technical Contact:
Trio, Nicholas R(SZFHGULFPI)nrt@WATSON.IBM.COM
PO BOX 218
YORKTOWN HTS, NY10598?0218
US
(914) 945?1850 123 123 1234
Record expires on 20?Mar?2005.
Record created on 19?Mar?1986.
Database last updated on 8?May?2003 21:18:57 EDT.
Domain servers in listed order:
NS.WATSON.IBM.COM 129.34.20.80
NS.ALMADEN.IBM.COM 198.4.83.35
NS.AUSTIN.IBM.COM 192.35.232.34
NS.ERS.IBM.COM 204.146.173.353.DNS区域传送
DNS区域传送是一种DNS服务器的冗余机制。通过该机制,辅DNS服务器能够从其主DNS服务器更新自己的数据,以便主DNS服务器不可用时,辅DNS服务器能够接替主DNS服务器工作。正常情况下,DNS区域传送操作只对辅DNS服务器开放。然而,当系统管理员配置错误时,将导致任何主机均可请求主DNS服务器提供一个区域数据的拷贝,以至于目标域中所有主机信息泄露。能够实现DNS区域传送的常用工具有dig、nslookup及Windows版本的 Sam Spade(其网址为http://www.samspade.org)。通过踩点已获得一定信息(IP地址范围、DNS服务器地址、邮件服务器地址等),下一步需要确定目标网络范围内哪些系统是“活动”的,以及它们提供哪些服务。与盗窃案之前的踩点相比,扫描就像是辨别建筑物的位置并观察它们有哪些门窗。扫描的主要目的是使攻击者对攻击的目标系统所提供的各种服务进行评估,以便集中精力在最有希望的途径上发动攻击。
扫描中采用的主要技术有Ping扫射(Ping Sweep)、TCP/UDP端口扫描、操作系统检测以及旗标(banner)的获取。11.2.2 扫描1.Ping扫射
Ping扫射是判别主机是否“活动”的有效方式。Ping用于向目标主机发送“ICMP”回射请求(Echo Request)分组,并期待由此引发的表明目标系统“活动”的回射应答(Echo Reply)分组。常用的ping扫射工具有操作系统的Ping命令及用于扫射网段的fping、WS_ping等。2.端口扫射
端口扫描就是连接到目标机的TCP和UDP端口上,确定哪些服务正在运行及服务的版本号,以便发现相应服务程序的漏洞。著名的扫描工具有UNIX系统上运行的Netcat (http://www.atstake.com/research/tools/network utilities)及Nmap(http://www.insecure.org/nmap),Windows系统上运行的 superscan(http://www.webattack.com/get/superscan.shtml)及NetScan Tool Pro 2003(http://www.nwpsw.com)。3.操作系统检测
由于许多漏洞是和操作系统紧密相关的,因此,确定操作系统类型对于黑客攻击目标来说也十分重要。目前用于探测操作系统的技术主要可以分为两类:利用系统旗标信息和利用TCP/IP堆栈指纹。每种技术进一步细分为主动鉴别及被动鉴别。目前,常用的检测工具有Nmap、Queso(http://www.apostols.org/projectz/queso)、Siphon(http://siphon.datanerds.net)。协议栈指纹识别[stack fingerprinting]此技术分两类,一类是主动识别,另一类则是被动识别
主动协议栈指纹识别原理:由于TCP/IP协议栈技术只是在RFC 文档中描叙,并没有一个统一的行业标准,于是各个公司在编写应用于自己的OS的TCP/IP协议栈时,对RFC文档做出了不尽相同的诠释,于是造成了各个OS在TCP/IP协议的实现上不同。
好比人类的指纹,每个普通人都有指纹,但是没有两个人的指纹是一模一样的。通过对不同 OS的TCP/IP协议栈存在的些微差异的鉴别来判定OS类型关于主动协议栈指纹识别这个领域最权威的论文是Fyodor发表在Phrack杂志上的《Remote OS detection via TCP/IP Stack FingerPrinting 》各种主动发送的探测数据包类型:FIN 探测:根据RFC 793文档,往目标主机上一个打开的端口发送一个FIN分组[其实任何无ACK和SYN标记的包可以达到同样的目的],正确的响应应该是无任何响应;但是,许多OS的TCP/IP协议栈实现上将返回一个FIN/ACK包[据笔者不完全统计有WINNT ,CISCO IOS,HP/UX,IRIX等]
BOGUS 标记探测:发送一个含有未定义的TCP标记的TCP头的SYN包,那么一些OS[比如Linux]的回应将包含这个未定义的标记,在其它一些系统收到SYN+BOGUS包将关闭连接利用这些特性可以标识一些OS。
TCP 初始窗口大小检测:简单检查返回的包里包含的窗口大小,某些OS在TCP/IP协议栈的实现中,这个值是独特的[AIX是0x3F25,NT和BSD是0x402E],可以增加指纹鉴别的准确度。被动协议栈指纹识别主动协议栈指纹识别由于需要主动往目标发送数据包,但这些数据包在网络流量中比较惹人注目,因为正常使用网络不会按这样的顺序出现包,因此比较容易被IDS捕获为了隐秘地识别远程OS,就需要使用被动协议栈指纹识别。被动协议栈指纹识别在原理上和主动协议栈指纹识别相似,但是它从不主动发送数据包,只是被动地捕获 远程主机返回的包来 分析其OS类型[版本]四种常用的被动签名[signature]:TTL值: Time-To-Live 设置是什么窗口大小: OS设置的窗口大小DF: 是否设置 Don't Fragment [不分片]TOS:设置的服务类型4.旗标获取
最后一种扫描手段是旗标获取。在旗标获取方法中,使用一个打开端口来联系和识别系统提供的服务及版本号。最常用的方法是连接到一个端口,按 Enter 键几次,看返回什么类型的信息。
例如: [Netat_svr#] Telnet 192.168.5.33 22
SSH-1.99-OpenSSH_3.1p1
表明该端口提供SSH服务,版本号为3.1p1。
通过扫描,入侵者掌握了目标系统所使用的操作系统,下一步工作是查点。查点就是搜索特定系统上用户和用户组名、路由表、SNMP信息、共享资源、服务程序及旗标等信息。查点所采用的技术依操作系统而定。
在Windows系统上主要采用的技术有“查点NetBIOS”线路、空会话(Null Session)、SNMP代理、活动目录(Active Directory)等。Windows系统上主要使用以下工具:
(1) Windows系统命令
net view、nbtstat、nbtscan及nltest。11.2.3 查点(2) 第三方软件? Netviewx(http://www.ibt.ku.dk/jesper/NetViewX/default.htm);
Userdump(http://www.hammerofgod.com/download.htm);
User2sid(http://www.ntbugtraq.com);
GetAcct(http://securityfriday.com);
DumpSec(http://www.somarsoft.com);
Legion(http://www.legionlan.com);
NAT(http://www.hackingexposed.com)。在UNIX系统上采用的技术有RPC查点、NIS查点、NFS查点及SNMP查点等。UNIX系统上常用的工具有rpcinfo、rpcdump、showmount、finger、rwho、ruser、nmap、telnet、nc及snmpwalk等。在搜集到目标系统的足够信息后,下一步要完成的工作自然是得到目标系统的访问权进而完成对目标系统的入侵。对于Windows系统采用的主要技术有NetBIOS?SMB(Server Message Block 服务器信息块协议)密码猜测(包括手工及字典猜测)、窃听LM及NTLM认证散列、攻击IIS Web服务器及远程缓冲区溢出。而UNIX系统采用的主要技术有蛮力密码攻击;密码窃听;通过向某个活动的服务发送精心构造的数据,以产生攻击者所希望的结果的数据驱动式攻击(例如缓冲区溢出、输入验证、字典攻击等);RPC攻击;NFS攻击以及针对X-Windows系统的攻击等。11.2.4 获取访问权早期的SMB协议在网络上明文传输口令,后来出现了"LAN Manager Challenge/Response"验证机制,简称LM,微软随后提出了WindowsNT挑战/响应验证机制,即NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM工作流程是这样的:
1、客户端首先在本地加密当前用户的密码成为密码散列
2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输
3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战)
4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response(响应)
5、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge。
7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。著名的密码窃听工具有sniffer pro(http://www.sniffer.com)、TCPdump、LC4(L0phtcrack version 4,http://www.atstake.com/research/lc/)、readsmb。字典攻击工具有LC4、John the RIPper(http://www.openwall.com/john)、NAT、SMBGrind(http://www.nai.com)及fgrind。
一旦攻击者通过前面4步获得了系统上任意普通用户的访问权限后,攻击者就会试图将普通用户权限提升至超级用户权限,以便完成对系统的完全控制。这种从一个较低权限开始,通过各种攻击手段得到较高权限的过程称为权限提升。权限提升所采取的技术主要有通过得到的密码文件,利用现有工具软件,破解系统上其他用户名及口令;利用不同操作系统及服务的漏洞(例如Windows 2000 NetDDE漏洞),利用管理员不正确的系统配置等。11.2.5 权限提升常用的口令破解工具有John The RIPper、 John The RIPper,得到Windows NT管理员权限的工具有lc_message、getadmin、sechole、Invisible Keystroke Logger(http://www.amecisco.com/iksnt.htm)。
一旦攻击者得到了系统的完全控制权,接下来将完成的工作是窃取,即进行一些敏感数据的篡改、添加、删除及复制(例如Windows系统的注册表、UNIX系统的rhost文件等)。通过对敏感数据的分析,为进一步攻击应用系统做准备。11.2.6 窃取黑客并非踏雪无痕,一旦黑客入侵系统,必然留下痕迹。此时,黑客需要做的首要工作就是清除所有入侵痕迹,避免自己被检测出来,以便能够随时返回被入侵系统继续干坏事或作为入侵其他系统的中继跳板。掩盖踪迹的主要工作有禁止系统审计、清空事件日志、隐藏作案工具及使用人们称为rootkit的工具组替换那些常用的操作系统命令。11.2.7 掩盖跟踪早期的rootkit主要为应用级rootkit,应用级rootkit主要通过替换login、ps、ls、netstat等系统工具,或修改.rhosts等系统配置文件等实现隐藏及后门;硬件级rootkit主要指bios rootkit,可以在系统加载前获得控制权,通过向磁盘中写入文件,再由引导程序加载该文件重新获得控制权,也可以采用虚拟机技术,使整个操作系统运行在rootkit掌握之中;目前最常见的rootkit是内核级rootkit。
内核级rootkit又可分为lkm rootkit、非lkm rootkit。lkm rootkit主要基于lkm(Loadable Kernel Module-可装载内核模块)技术,通过系统提供的接口加载到内核空间,成为内核的一部分,进而通过hook系统调用等技术实现隐藏、后门功能。非lkm rootkit主要是指在系统不支持lkm机制时修改内核的一种方法,主要通过/dev/mem、/dev/kmem设备直接操作内存,从而对内核进行修改。 rootkit黑客的最后一招便是在受害系统上创建一些后门及陷阱,以便入侵者一时兴起时,卷土重来,并能以特权用户的身份控制整个系统。创建后门的主要方法有创建具有特权用户权限的虚假用户账号、安装批处理、安装远程控制工具、使用木马程序替换系统程序、安装监控机制及感染启动文件等。11.2.8 创建后门黑客常用的工具有rootkit、sub7(http://www.sub7.net)、cron、at、UNIX的rc、Netcat(http://www.atstake.com/research/tools)、VNC(http://www.realvnc.com)、BO2K(http://sourceforge.net/projects/bo2k)、secadmin、Invisible Keystroke Logger、remove.exe等。
如果黑客未能成功地完成第四步的获取访问权,那么他们所能采取的恶毒的手段便是进行拒绝服务攻击。即使用精心准备好的漏洞代码攻击系统使目标服务器资源耗尽或资源过载,以致于没有能力再向外提供服务。攻击所采用的技术主要是利用协议漏洞及不同系统实现的漏洞。11.2.9 拒绝服务攻击网络是多种信息技术的集合体,它的运行依靠相关的大量技术标准和协议。作为网络的入侵者,黑客的工作主要是通过对技术和实际实现中的逻辑漏洞进行挖掘,通过系统允许的操作对没有权限操作的信息资源进行访问和处理。目前,黑客对网络的攻击主要是通过网络中存在的拓扑漏洞以及对外提供服务的漏洞实现成功的渗透。11.3 黑客技术概述除了使用这些技术上的漏洞,黑客还可以充分利用人为运行管理中存在的问题对目标网络实施入侵。通过欺骗、信息搜集等社会工程学的方法,黑客可以从网络运行管理的薄弱环节入手,通过对人本身的习惯的把握,迅速地完成对网络用户身份的窃取并进而完成对整个网络的攻击。
可以看出,黑客的技术范围很广,涉及网络协议解析、源码安全性分析、密码强度分析和社会工程学等多个不同的学科。入侵一个目标系统,在早期需要黑客具有过硬的协议分析基础、深厚的数学功底。但由于网络的共享能力以及自动攻击脚本的成熟与广泛的散播,现在黑客的行为愈演愈烈,而对黑客的技术要求也在不断地降低。目前,在实施网络攻击中,黑客所使用的入侵技术主要包括以下几种:
协议漏洞渗透;
密码分析还原;
应用漏洞分析与渗透;
社会工程学;
拒绝服务攻击;
病毒或后门攻击。常见的网络攻击手段控制类攻击:试图获得对目标机器控制权,如口令攻击、木马等
探测类攻击:收集目标系统的各种与网络安全有关的信息,为下一步入侵提供帮助,如端口扫描、网络嗅探等
欺骗类攻击:冒充合法网络主机骗取敏感信息,或散步假消息实施攻击,如伪造电子邮件、IP地址欺骗等
漏洞类攻击:对网络系统的各种漏洞实施的相应攻击,花样繁多
破坏类攻击:对目标机器的数据或软件实施破坏,如计算机病毒、逻辑炸弹等
阻塞类攻击:企图通过强制占有信道资源、网络连接资源、存储空间资源,使服务器崩溃或资源耗尽无法对外继续提供服务,如拒绝服务攻击(DoS,Denial of Service)网络中包含着种类繁多但层次清晰的网络协议规范。这些协议规范是网络运行的基本准则,也是构建在其上的各种应用和服务的运行基础。但对于底层的网络协议来说,对于安全的考虑有着先天的不足,部分网络协议具有严重的安全漏洞。通过对网络标准协议的分析,黑客可以从中总结出针对协议的攻击过程,利用协议的漏洞实现对目标网络的攻击。11.3.1 协议漏洞渗透随着网络的不断发展,网络安全越来越得到管理者的重视,大量陈旧的网络协议被新的更安全的网络协议所代替。作为现代网络的核心协议,TCP/IP协议正在不断地得到安全的修补,即在不破坏正常协议流程的情况下,修改影响网络安全的部分。当然,由于先天的不足,一些协议上的漏洞是无法通过修改协议弥补的。通过应用这些固有的协议漏洞,黑客开发出了针对特定网络协议环境下的网络攻击技术,这些技术以会话侦听与劫持技术和地址欺骗技术应用较多。1.会话侦听与劫持技术
传统的以太网络使用共享的方式完成对数据分组的传送。这在目前尤其在一些已经有一定历史的网络中是主要的分组发送方式。在这种方式下,发往目的结点的分组数据实际上被发送给了所在网段的每一个结点。目的结点接收这些分组,并与其他结点共享传送带宽。虽然从带宽的利用率上,这样做的实现利用率并不高,但由于实际的实现较为简单,同时造价较低,因此在网络中得到了广泛的应用。正是根据共享式的网络环境的数据共享特性,黑客技术中出现了会话窃听与劫持技术。只要可以作为目标网络环境的一个结点,就可以接收到目标网络中流动的所有数据信息。这种接收的设置非常简单,对于普通的计算机,只要将网卡设为混杂模式就可以达到接收处理所有网络数据的目的。利用会话窃听技术,入侵者可以通过重组数据包将网络内容还原,轻松地获得明文信息。例如,当前的网站登录中,在密码传输方面使用的方式几乎都是明文传送。因此,这类密码也就相当容易获得。由于人的因素,每个人使用的用户名和密码都只限于几个。通过获取明文密码信息,入侵者不但可以轻易地以被监听者的身份进入到各个网站,还可以通过搜集的用户密码表进入被监听人的计算机进行破坏。会话窃听技术是网络信息搜集的一种重要方式,而利用TCP协议的漏洞,黑客更可以对所窥探的TCP连接进行临时的劫持,以会话一方用户的身份继续进行会话。会话劫持的根源在于TCP协议中对分组的处理。
2.地址欺骗技术
在传统的网络中,存在着大量的简单认证方式,这些方式的基本原则就是以主机的IP地址作为认证的基础,即所谓的主机信任。通过设定主机信任关系,用户对网络的访问和管理行为变得简单,很大程度上提高了网络的易用性。这样的认证行为基于以下网络协议原则,即在网络中,所有的计算机都是通过如IP这样的地址进行辨认,每一个主机具有固定的并且是惟一(这里的惟一相对于所在网络而言)的地址。通过确认IP就可以确认目标主机的身份。但就像现实中有假的身份证一样,网络的地址也可以被假冒,这就是所谓IP地址的欺骗。由于网络的基础协议在安全性上的漏洞,这种假冒远较现实中的假冒方便简单。通过对地址的假冒,入侵者可以获得所仿冒地址计算机的所有特权,也就容易攻入到其他给被仿冒计算机提供信任连接的计算机上,造成机密泄漏。ARP欺骗攻击
网络上的计算机之间是通过IP地址通信的,但是IP地址是位于网络层的逻辑地址,计算机之间要想真的进行数据交换必须知道它的物理地址,ARP就是将逻辑地址转换成物理地址的一个协议。因此ARP的协议的安全就显的非常重要。现在对ARP攻击最常用的一种方式就是ARP欺骗,在这种攻击方式下,攻击方可以通过伪造ARP请求与应答更新目标主机的ARP缓存从而骗过目标机。使目标机的数据包发给攻击者。攻击者就可以对截获的数据包的内容进行分析破解目标机的信息。 中间人攻击
假设三台计算机A、B、C。机器C修改A的ARP缓存表,将表中B的IP地址对应的MAC地址改成C的MAC地址。当A给B发送数据时,就使用了B的IP地址与C的MAC地址,使给B发送的数据全部发给了C。
同理修改目标机B的ARP缓存表使A的IP地址对应的MAC地址改成C的MAC地址。最终A与B之间通信的数据就全部经过C,之后C又把数据发给A和B。为了保证数据的安全性,现在通常的方法是对数据进行加密,防止可疑的截取行为造成的信息泄漏。对于数据的加密通常需要一个密钥,数据与密钥通过加密算法自动机进行合成,生成密文。对于不知道密钥的攻击者来说,截获的密文难以理解。而对于非对称加密算法,即使攻击者知道密钥,也无法从密文中还原出明文信息。这样就可以保证网络通信信息的安全性。同样,对于认证用的密码信息,一般也是使用强度较高的加密算法进行加密,以密文的形式存储在系统中。这些密文使用加密算法的强度一般较高,黑客即使获得密文存储文件,也难以从这些密文中分析出正确的密码。11.3.2 密码分析还原密码学等加密技术向人们做出保证,密码的攻破理论上是不可行的,如果采用蛮力攻击的话,所用的时间将长到足够保证安全的程度。但现实中,密码的破解却并不如理论中所保证的那样困难。随着计算机运算速度的指数级提高,相同的运算量所使用的时间明显地缩短。同时,对加密算法的强度分析以及社会工程学的密码筛选技术的不断发展,现实网络中的大量密码可以在可接受的时间内被分析还原。密码分析与还原技术不使用系统和网络本身的漏洞,虽然涉及对密码算法的强度分析,但它主要利用的是人的惰性以及系统的错误配置。应用这类技术手段攻击通常是可以通过人工手段避免的,只要严格要求网络所在用户的密码强度,还是可以避免大部分的攻击,但由于这涉及人员管理,代价也非常大。目前网络中使用的加密算法,从加密的种类上来分,主要包括对称加密和非对称加密两种基本的类别。根据分析的出发点不同,密码分析还原技术主要分为密码还原技术和密码猜测技术。对于网络上通用的标准加密算法来说,攻击这类具有很高强度加密算法的手段通常是使用后一种技术。在进行攻击的时候,密码分析还原所针对的对象主要是通过其他侦听手段获取到的认证数据信息,包括系统存储认证信息的文件或利用连接侦听手段获取的用户登录的通信信息数据。1.密码还原技术
密码还原技术主要针对的是强度较低的加密算法。通过对加密过程的分析,从加密算法中找出算法的薄弱环节,从加密样本中直接分析出相关的密钥和明文。对于非对称算法,可以通过对密文的反推将明文的可能范围限定在有限的范围内,达到还原密文的结果。这种方法需要对密码算法有深入的研究,同时,相关算法的密码还原过程的出现,也就注定了相应加密算法寿命的终结。对于目前网络上通行的标准加密算法来说,从理论和实践中还没出现对应的密码还原过程,因此密码还原技术的使用并不多。但对于没有公开加密算法的操作系统来说,由于算法的强度不够,在过程被了解后,黑客就会根据分析中获得的算法漏洞完成密码还原的算法。现在,对于Windows操作系统来说,用户认证的加密算法就已经被分析攻破,用户只要使用密码破解程序就可以完成对系统上所有密码的破解,获取系统上所有用户的访问权限。
2.密码猜测技术
密码还原技术需要目标系统使用强度不高的、有一定安全漏洞的加密算法,而对于一般的成熟加密算法,密码攻击主要使用的是密码猜测技术。密码猜测技术的原理主要是利用穷举的方法猜测可能的明文密码,将猜测的明文经过加密后与实际的密文进行比较,如果所猜测的密文与实际的密文相符,则表明密码攻击成功,攻击者可以利用这个密码获得相应用户的权限。往往这样猜测出来的密码与实际的密码相一致。密码猜测技术的核心在于如何根据已知的信息调整密码猜测的过程,在尽可能短的时间内破解密码。从理论上讲,密码猜测的破解过程需要一段很长的时间,而实际上,应用密码猜测技术实现对系统的攻击是目前最为有效的攻击方式。这种方法比想像的更加有效的原因是许多人在选择密码时,技巧性都不是很好,密码复杂性不高。简单的密码非常容易猜到,例如,很多人使用用户名加上一些有意义的数字(生日或是连续数字序列等)作为自己的密码,甚至有些人的密码与用户名相同,一些密码长度只有几个甚至一个字符。这类密码容易记忆,但也方便了入侵者。密码猜测技术就是利用人们的这种密码设置习惯,针对所搜集到的信息,对有意义的单词和用户名与生日形式的数列代码或简单数字序列进行排列组合,形成密码字典,同时根据所搜集到的用户信息,对字典的排列顺序进行调整。以这个生成的字典作为基础,模拟登录的方式,逐一进行匹配操作,密码猜测工具可以利用这种方式破解大量的系统。密码猜测技术的核心就是这种密码字典的生成技术。上述的生成方式是密码字典的基本生成原则。随着对目标网络用户信息搜集的深入,密码猜测工具对字典进行的筛选越来越精细,字典序列调整的依据也就越多。对于攻击用的密码猜测技术,其主要目的就是为了获取对目标网络的访问权限,它是黑客入侵过程中介于信息搜集和攻击之间的攻击过程。从对目标网络的密码猜测攻击中就可以了解到目标网络对安全的重视程度。在以往黑客攻击的事件中,有大量目标网络由于不重视安全管理,用户的密码强度不够,黑客可以在几分钟甚至几秒钟的时间内破解大量一般用户甚至是管理员账户的密码。任何的应用程序都不可避免地存在着一些逻辑漏洞,这在IT行业中已经形成了共识。这一点,对于安全隐患也同样适用。在这方面操作系统也不例外,几乎每天都有人宣布发现了某个操作系统的安全漏洞。而这些安全漏洞也就成为了入侵者的攻击对象。通过对这些安全漏洞的分析,确认漏洞的引发方式以及引发后对系统造成的影响,攻击者可以使用合适的攻击程序引发漏洞的启动,破坏整个服务系统的运行过程,进而渗透到服务系统中,造成目标网络的损失。11.3.3 应用漏洞分析与渗透目前,对各个网站的攻击几乎都使用到了应用漏洞分析与渗透技术,攻击者或是利用WWW服务器的漏洞,或是利用操作系统的缺陷攻入服务器,篡改网站主页。最近经常提及的对微软的IIS服务器的攻击,就是利用IIS对unicode解释的缺陷实现的。由于这类错误,入侵者甚至只使用浏览器就可以随意地篡改网站服务器的内容。
最新的病毒Nimda也是利用了Outlook Express的安全漏洞迅速地传播开来的。
应用漏洞从错误类型上主要包括服务流程漏洞和边界条件漏洞。Unicode也是一种字符编码方法,可以容纳全世界所有语言文字的编码方案。从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。
NSFOCUS安全小组发现IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。 对于IIS 5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如"%c1%hh" 或者"%c0%hh"它会首先将其解码变成:0xc10xhh, 然后尝试打开这个文件,Windows 系统认为0xc10xhh可能是unicode编码,因此它会首先将其解码,如果 0x00<= %hh < 0x40的话,采用的 解码的格式与下面的格式类似: %c1%hh -> (0xc1 - 0xc0) * 0x40 + 0xhh %c0%hh -> (0xc0 - 0xc0) * 0x40 + 0xhh 因此,利用这种编码,我们可以构造很多字符,例如: %c1%1c -> (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/' %c0%2f -> (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '' 攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。 如果系统包含某个可执行目录,就可能执行任意系统命令。浏览器地址栏中禁用符号“../”,但是可以使用符号“/”的Unicode的编码。比如 “/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir”中的“%c0%2f”就是“/”的Unicode编码。这条语句是执行dir命令列出目录结构。
利用该漏洞读取出计算机上目录列表,比如读取C盘的目录,只要在浏览器中输入
“http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir+c:”
利用Unicode漏洞读取系统盘目录 利用Unicode漏洞删除主页1.服务流程漏洞
服务流程漏洞指服务程序在运行处理过程中,由于流程次序的颠倒或对意外条件的处理的随意性,造成用户有可能通过特殊类型的访问绕过安全控制部分或使服务进入到异常的运行状态。例如,著名的IIS漏洞就是由unicode的解释过程在路径安全确认过程之后这样的流程错误产生的。利用这种流程错误,用户可以将路径分割符分解为unicode编码中的两个字符,造成服务在确认路径的时候被误认为属于文件名而分析通过,在经过unicode解释后,系统根据指定的路径达到了对系统非公开资源的非法访问。又如用户可以对处理输入不严密的CGI程序输入含有运行代码的请求,如果没有对输入进行合法性的处理,CGI程序就会在执行的过程中启动用户写入的运行代码,造成系统信息的泄漏或破坏。2.边界条件漏洞
边界条件漏洞则主要针对服务程序中存在的边界处理不严谨的情况。在对服务程序的开发过程中,很多边界条件尤其是对输入信息的合法性处理往往很难做到周全,在正常情况下,对边界条件考虑的不严密并不会造成明显可见的错误,但这种不严密的处理却会带来严重的安全隐患。在边界漏洞中,以内存溢出错误最为普遍,影响也最为严重。有很多攻击都是利用超长的数据填满数据区并造成溢出错误,利用这种溢出在没有写权限的内存中写入非法数据。这些数据有些只是单纯地造成相关服务的停止,而另一些则带有可运行信息,通过溢出,重定向了返回指针,启动写入数据中的运行代码,获取远程操作系统的超级管理员权限或是对数据进行破坏,造成服务甚至整个系统的崩溃。由于这种攻击涉及系统内核和内存分配,与操作系统直接相关,但往往非常有效,并且很难杜绝。这种类型的攻击是目前应用最多的攻击方式,对于网络的影响也最为严重。这类攻击包括BIND溢出攻击、sendmail溢出攻击、Linux bash缓冲溢出攻击等。随着应用程序的复杂性不断提高,边界条件类型的漏洞将会不断出现,而基于这种漏洞的攻击也会不断增加。 BIND是一个实现域名服务协议的服务器软件。它在Internet上被广为使用。它在TSIG(传输签名)的实现上存在一个缓冲区溢出漏洞,可能允许远程攻击者在BIND服务器上执行任意代码。
由于溢出发生在DNS请求的初始化过程中,因此并不需要攻击者控制任何地权威DNS服务器。Sendmail <8.12.8版本在处理和评估通过SMTP会话收集的邮件头部时存在一个远程溢出漏洞。当邮件头部包含地址或者地址列表(例如“From”, “To”, “CC”)时,Sendmail会试图检查是否所提供的地址或地址列表是有效的。
然而其中一个安全检查存在安全缺陷,导致远程攻击者通过提交特制的地址域来造成一个缓冲区溢出。利用这个漏洞,攻击者可以获得Sendmail运行用户的权限,在大多数的Unix或者Linux系统上Sendmail都是以root用户身份运行。社会工程学与黑客使用的其他技术具有很大的差别,它所研究的对象不是严谨的计算机技术,而是目标网络的人员。社会工程学主要是利用说服或欺骗的方法来获得对信息系统的访问。这种说服和欺骗通常是通过和人交流或其他互动方式实现的。11.3.4 社会工程学简单地说,社会工程学就是黑客对人类天性趋于信任倾向的聪明利用。黑客的目标是获得信息,通过获得那些重要系统未授权的访问路径来获取该系统中的某些信息。信任是一切安全的基础。一般认为对于保护与审核的信任是整个安全链中最薄弱的一环,人类那种天生愿意相信其他人的说辞的倾向让大多数人容易被这种手段所利用。这也是许多很有经验的安全专家所强调的。
可以从两个层次来对社会工程学类的攻击进行分析:物理上的和心理上的。1.物理分析
物理上,入侵发生的物理地点可以是工作区、电话、目标企业垃圾堆,甚至是在网上。
(1) 对于工作区来说,黑客可以只是简单地走进来,冒充允许进入公司的维护人员或是顾问。大多数情况下,入侵者可以对整个工作区进行深入的观察,直到找到一些密码或是一些可以利用的资料之后离开。另一种获得审核信息的手段就是站在工作区观察公司雇员如何键入密码并偷偷记住。(2) 最流行的社会工程学手段是通过电话进行的。黑客可以冒充一个权力很大或是很重要的人物的身份,打电话从其他用户那里获得信息。一般机构的咨询台容易成为这类攻击的目标。咨询台之所以容易受到社会工程学的攻击,是因为他们所处的位置就是为他人提供帮助的,因此就可能被人利用来获取非法信息。咨询台人员一般接受的训练都是要求他们待人友善,并能够提供别人所需要的信息,所以这就成为了社会工程学家们的金矿。大多数的咨询台人员所接受的安全领域的培训与教育很少,这就造成了很大的安全隐患。 (3) 翻垃圾是另一种常用的社会工程学手段。因为企业的垃圾堆里面往往包含了大量的信息。在垃圾堆中可以找出很多危害安全的信息,包括企业的电话簿、机构表格、备忘录等。这些资源可以向黑客提供大量的信息。电话簿可以向黑客提供员工的姓名、电话号码来作为目标和冒充的对象。机构的表格包含的信息可以让他们知道机构中的高级员工的姓名。备忘录中的信息可以让他们一点点地获得有用信息来帮助他们扮演可信任的身份。企业的规定可以让他们了解机构的安全情况如何。日期安排表更是重要,黑客可以知道在某一时间有哪些员工出差不在公司。系统手册、敏感信息,还有其他的技术资料可以帮助黑客闯入机构的计算机网络。废旧硬件,特别是硬盘,黑客可以对它进行恢复来获取有用信息。 (4) Internet是使用社会工程学来获取密码的乐园。这主要是因为许多用户都把自己所有账号的密码设置为同一个。所以一旦黑客拥有了其中的一个密码以后,他就获得了多个账号的使用权。黑客常用的一种手段是通过在线表格进行社会工程学攻击。他可以发送某种彩票中奖的消息给用户,然后要求用户输入姓名(以及电子邮件地址,这样他甚至可以获得用户在机构内部使用的账户名)以及密码。这种表格不仅可以以在线表格的方式发送,同样可以使用普通邮件进行发送。况且,如果是使用普通信件方式的话,这些表格看上去就会更加像是从合法的机构中发出的,欺骗的可能性也就更大了。黑客在线获得信息的另一种方法是冒充为该网络的管理员,通过电子邮件向用户索要密码。这种方法并不是十分有效,因为用户在线的时候对黑客的警觉性比不在线时要高,但是该方法仍然是值得考虑的。此外,黑客也有可能放置弹出窗口,并让它看起来像是整个网站的一部分,声称是用来解决某些问题的,诱使用户重新输入账号与密码。这时用户一般会知道不应当通过明文来传输密码,但是,即使如此,管理员也应当定期提醒用户防范这种类型的欺骗。如果想做到进一步安全的话,系统管理员应当警告用户,除非是与合法可信网络工作员工进行面对面交谈,否则任何时候都不能公开自己的密码。
(5) 电子邮件同样可以用来作为更直接获取系统访问权限的手段。例如,从某位有信任关系的人那里发来的电子邮件附件中可能携带病毒、蠕虫或者木马。为了攻击目标网络,黑客通常会将包含后门的邮件发送给目标网络中的用户。只要存在缺乏安全防范意识的用户,后门就可能被安装,黑客就获得了一个隐蔽的攻击通道,为下一步攻击更重要的系统做准备。
2.心理分析
除了这些物理手段以外,黑客也可能充分利用用户的心理,从心理学角度进行社会工程学式的攻击。基本的说服手段包括扮演、讨好、同情、拉关系等。不论是使用哪一种方法,主要目的还是说服目标泄露所需要的敏感信息。
(1) 扮演一般来讲是构造某种类型的角色并按该角色的身份行事。经常采用的角色包括维修人员、技术支持人员、经理、可信的第三方人员或者企业同事。角色通常是越简单越好。某些时候就仅仅是打电话给目标,索取需要的信息。但是这种方式并不是任何时候都有效。在其他情况下,黑客会专心调查目标机构中的某一个人,并在他外出的时候冒充他的声音来打电话询问信息。(2) 还有一种比较有争议的社会工程学手段是仅仅简单地表现出友善的一面来套取信息。其理由是大多数人都愿意相信打电话来寻求帮助的同事所说的话。所以黑客只需要获得基本的信任就可以了,稍稍恭维一下目标就会让目标乐意进一步合作。(3) 获得非法信息更为高级的手段称为“反向社会工程学”。黑客会扮演一个不存在的但是权利很大的人物,让企业雇员主动地向他询问信息。如果深入地研究、细心地计划与实施的话,反向社会工程学攻击手段可以让黑客获得更多更好的机会来从雇员那里获得有价值的信息。但是这需要大量的时间来准备,研究以及进行一些前期的黑客工作。反向社会工程学包括3个部分:暗中破坏,自我推销和进行帮助。黑客先是对网络进行暗中破坏,让网络出现明显的问题,然后对网络进行维修并从雇员那里获得他真正需要的信息。那些雇员不会知道他是个黑客,因为网络中出现的问题得到解决,所有人都会很高兴。社会工程学的攻击对象是目标网络中的工作人员和目标网络中的运行管理制度。对于人员的安全管理,包括安全知识的培训,其花费往往是巨大的。社会工程学没有或是很少利用目标网络中的技术漏洞,它利用人员对制度实际操作中的灵活性,对目标网络进行渗透。这种攻击技术很难防范,而对于受到这种攻击的企业,由于涉及暴露其自身的制度和管理漏洞,在某种程度上会损害企业的形象,因此也只能自认倒霉。因此,社会工程学作为一种重要的信息搜集的方式,在黑客攻击的踩点阶段被广泛采用。拒绝服务攻击最主要的目的是造成被攻击服务器资源耗尽或系统崩溃而无法提供服务。这样的入侵对于服务器来说可能并不会造成损害,但可以造成人们对被攻击服务器所提供服务的信任度下降,影响公司的声誉以及用户对网络服务的使用。这类攻击主要还是利用网络协议的一些薄弱环节,通过发送大量无效请求数据包造成服务器进程无法短期释放,大量积累耗尽系统资源,使得服务器无法对正常的请求进行响应,造成服务的瘫痪。11.3.5 恶意拒绝服务攻击通过普通的网络连线,使用者传送信息要求服务器予以确定,于是服务器回复用户。用户被确定后,就可登入服务器。“拒绝服务”的攻击方式就是利用了服务器在回复过程中存在的资源占用缺陷,用户将众多要求确认的信息传送到服务器,使服务器里充斥着这种无用的信息。所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。根据协议的规定,服务器相关进程会进行暂时的等候,有时超过一分钟,之后才进行进程资源的释放。由于不断地发送这种虚假的连接请求信息,当进入等待释放的进程增加速度远大于系统释放进程的速度时,就会造成服务器中待释放的进程不断积累,最终造成资源的耗尽而导致服务器瘫痪。最基本的DoS攻击就是利用这种合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务器的响应。而DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一的方式,当攻击目标CPU速度低、内存小或者网络带宽小等各项性能指标不高时,效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了。这样分布式的拒绝服务攻击手段(DDoS)就应运而生了。它利用大量的傀儡机来发起进攻,用比从前更大的规模来进攻受害者。 高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干结点之间的连接都是以G为级别的,大城市之间更可以达到2.5Gbps的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以分布在更大的范围内,选择起来更灵活了。一个比较完善的DDoS攻击体系分成3大部分:傀儡控制、攻击用傀儡和攻击目标。傀儡控制和攻击用傀儡分别用做控制和实际发起攻击。对攻击目标来说,DDoS的实际攻击包是从攻击用傀儡机上发出的,傀儡控制机只发布命令而不参与实际的攻击。对傀儡控制和攻击用傀儡计算机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客与它们连接进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。发起拒绝服务攻击时,黑客通常要进行信息搜集,攻击其他的安全强度较低的网络,在被攻击网络的主机中安装傀儡程序作为攻击主机。完成以上工作后,黑客就明确了攻击目标,并组成了DDoS攻击体系中的傀儡控制和攻击用傀儡部分,可以进行实际的攻击了。
拒绝服务攻击由于不是使用什么漏洞,目前还没有很好的解决方案,因此也就被恶意的入侵者大量地使用。计算机病毒检测与网络入侵防御在计算机与网络技术不断发展的促进下,出现了需要共同防御的敌人。现在的病毒不仅仅只是通过磁盘才能传播,为了适应网络日益普及的形式,病毒也在自身的传播方式中加入了网络这个可能会造成更大危害的传播媒介。为了能够在网络上传播,病毒也越来越多地继承了网络入侵的一些特性,成为一种自动化的软体网络入侵者。它们利用网络入侵技术,通过网络进行广泛的传播渗透,红色代码病毒和Nimda病毒就属此类。它们利用网络入侵的方式,侵入计算机并利用被感染计算机,对周围的计算机进行入侵扫描以进一步传播感染其他的计算机。11.3.6 病毒或后门攻击有些病毒(或者叫木马)感染计算机,为远程入侵者提供可以控制被感染计算机的后门,著名的冰河病毒就属此类。入侵者通过各种手段,在用户主机上安装后门服务程序,并利用自身的客户程序监视主机的行为,甚至控制主机的操作。病毒或后门攻击技术主要是漏洞攻击技术和社会工程学攻击技术的综合应用。通常入侵者会利用社会工程学将病毒或后门绕过安全防御体系引入到目标网络内部。在进入到内部后,病毒或后门自身在提供黑客进行访问和攻击的通道的同时,还不断地利用掌握的应用漏洞在目标网络内部进行广泛的散播。由于病毒有很强的自我保护和复制能力,因此,借助于目标网络内部的网络环境,可以迅速感染目标网络中的其他主机。随着现在用户间数据交换的日益普及,后门和病毒被广泛地传播,对网络的安全以及用户的利益造成了极大的危害。除了针对不同的操作系统进行攻击外,还有针对网络设备的攻击。物理网络是网络服务的基础,在脆弱的网络上是不可能有坚固的系统的。只要网络中存在远程控制的渠道,就有可能被黑客利用对整个网络进行破坏。针对网络设备的攻击,主要的目标集中在网络的接入设备,如拨号服务器、VPN接入,同时也会针对防火墙等安全防护设备。
对于无线接入式的网络,黑客通常尝试对无线信号进行接收实现对网络中内容的获取。除了达到渗透的目的,攻击者还经常通过拒绝服务的攻击方式对网络进行攻击,阻碍目标网络对外提供正常的服务 。11.4 针对网络设备的攻击随着技术的进步,ADSL等宽带入户的解决方案进入了千家万户。但拨号网络接入以其稳定性和设备的简单性,到现在还被广泛地使用。甚至在一些拥有高速网络接口的企业,由于老设备继续使用、内部办公需要等原因,通常会保留拨号接入的接口。而正是这些接口,可能会对企业网造成可怕的安全影响。
拨号攻击与其他攻击类似,同样要经过踩点、扫描、查点和漏洞发掘4个步骤。11.4.1 拨号和VPN攻击拨号攻击的过程主要是利用拨号攻击工具顺序地拨打大量的电话号码,记录有效的数据连接,尝试确认在电话线另一端的系统,再通过猜测,以常用的用户名和保密短语有选择地尝试登录。1.准备拨号攻击
拨号攻击首先要确认目标电话号码范围。恶意的黑客通常会从企业名称着手,从能够想到的尽可能多的来源汇集出一个潜在号码范围的清单。这其中最明显的方式是查找电话号码簿。一旦找到企业的主电话号码,入侵者通常会利用自动程序尝试拨打这个端局交换机号码,根据反馈的连接尝试结果获得拨号服务器的号码。另一个可能的策略是利用社会工程学技术,从安全意识不高的企业人员口中套出目标公司的电话号码信息。这是获得公开的远程访问或数据中心电话线路信息的好方法。除了使用电话簿外,目标公司网站也是寻找电话号码的重要信息来源。许多企业会在Internet上发布企业完全的电话目录。
除了这些信息以外,对于企业相关人员对外注册信息的搜集更可以进一步获得有用的攻击信息。例如,从网络上公布的域名注册详细信息,攻击者可以获得注册企业的主电话号码。除了通过拨号获得拨号服务器可能的号码以外,通过拨号分析,入侵者还可以了解到公司人员的姓名以及工作状态信息,包括员工是否在较长时间无法注意到自身用户账号上的异常行为。通过对员工电话问候语的分析,入侵者甚至可以了解到各个人员在企业中的重要程度,并以此进行攻击优先次序的调整。
通过对拨号服务器反馈信息的分析,可以找到易于渗透的调制解调器,在确认这个连接到底有多脆弱时,往往需要仔细检查拨号的信息并手工进行跟踪处理。通过对反馈信息的分析,攻击者可以获得服务器的生产商以及服务器的型号版本,根据这些信息,可以选择正确的登录模式并根据服务器可能的默认账户和存在的漏洞进行进一步的攻击。2.拨号攻击渗透
当信息搜集有了成果,下一步就是将得到的有价值信息进行分类。通过对服务器连接特性的分析,攻击者构成专门的攻击脚本。利用专门的攻击进行接入性的猜测攻击。影响攻击脚本的因素主要包括:
连接是否超时或尝试次数的阈值;
超过阈值后的处理措施,如使当前连接无效等;
连接是否只在一定时间内允许;
认证的方式;
用户代号和密码的最大字节数以及组成字符的允许范围;是否对CTRL?C等特殊键有反应,从而搜集到额外的信息;
系统标示信息,信息是否会出现变化以及信息类型。
根据对这些因素相关信息的搜集,就可以对服务器实施攻击渗透。
根据以上因素,也可以确认服务器的攻击难度,服务器攻击难度分为以下5个级别:
(1) 第一级,具有容易猜到的进程使用的密码。
(2) 第二级,单一认证,无尝试次数限制。此类系统只有一个密码或ID,且调制解调器在多次尝试失败后不会断开连接。(3) 第三级,单一认证,有尝试次数限制。此类系统只有一个密码或ID,但调制解调器在预设的尝试次数失败后会断开连接。
(4) 第四级,双重认证,无尝试次数限制。此类系统有两种认证机制。如需要同时确认用户名和密码,调制解调器在多次尝试失败后不会断开连接。
(5) 第五级,双重认证,有尝试次数限制。此类系统有两种认证机制。调制解调器在预设的尝试次数失败后会断开连接。级别越高,攻击的难度越大,脚本的处理也就越敏感。对于属于第一级的拨号接入设备,基本上可以通过手工完成猜测过程。根据设备的类型,使用系统默认或其他方式对获得的用户名、密码进行尝试,可以顺利地进入到系统。
对于属于第二级的设备,获取访问权所需要的主要是密码。而由于连接尝试没有次数限制,因此可以通过字典方式的蛮力攻击进行密码猜测。第三级的设备与上一级相比攻击的时间相对较多,主要的区别就是在经过一定的猜测尝试后要进行挂起的处理,再重新拨打尝试。对第四级和第五级的设备的攻击,要输入的信息更多一些,因此其敏感性更高,也更容易犯错。所花的时间也要高出许多。3.VPN攻击
由于电话网络的稳定性和普及性,拨号接入在很长一段时间内还会是重要的接入方式。然而技术界不断创新的前沿阵地早已揭示了将来的远程访问机制,那就是VPN虚拟专用网。
例如,对于微软公司PPTP实现,就有着很多的攻击工具。微软公司PPTP协议的漏洞主要体现在以下几个方面:(1) 微软公司的安全认证协议MS?CHAP依赖于强度很低的传统加密函数LanManager散列算法。
(2) 用于加密网络数据的会话密钥的种子数据是根据用户提供的密码生成的,从而潜在地把实际的密钥位长度降到了声明的40位或128位之下。
(3) 会话加密算法使用对称RC4算法,在发送和接收双向会话中密钥被重用,削弱了算法的强度,使得会话容易遭受常见的加密攻击。
(4) 协商和管理连接的控制通道完全未经认证,易遭受拒绝服务型攻击和欺骗攻击。
(5) 只加密了数据有效负载,从而允许窃听者从控制通道分组中获得许多有用的信息。
4.防范措施
对于拨号攻击的防范主要是对企业中使用的拨号接入设备进行管理,包括对拨号线路进行清点,消除未经授权的拨号连接;同时将拨号服务集中,并隐蔽线路的号码,包括不公开相关的信息,拨号服务号码不在企业公布的电话号码范围以及相关端局范围内;确保拨号设备的物理安全性,提升拨入的认证要求,同时不显示标示信息并对连接操作日志进行定期的分析。当然,除了这些技术上的防范方法,还需要企业在管理上对接入情况有严格的策略,防止接入的随意性和不可控性。现在,防火墙已被公认为企业网络安全防护的基本设备。市场上主要有两类防火墙:应用代理和分组过滤网关。尽管一般认为应用代理比分组过滤网关安全,但应用代理的限制特性和对性能的影响却使得它的适用场合局限于从Internet上其他位置外来的分组流动,而不是从企业内部服务器外出的分组流动。而分组过滤网关以及更为先进的全状态分组过滤网关能在许多具有高性能要求的较大机构中较好地运行。11.4.2 针对防火墙的攻击防火墙自开始部署以来,已保护无数的网络躲过恶意的攻击行为,然而它们还远远不是保障网络安全的灵丹妙药。市场上每个防火墙产品几乎每年都有安全脆弱点被发现。更糟糕的是,大多数防火墙往往配置不当,且没有人进行及时的维护和监管,失去了对现代攻击进行防护的能力。
由于防火墙在开发和使用中存在种种的缺陷,因此攻击者可以利用这些有利的因素,对安置防火墙的企业发动攻击。由于现在的一些错误心理,认为只要安上了防火墙就可以保证企业的安全,攻击者可以轻易地进入到“柔软的网络中心”,进行肆意的破坏而不被及时发觉。需要指出的是,现实世界中,要想绕过配置得当的防火墙极为困难。然而使用traceroute、nmap之类的信息搜集工具,攻击者可以发现或推断出经由目标站点的路由器和防火墙的访问通路,并确定防火墙的类型。当前发现的许多脆弱点,原因在于防火墙的错误配置和缺乏有效的管理维护,这两点一旦被加以利用,所导致的后果将会是毁灭性的。1.防火墙的确定
几乎每种防火墙都会发出独特的电子“气味”。即凭借端口扫描、标示获取等方式,攻击者能够有效地确定目标网络上几乎每个防火墙的类型、版本甚至所配置的规则。一旦确认了目标网络的防火墙,攻击者就能够确认防火墙的脆弱点,并利用这些漏洞对目标网络进行渗透。查找防火墙最简便的方法就是对特定的默认端口执行扫描。市场上一些防火墙使用简单的端口扫描就会显露原形。例如,CheckPoint的著名防火墙Firewall-1监听256、257和258端口上的TCP连接,Microsoft的Proxy Server则通常在1080和1745端口上监听TCP连接。这样,只要利用端口扫描工具对网段中的相关端口进行扫描,就可以轻易确认防火墙的类型。另一种寻找防火墙的方式是使用traceroute这样的路由跟踪工具。检查到达目标主机的路径上每一跳的具体地址和基本名称属性。通常到达目标之前的最后一跳是防火墙的几率很大。当然,如果目标存在不对过期分组进行响应的路由器或防火墙,那么这种寻找很难达到效果,一般需要在获取路径信息后,进行进一步的分析检测,确认最后一跳是否是防火墙。扫描防火墙有助于寻找防火墙,甚至确认防火墙的类型。但大多数的防火墙并没有打开默认端口进行监听,因此还需要其他的一些定位防火墙的方法。与很多的应用服务相类似,许多的防火墙在连接的时候都会声明自己的防火墙功能以及类型和版本,这在代理性质的防火墙中更为普遍。通过了解这些标示信息,攻击者就能够发掘出大量已知的漏洞或常见的错误配置。
例如,在21号端口上使用Netcat连接一台怀疑是防火墙的主机时,可以看到如下的信息:
C:\>nc –v –n 192.168.51.129 21
(UNKNOWN) [192.168.21.129] 21 (?) open
220 Secure Gateway FTP server ready
其中,“Secure Gateway FTP server ready”是老式Ragle Raptor防火墙的特征标志。为了进一步确认,连接其23号端口:
C:\>nc –v –n 192.168.51.129 23
(UNKNOWN) [192.168.21.129] 23 (?) open
Eagle Secure Gateway
Hostname:从以上内容就可以进一步证明该防火墙的类型。同时也可以初步确认,这个防火墙没有经过很严格的安全管理。
如果以上的方法都无法确认防火墙的信息,那么攻击者需要使用很高级的技术查找防火墙的信息。通过探测目标并留意到达目标所经历的路径,攻击者可以推断出防火墙和配置规则。例如,可以用nmap工具对目标主机进行扫描,获知哪些端口是打开的,哪些端口是关闭的,以及哪些端口被阻塞。通过对这些信息的分析,可以得到关于防火墙配置的大量素材。对于一个配置不慎的防火墙来说,攻击者可以通过各种分析和扫描工具检查到它的存在以及具体的类型和配置信息。通过这些信息的搜集,攻击者可以查阅手头的资料,找到可以利用的漏洞或逻辑后门透过或绕开防火墙,进入到企业内部。
2.源端口扫描
传统的分组过滤防火墙存在一个很大的缺陷,即不能维持状态信息。由于无法维持状态,防火墙也就不能分辨出连接是源于防火墙外还是内。这样对部分类型的连接就无法有效地控制。例如,对于提供FTP服务的网络,为了允许FTP数据通道通过防火墙,需要防火墙允许20号端口与内部网络高数值端口的连接。这样,如果防火墙不能维护状态信息,就无法追踪一个TCP连接与另一个连接的关系,这样,所有从20号端口到内部网络高数据端口的连接都允许有效地不加阻挡地通过。对于这种传统的分组过滤防火墙,可以利用这一弱点攻击防火墙后面脆弱的系统。利用端口重定向工具,可以将远端口设为20,从而透过防火墙进行漏洞的挖掘工作。
3.分组过滤防火墙攻击
分组过滤防火墙主要依赖于ACL规则确定各个分组是否有权出入内部网络。
对于防火墙来说,难免存在不严格的ACL规则,允许某些类型的分组不受约束地通过。例如,企业希望自己的ISP提供DNS服务。相关的规则就可能设为“允许来自53号TCP源端口的所有活动”,这就是一个很不严格的规则,它将可能允许攻击者从外部扫描整个目标网络。只要攻击者伪装成53号端口通信,就可以顺利地透过防火墙进入到企业网络内部,进行扫描和肆意的破坏。通常,这种规则应设定为“允许来自ISP的DNS服务器的源和目的TCP端口号均为53的活动”。这样就可以避免由于允许范围的扩大而造成攻击的可能性。除了精心定制规则以外,对于部分防火墙,它们都有着默认打开的端口。例如,CheckPoint提供默认打开着的端口,包括DNS查找(53号UDP端口)、DNS区域传送(53号TCP端口)和RIP(520号UDP端口)。通过这些默认端口的分组数据一般不会进行日志记录。如果攻击者确认了防火墙的类型,就可以用伪装默认端口的方法有效地绕过所设置的防火墙规则。攻击者首先设法在网络内部安装后门程序,这一般可以利用社会工程学中的种种欺骗手段实现。之后,攻击者就可以利用这些默认的端口与后门程序进行通信,进而在完全没有安全记录的情况下实施对整个内部网络的攻击。
4.应用代理的攻击
与分组过滤防火墙相比,应用代理的弱点较少。一旦加强了防火墙的安全并实施稳固的代理规则,代理防火墙是难以绕过的。但是,在实际的运行中,对应用代理的错误配置并不少见。
以前面在防火墙扫描中提到的eagle防火墙为例,在hostname中输入localhost并使用密码攻击技术,入侵者就有可能获得防火墙的本地访问权限。之后,根据操作系统的弱点进行攻击,入侵者获取root用户的权限并进一步控制整个防火墙。举例来说,对于目前很流行的WinGate代理防火墙软件,它的默认参数包含很多的弱点,包括文件认证的Telnet、SOCKS和Web。如果管理员只是简单地安装并且不进行安全性的配置,那么,这个代理软件会被攻击者利用作为攻击的跳板。
对于WinGate来说,默认的参数甚至允许用户通过管理端口远程查看系统的文件。这样就给WinGate系统本身带来了极大的漏洞,入侵者只需要连接WinGate的管理端口,就可以顺利浏览系统中的所有文件,获取系统中存放的用于认证的用户名和密码。破坏一个网络或系统的运作往往比真正取得它们的访问权限容易得多,现在不断出现的具有强破坏性的种种拒绝服务(DoS)攻击就说明了这一点。像TCP/IP之类的网络互联协议是按照在开放和彼此信任的群体中使用来设计的,在当前的现实环境中却表现出内在的缺陷。此外,许多操作系统和网络设备的网络协议栈也存在缺陷,从而削弱了它们抵抗DoS攻击的能力。
DoS攻击威胁了大范围的网络服务,它不仅造成了服务的中断,部分攻击还会造成系统的完全崩溃甚至设备的损毁,是目前最具有危险性的攻击。11.4.3 网络拒绝服务攻击1.DoS攻击类型
拒绝服务攻击的分类方法有很多种,从不同的角度可以进行不同的分类,而不同的应用场合需要采用不同的分类。
DoS攻击从攻击目的和手段上主要分为以下一些类型,它们以不同的方式对目标网络造成破坏。1.DoS攻击类型
拒绝服务攻击的分类方法有很多种,从不同的角度可以进行不同的分类,而不同的应用场合需要采用不同的分类。
按攻击的目标又可分为节点型和网络连接型,前者旨在消耗节点(主机Host)资源,后者旨在消耗网络连接和带宽。而节点型又可以进一步细分为主机型和应用型,主机型攻击的目标主要是主机中的公共资源如CPU、磁盘等,使得主机对所有的服务都不能响应;而应用型则是攻击特定的应用,如邮件服务、DNS服务、Web服务等。受攻击时,受害者上的其他服务可能不受影响或者受影响的程度较小(与受攻击的服务相比而言)。按照攻击方式来分可以分为:资源消耗、服务中止和物理破坏。资源消耗指攻击者试图消耗目标的合法资源,例如网络带宽、内存和磁盘空间、CPU使用率等。服务中止则是指攻击者利用服务中的某些缺陷导致服务崩溃或中止。物理破坏则是指雷击、电流、水火等物理接触的方式导致的拒绝服务攻击。
按受害者类型可以分为服务器端拒绝服务攻击和客户端拒绝服务攻击。前者是指攻击的目标是特定的服务器,使之不能提供服务(或者不能向某些客户端提供某种服务),例如攻击一个Web服务器使之不能访问;后者是针对特定的客户端即用户,使之不能使用某种服务,例如游戏、聊天室中的“踢人”,即不让某个特定的用户登录游戏系统或聊天室中,使之不能使用系统的服务。大多数的拒绝服务攻击(无论从种类还是发生的频率角度)是针对服务器的,针对客户端的攻击一般发生得少些,同时因为涉及面小,其危害也会小很多。按攻击是否直接针对受害者,可以分为直接拒绝服务攻击和间接拒绝服务攻击,如要对某个E-mail账号实施拒绝服务攻击,直接对该账号用邮件炸弹攻击就属于直接攻击。为了使某个邮件账号不可用,攻击邮件服务器而使整个邮件服务器不可用就是间接攻击。
按攻击地点可以分为本地攻击和远程(网络)攻击,本地攻击是指不通过网络,直接对本地主机的攻击,远程攻击则必须通过网络连接。由于本地攻击要求攻击者与受害者处于同一地,这对攻击者的要求太高,通常只有内部人员能够做到。同时,由于本地攻击通常可以通过物理安全措施以及对内部人员的严格控制予以解决,因此本书中主要研究基于网络的拒绝服务攻击。DoS攻击从攻击目的和手段上主要分为以下一些类型,它们以不同的方式对目标网络造成破坏。
(1) 带宽耗用DoS攻击
最阴险的DoS攻击是带宽耗用攻击。它的本质就是攻击者消耗掉通达某个网络的所有可用的带宽。这种攻击可以发生在局域网上,不过更常见的是攻击者远程消耗资源。为了达到这一目的,一种方法是攻击者通过使用更多的带宽造成受害者网络的拥塞。对于拥有100Mbps带宽网络的攻击者来说,对于T1连接的站点进行攻击可以完全填塞目标站点的网络链路。另一种方法是攻击者通过征用多个站点集中拥塞受害者的网络连接来放大DoS攻击效果。这样带宽受限的攻击者就能够轻易地汇集相当高的带宽,成功地实现对目标站点的完全堵塞。(2) 资源衰竭DoS攻击
资源衰竭攻击与带宽耗用攻击的差异在于前者集中于系统资源而不是网络资源的消耗。一般来说,它涉及诸如CPU利用率、内存、文件系统和系统进程总数之类系统资源的消耗。攻击者往往拥有一定数量系统资源的合法访问权。之后,攻击者会滥用这种访问权消耗额外的资源,这样,系统或合法用户被剥夺了原来享有的资源,造成系统崩溃或可利用资源耗尽。
(3) 编程缺陷DoS攻击
部分DoS攻击并不需要发送大量的数据包来进行攻击。编程缺陷攻击就是利用应用程序、操作系统等在处理异常条件时的逻辑错误实施的DoS攻击。攻击者通常向目标系统发送精心设计的畸形分组来试图导致服务的失效和系统的崩溃。(4) 基于路由的DoS攻击
在基于路由的DoS攻击中,攻击者操纵路由表项以拒绝向合法系统或网络提供服务。诸如路由信息协议和边界网关协议之类较早版本的路由协议没有或只有很弱的认证机制。这就给攻击者变换合法路径提供了良好的前提,往往通过假冒源IP地址就能创建DoS攻击。这种攻击的后果是受害者网络的分组或者经由攻击者的网络路由,或者被路由到不存在的黑洞网络上。
(5) 基于DNS的DoS攻击
基于DNS的攻击与基于路由的DoS攻击类似。大多数的DNS攻击涉及欺骗受害者的域名服务器高速缓存虚假的地址信息。这样,当用户请求某DNS服务器执行查找请求的时候,攻击者就达到了把它们重定向到自己喜欢的站点上的效果。2.DoS攻击手段
一些DoS攻击可以影响许多类型的系统,将系统的网络带宽或资源耗尽。这些攻击的常用要素是协议操纵。如果诸如ICMP这样的协议被操纵用于攻击目的,它就有能力同时影响许多系统。DoS攻击主要有以下攻击手段。(1) Smurf攻击
Smurf攻击是一种最令人害怕的DoS攻击。该攻击向一个网络上的多个系统发送定向广播的ping请求,这些系统接着对请求做出响应,造成了攻击数据的放大。Smurf攻击通常需要至少3个角色:攻击者、放大网络和受害者。攻击者向放大网络的广播地址发送源地址,伪造成受害者系统的ICMP回射请求分组。放大网络中的各个主机相继向受害者系统发出响应。如果攻击者给一个拥有100个会对广播ping请求做出响应的系统的放大网络发出ICMP分组,它的DoS攻击效果就放大了100倍。这样,大量的ICMP分组发送给受害者系统,造成网络带宽的耗尽。(2) SYN洪泛
在Smurf攻击流行前,SYN洪泛一度是最具有破坏性的DoS攻击。从原理上讲,主要是利用TCP连接的三次握手过程中的资源不平衡性。发动SYN攻击时,攻击者会发送一个从系统A到系统B的SYN分组,不过他用一个不存在的系统伪装源地址。系统B试图发送SYN/ACK分组到这个欺骗地址。由于响应的系统并不存在,因此B系统就无法收到响应的RST分组或ACK分组,直到连接超时。由于连接队列的容量通常很小,攻击者通常只需要10秒钟发送若干SYN分组就能够完全禁止某个特定的端口,造成相对应的服务无法对正常的请求进行响应。这种攻击非常具有破坏性。首先,它成功地引发SYN洪泛只需要很小的带宽。其次,由于攻击者对SYN分组的源地址进行伪装,而使得SYN洪泛成了隐蔽的攻击,查找发起者变得非常困难。
(3) PTR记录欺诈
递归的功能允许DNS服务器处理不是自己所服务区域的解析请求。当某个DNS服务器接收到一个不是自己所服务区域的查询请求时,它将把该请求间接传送给所请求区域的权威性DNS服务器。从这个权威性服务器接收到响应后,最初的DNS服务器把该响应发回给请求方。对于脆弱的BIND版本,攻击者利用DNS递归的功能,产生虚假的高速缓存DNS信息。该攻击称为PTR记录欺诈,它发掘的是从IP地址映射到主机名称过程中的漏洞。通过将主机名称映射到其他的IP地址或不存在的IP地址,用户就无法正确地获得需要的服务,达到拒绝服务的目的。
3.DDoS攻击
在2000年2月,出现了分布式的拒绝服务(DDoS)攻击,多个著名的网站受到了这种攻击,造成了不可估量的损失。DDoS攻击的第一步是瞄准并获得尽可能多的系统管理员访问权。这种相当危险的任务通常是用客户化的攻击脚本来指定脆弱的系统。一旦获得了对系统的访问权,攻击者会将DDoS软件上传并运行,大多数的DDoS服务器程序运行的方式是监听发起攻击的指令。这样攻击者只需将需要的软件上传到尽可能多的受损系统上,然后等待适当的时机发起攻击命令即可。TFN攻击是第一个公开的UNIX分布式拒绝服务攻击。TFN有客户端和服务器端组件,允许攻击者将服务器程序安装至远程的系统上,然后在客户端上使用简单的命令,就可以发起完成分布式拒绝服务攻击。
Stacheldraht更进一步,它将主控与被控之间的通信进行了加密,躲避入侵检测系统的检测。同时它还可以用rcp命令在需要时升级服务器组件,进行新的DDoS攻击。
黑客攻击的动机主要包括好奇心、个人声望、智力挑战、窃取情报、报复、金钱、政治目的等。
黑客攻击的流程可归纳为踩点、扫描、查点、获取访问权、权限提升、窃取、掩盖踪迹、创建后门、拒绝服务攻击。
黑客所使用的入侵技术主要包括协议漏洞渗透、密码分析还原、应用漏洞分析与渗透、社会工程学、拒绝服务攻击、病毒或后门攻击。
针对不同的网络有不同的攻击方法,主要的方法有拨号和VPN攻击、针对防火墙的攻击、拒绝服务攻击。11.5 本章小结