密码与用户帐户的有效利用是网络安全性的最大问题之一。在本文中,Rob Shimonski将研究密码破解:如何以及为何进行密码破解。Rob将只说明渗透网络是多么简单,攻击者如何进入网络、他们使用的工具以及抗击它的方法。 对公司或组织的计算机系统进行的攻击有各种形式,例如电子欺骗、smurf攻击以及其它类型的拒绝服务(DoS)攻击。这些攻击被设计成破坏或中断您的运营系统的使用。本文讨论一种广为流传的攻击形式,称为密码破解。 密码破解是用以描述在使用或不使用工具的情况下渗透网络、系统或资源以解锁用密码保护的资源的一个术语。本文将研究什么是密码破解、为什么攻击者会这样做、他们如何达到目的以及如何保护您自己。我将简要研究攻击者自身:他们的习性和动机。通过对几种方案的研究,我将描述他们部署的一些技术、帮助他们攻击的工具以及密码破解者是如何从内部和外部侵犯公司基础结构的。最后,文章提供了一张检查表以帮助您免遭密码破解。 在研究这样做的一些方法之前,让我们首先了解攻击者的想法并研究他们为什么想访问您的网络和系统。 攻击者:他们如何以及为何进行攻击 关于黑客(hacker)的定义仍然争论不休。黑客可以是任何对基于计算机的技术有浓厚兴趣的人;它未必定义想进行伤害的人。词汇攻击者可用来描述恶意黑客。攻击者的另一个词汇是黑帽(black hat)。安全分析师通常称为白帽(white hat),白帽分析是为防御目的而使用的密码破解。 攻击者的动机差别很大。有些声明狼籍的黑客是高中生,他们在地下室里的电脑前寻找利用计算机系统的漏洞的方法。其它攻击者是寻求报复公司的心怀不满的雇员。还有另外一些攻击者完全出于寻求刺激性的挑战目的,想渗透保护良好的系统。 攻击方法 密码破解不一定涉及复杂的工具。它可能与找一张写有密码的贴纸一样简单,而这张纸就贴在显示器上或者藏在键盘底下。另一种蛮力技术称为"垃圾搜寻(dumpster diving)",它基本上就是一个攻击者把垃圾搜寻一遍以找出可能含有密码的废弃文档。 当然,攻击者可以涉及更高级的复杂技术。这里是一些在密码破解中使用的更常见的技术: 字典攻击(Dictionary attack) 到目前为止,一个简单的字典攻击是闯入机器的最快方法。字典文件(一个充满字典文字的文本文件)被装入破解应用程序(如L0phtCrack),它是根据由应用程序定位的用户帐户运行的。因为大多数密码通常是简单的,所以运行字典攻击通常足以实现目的了。 混合攻击(Hybrid attack) 另一个众所周知的攻击形式是混合攻击。混合攻击将数字和符号添加到文件名以成功破解密码。许多人只通过在当前密码后加一个数字来更改密码。其模式通常采用这一形式:第一月的密码是"cat";第二个月的密码是"cat1";第三个月的密码是"cat2",依次类推。 蛮力攻击(Brute force attack) 蛮力攻击是最全面的攻击形式,虽然它通常需要很长的时间工作,这取决于密码的复杂程度。根据密码的复杂程度,某些蛮力攻击可能花费一个星期的时间。在蛮力攻击中还可以使用L0phtcrack。 接下来,研究一下攻击者用来闯入系统的一些工具。 最常用的工具之一是L0phtCrack(现在称为LC4)。L0phtCrack是允许攻击者获取加密的Windows NT/2000 密码并将它们转换成纯文本的一种工具。NT/2000密码是密码散列格式,如果没有诸如L0phtCrack 之类的工具就无法读取。它的工作方式是通过尝试每个可能的字母数字组合试图破解密码。 另一个常用的工具是协议分析器(最好称为网络嗅探器,如Sniffer Pro或Etherpeek),它能够捕获它所连接的网段上的每块数据。当以混杂方式运行这种工具时,它可以"嗅探出"该网段上发生的每件事,如登录和数据传输。正如您稍后将会看到的,这可能严重地损害网络安全性,使攻击者捕获密码和敏感数据。 让我们研究一些方案,分析攻击者如何发起攻击以及如何停止或预防他们。我将首先描述两种涉及内部攻击的方案(即,在组织内部发起的攻击),然后研究涉及外部攻击的两种方案。 内部攻击 内部攻击者是解密攻击最常见的来源,因为攻击者具有对组织系统的直接访问权。第一种方案研究的是攻击者是心怀不满的雇员的情况。攻击者,一名经验丰富的系统管理员,在工作中遇到了问题,而拿她自己管理、保护的系统发泄。 示例:心怀不满的雇员 Jane Smith是一名经验丰富的且在技术上有完善的记录证明的系统管理员,她被公司雇佣在深夜运行备份磁带。您的公司,作为一家 ISP,拥有非常庞大的数据中心,大约4000多个系统都由一个网络运营中心(Network Operations Center)监控。Jane和另外两名技术人员一起工作以监控通宵备份,并且在早班之前倒完磁带。他们彼此独立工作:一名技术员负责UNIX 服务器,一名技术员负责全部Novell服务器,而Jane负责Windows 2000服务器。 Jane已经工作了六个月并且是一名后起之秀。她来得很早,走得很晚,并且曾请求转到公司的另一个部门。问题是那时没有空位子。在上个月,您(安全分析师)发现 Cisco路由器和UNIX服务器上的登录尝试的数量有大幅增加。您实现了CiscoSecure ACS,所以可以对尝试进行审计,您发现它们大部分出现在早上3点钟。 一名优秀的安全分析师从深入研究问题着手。您发现攻击出自高手,并且出现在Jane 当班期间,正好在她完成倒带任务之后,在日班小组到来之前,她有一个小时的时间学习和阅读。所以您决定请夜班经理夜晚监督 Jane。三个星期的严密监督之后,您发现攻击已经停止了。您的怀疑是正确的。正是Jane试图登录到Cisco路由器和UNIX服务器中。 一名优秀的安全分析师还需要使用一种好的审计工具(如Tacacs+)来记录攻击。Tacacs+是由诸如CiscoSecure ACS之类的应用程序所使用的协议,该协议强制授权(Authorization)、可计帐性(Aclearcase/" target="_blank" >ccountability)和认证(Authentication)(简称 AAA)。如果您具有授权,则需要对请求访问的人进行授权以访问系统。如果您具有认证,则需要对访问资源的用户进行认证以验证他们是否有访问的权利和权限。如果同时被授权和认证会发生什么呢?您必须具有可计帐的。单独计算登录数通过强制攻击者保持可计帐的、被认证及被授权,从而解决了许多密码破解问题。 接下来,我将给出一个老的(但仍广泛使用的)攻击示例,它就在网下嗅探密码。您可以研究一下网络主管的Cisco路由器和交换机是如何被公司中的Help Desk技术人员破解的。 示例:Help Desk技术人员 Tommy被雇佣担任Help Desk技术员,他和下班后的Help Desk人员一起工作。下班后的Help Desk人员由大约10 名技术员组成,他们负责公司需要在下班期间支持的8个远程站点。Tommy总是带着他的笔记本电脑上班。当经理问及此事时,Tommy 解释说他用其休息时间准备一个认证考试。这似乎是无害的并得到了批准,尽管公司对在未经公司安全检查就从外部将机器带入公司网络的行为有一条公司内的安全制度。 最终,一个监视器捕获了Tommy在离开一间小配线房时在手臂下藏着某些东西。但由于无人报告丢失任何东西,无法证明Tommy犯了什么错。当Help Desk经理询问Tommy为什么出现在配线房时,他说误把配线房当成了休息室。 公司安全经理Erika看到了由负责大楼安全的门卫提交的报告。她想知道Tommy在配线房干什么,并且对Tommy向Help Desk 经理的回答感到怀疑。检查配线房时,她发现从其中一个配线板上垂下一根被拔下的接线电缆以及一个空的集线器端口。当她将电缆插回去时,链路灯还是不亮,这意味着这是一个死端口。电缆管理员Velcro将所有其它电缆都整齐地捆绑在一起。凭着Erika 多年经验以及对安全利用的敏锐意识,她确切地知道发生了什么。 Erika假设Tommy 在未被发现的情况下将其笔记本电脑带入了配线房。他很有可能寻找集线器上的一个死端口,然后插上安装了包嗅探器的笔记本电脑,该嗅探器可以不加选择地拾取网段上的通信量。稍后他返回取走了电脑(被监视器捕捉到),在保存捕捉文件后拿回家进行分析。 使用公司的安全制度,她找到Tommy并说明了所有非法进入公司的个人财产(如笔记本电脑和掌上电脑)都需要进行检查。由于Tommy本不该带入他的笔记本电脑,所以将它交给了Erika。经过仔细检查,Erika发现了下列跟踪译码。 这是最基本的安全性原则之一:不要使用产品名称作为密码。但无论原则如何基本,奇怪的是还是经常有人这样做。接下来,请注意某些外部威胁。 外部攻击 外部攻击者是那些必须透过您的"深度防御"试图闯入您系统的人。他们做起来并不象内部攻击者那样容易。第一种方案涉及一种很常见的外部攻击形式,称为网站涂改。这一攻击使用密码破解来渗透攻击者想破坏的系统。另一个可能的密码破解攻击是攻击者尝试通过社交工程(Social Engineering)获取密码。社交工程是哄骗一个毫无疑虑的管理员向攻击者说出帐户标识和密码的欺骗方法。让我们对这两种方案都研究一下。 示例:网站主页涂改 外部密码破解的一种很常见和简单的示例:涂改网站的主页。它不费多少力气,通常只要通过利用未正确设置其权限的Internet Information Server (IIS)就可以完成。攻击者只要转至工作站并尝试使用HTML编辑工具攻击IIS 服务器。当试图通过因特网连接到该站点时,攻击者使用一个密码发生器工具(如L0phtCrack),它启动对服务器的蛮力攻击。 您公司的声誉处于危险中。如果业务供应商和关联企业感到您的数据保存在不安全的服务器上,他们将不再信任您。请务必同等看待内部和外部威胁。 示例:社交工程骗局 不需要工具而破解密码的骗局称为社交工程攻击。请阅读这种方案以了解更多信息。 Jon是一家大公司的新任安全分析师。他的首要工作是测试公司的安全状态。他当然要让管理层知道他将要做什么(这样,他自己就不会被当成攻击者)。他想知道要闯入网络而不使用任何工具的难度如何。他尝试两个单独但破坏性相同的攻击。 作为大公司的新雇员,很多人还不认识Jon,这使他能容易地完成第一个社交工程攻击。他的第一个目标是Help Desk。Jon给 Help Desk打了一个常规电话,作为假想的远程用户要求密码重设。由于Jon 知道公司的命名约定是用户的名字加上其姓的第一个字母,他已经有了他需要的一半信息。CIO的名字是Jeff,他的姓是 Ronald,因此他的登录标识是JeffR。这条信息可以从公司的电话目录中轻易地得到。Jon假装成CIO 打电话给Help Desk并要求密码重设,因为忘记了密码。Help Desk 技术人员每天都要重设上百次被遗忘的密码,然后回电让请求者知道其新密码,这对于他们来说是常规工作。5分钟后,Help Desk技术人员给 Jon回电话,告诉他新的密码是"friday",因为恰好是星期五。5分钟之内,Jon就进入了服务器上CIO的共享文件及其电子邮件了。 Jon的下一个社交工程攻击涉及他的一个好朋友,此人为当地电话公司工作。Jon在他休假时借了他的衣服、皮带和徽章。Jon 穿着他的新衣服进入公司存放所有灾难恢复路由器和服务器的另一部分场地。这个硬件包含公司的所有当前数据的有效副本并且认为是机密。Jon 穿着他的电信制服走入场地安全办公室,然后说明他是由本地交换运营商(Local Exchange Carrier (LEC))派来的,因为看来电路从电话公司形成了回路。他需要被允许进入数据中心,这样他可以检查在Smart Jack上是否有任何警报。 现场管理员陪同Jon到数据中心,甚至没有检查他的标识。一旦进入,管理员明智地站在一边,这样Jon开始了他的测试。几分钟后,Jon 通知管理员他必须打电话给办公室并请他们再运行一些测试,以便能断开到Smart Jack的回路并尝试故障诊断。Jon让管理员知道这将花费 45分钟,因此管理员向Jon提供了他的呼机号,并请在Jon完成时呼他以让他出来。Jon 现在成功地排除了他和数据中心沿墙的机架上排列的30台服务器之间的唯一障碍。 Jon现在有几个不同的机会。他可以转至每个服务器,然后查找未加锁的控制台或者他可以将其笔记本电脑插入开放端口并开始嗅探。由于他确实想知道自己能走多远,所以决定查找开放的控制台。花5分钟查看所有KVM槽后,他发现Windows NT服务器是作为域的备份域控制器(Backup Domain Controller)运行的。Jon从包中拿出一张CD,然后将它放入服务器的CD托盘。他将L0phtCrack 安装到公司域的BDC上,然后运行字典攻击。5分钟之内,产生了如下密码:Yankees。它表明首席管理员是一个纽约Yankee 迷。他现在已经有了对公司最重要的信息的访问权。 现在,研究一下这是如何做的。 保护核对表 这里有一张事件检查表,您可以照做以使密码破解更加困难: 对您的组织进行审查。走一圈并确保没有将密码贴在监视器或键盘底下。 在本文中,我描述了攻击者动机之后的某些心理以及用来破解密码的一些低技术和高技术方法。您已经看到了几种攻击方案,包括由经验丰富的管理员、Help Desk 技术人员和外部故意破坏者对大公司发起的攻击。您还了解了密码破解者如何在内部和外部使用技术攻击您的基础结构。最后,提供了有关如何适当保护您自己和您的系统避免可能受到密码破解攻击的一些想法。最终挫败这些攻击需要投入自觉的努力、经过培训的人员、有用的工具以及良好的安全制度。希望您作为主动出击的安全分析师,在帮助减少组织内部和外部的这种恶意活动中发挥重要作用。否则,您可能在服务器房间中发现Jon得意地笑着,手里还拿着您的数据。
专业工具
您产生了怀疑,但作为一名安全分析师,您不能在没有证据的情况下到处指证。
经过对Sniffer Pro分析器十六进制窗格的严格检查,窗格的右边清晰地显示了ASCII数据。当连接到配线房的交换机时,Tommy通过te.net会话连接在运行配置。由于 telnet协议是不安全的且通过明文发送,所以很容易看到密码"cisco"。
设置哑帐户。除去administrator(或admin)帐户,或将其设置为陷阱并对其尝试进行审查。
使用强壮的难以猜测的密码,永远不要让控制台处于解锁状态。
备份是必需的以防不测。您需要一组有效的数据,务必确保您拥有它们。也要保护磁带,否则那里的数据也可能遭到损坏。
防止垃圾搜寻。不要乱扔敏感信息;撕碎它或把它锁起来。
检查标识并讯问您不认识的人。有来访者时,对他们进行检查并确认他们的身份。
教育您的最终用户。确保他们不受社交工程的侵害,教育并提醒内部用户公司的安全制度。
结束语