了解之后会感到震惊,这种攻击使用常用单词对系统上每个用户的密码进行尝试。
在某些事情上我们都很懒,但我总是惊讶于人们选择的密码,他们的创造力和想象力似乎都消失了。我们中大多数人都想要一个安全系数高又容易记忆的密码,这通常意味着一些和我们有联系的东西,例如我们名字的首字母、中名、昵称、配偶的名字、喜欢的歌、电影或饮料,我们住的街道或生活的城镇、驾驶的车型、喜欢的夏威夷滨海乡村、常去钓鲑鱼的河流。看出这里的模式了吗?全都是人名、地名或字典上的常用词。字典攻击可以非常迅速地把常用单词当成密码去尝试一个或多个用户账户。
伊凡是分三个阶段进行的字典攻击,第一次,他尝试了一张包含800个常用密码的列表:列表还包括隐私和工作。这个程序也可以在每个单词的前后添加数字或当前月份。程序尝试了每一个扫描到的账户,运气不好,没有成功。
第二次尝试,伊凡进入Google搜索引擎搜索“单词列表 字典”并找到了数千个包含大量单词列表和字典的站点。他下载了一整部电子英语字典,然后他用许多在Google上找到的单词列表将其扩充。伊凡选择了http://www。shubao2。com/files/WordLists。html。
这个站点允许他下载(全免费)的一系列文件中包含了姓氏、教名、国会名、演员名、还有圣经中出现的单词和名字。
其它许多站点提供的单词列表实际上来自于牛津大学ftp://ftp。ox。ac。uk/pub/wordlists。
在其它站点提供的列表中有卡通动画的名称,有《莎士比亚》、《奥德赛》、《托尔金》、《星际旅行系列》和《科学与信仰》中出现的单词,等等。(有一家在线公司以20美元的低价出售包含440万个单词和名称的列表。)攻击程序可以设置将字典中的单词顺序颠倒,另外——这也是许多电脑用户认为能加强安全的做法。
比你想的更快
一旦伊凡选定了使用的单词列表,软件就会自动开始攻击,这样他可以把注意力放在其它事情上了。这是难以置信的一部分:你可能认为这样的攻击可以让黑客去做里普·万·温克尔的大梦(译者注:美国作家华盛顿·欧文在其小说《里普·万·温克尔》中叙述主人公里普·万·温克尔在山中一睡20年,醒来发现世事全非)了,当他醒来的时候软件进度条才会涨一点点,但事实上,依赖于被攻击的平台、系统安全配置和网络连接质量,尝试完一本英语字典里所有的单词,难以置信,只要不到三十分钟!
当攻击正在进行的时候,伊凡打开了另一台电脑对开发小组使用的另一台服务器(ATM6)上进行了类似的操作。二十分钟后,攻击软件完成了大多数毫无防范的用户认为不可能的任务:它破解了一个密码,软件显示某个用户选择了密码“Frodo”,《魔戒》中一个矮人的名字。有了这个密码,伊凡就可以登陆ATM6服务器了。
对于我们的攻击者而言有一个好消息和一个坏消息,好消息是他破解的账户拥有管理员权限,这是进行下一步的基础,坏消息是游戏的源代码怎么也找不到。最终可以肯定它在ATM5上,而针对ATM5的字典攻击没有成功,但是伊凡没有就这样放弃,他还有一些更多的方法可以尝试。
在一些Windows和UNIX操作系统上,他们存放密码哈希值(加密的密码)的地方可以被任何访问此计算机的人查看,理由是加密密码无法破解因此不需要保护。这种说法是错的,使用另一个同样可以在因特网上找到的叫做pwdump3的工具,他可以从ATM6中提取出密码哈希值并将其下载。
密码哈希值文件示例:
Administrator:
500:95E4321A38AD8D6AB75EOC8D76954A50:2E48927AO
BO4F3BFB341E26F6D6E9A97 : : :
akasper :
1110:5A8D7E9E3C3954F642C5C736306CBFEF:393CE7F90A8357
F157873D72D0490821: : :
digger:
1111:5D15COD58DD216C525AD3B83FA6627C7 :
17AD564144308B4 2B8403DOIAE256558: : :
ellgan :
1112:2017D4A5D8D1383EFF17365FAFIFFE89:O7AEC950C22CBB9
C2C734EB89320DB13: : :
tabeck:
1115:9F5890B3FECCAB7EAAD3B435B51404EE:
1FO115A72844721 2FCO5EID2D820B35B: : :
vkantar :
1116:81A6A5DO35596E7DAAD3B435B51404EE:B933D36DD12258
946FCC7BD153F1CD6E : : :
vwallwick:
1119 : 25904EC665BA30F4449AF42E1054F192:15B2B7953FB6
32907455D2706A432469 : : :
mmcdonald:
1121:A4AEDO98D29A3217AAD3B435B51404EE:
E40670F936B7 9C2ED522F5ECA9398A27 : : :
kworkman :
1141:C5C598AF45768635AAD3B435B51404EE:
DEC8E827A1212 73EFO84CDBF5FD1925C : : :
现在有了下载到电脑上的哈希值,伊凡要用另一种风格迥异的暴力破解工具对所有的数字、字符和特殊符号组合进行尝试。
伊凡使用的软件工具叫做L0phtcrack3(loft…crack出品,位于www。shubao2。com,另外在www。shubao2。com中有几个很好的密码恢复工具),系统管理员用L0pht…crack3检查弱口令1,攻击者用它来破解密码。LC3暴力破解对密码的尝试包括字母、数字和大部分的符号组合!@#%^&,它能系统地尝试大多数字符的每一个种可能组合。(注意,如果使用的是无法显示的字符,LC3也无法将其破解)
这个程序有着难以置信的速度,在1GHz处理器的机器上最高能达到每秒尝试280万次,即使是这样的速度,如果系统管理员恰当地配置了Windows操作系统(关闭LanMan哈希值的使用),破解一个密码仍然要消耗大量的时间。
术语
暴力破解:通过尝试每一种可能的字母、数字、符号组合对密码进行破解。
因此攻击者通常会下载哈希值并在他的(或其他人的)机器上进行攻击,这样就不需要保持和目标公司网络的连接,也没有被发现的风险。
对于伊凡而言,这样的等待不算漫长。几个小时后,他得到了每一个开发小组成员的密码,但这些是ATM6上的用户密码,并且他已经知道游戏源代码不在这个服务器上了。
现在怎么办?他还是没有得到ATM5上某个账户的密码。根据他对典型用户脆弱的安全习惯的理解,他认为某个小组成员可能会在两个服务器上选择同样的密码。事实上,他真的找到了,某个小组成员在ATM5和ATM6使用的密码都是“garners”。
大门向着伊凡敞开了,他自由地搜寻着他想要的程序,直到他找到了源代码的目录并愉快地下载了下来,然后他进行了系统入侵中典型的一步:他修改了一个隐匿用户(管理员权限)的密码,以防将来想要获得软件的更新版本。
过程分析
上述攻击利用了技术和人的弱点,攻击者首先用电话骗局获得了目标信息所在服务器的位置和主机名,然后他用工具扫描出了所有的有效账户名,接着他进行了两次连续的密码攻击,其中有一次是字典攻击(使用英语字典中的单词搜索常用密码,有时还会增加包含姓名、地名和特殊爱好的单词表)。
因为任何人都能获取商业的和公共流通的黑客工具(无论出于何种目的),所以对企业计算机系统和基础网络的保护显得更加重要。
当然,这种威胁不能被夸大,《计算机世界》杂志针对奥本海默基金公司的分析得出了惊人结论。公司的网络安全与灾难恢复副主管用标准软件包进行了一次密码攻击,杂志报导说他只用了三分钟就得到了800个员工的密码!
米特尼克语录
在大富翁(Monopoly)游戏的术语中,如果你使用一个常用单词作为你的密码——就直接去了监狱,不能前进,不能收取200美金的租金(译者注:在大富翁中,如果你第三次掷出相同的点数,就会被立刻送进“监狱”)。你需要告诉你的员工怎样选择密码,真正地保护你的资产。
预防措施
当攻击者在攻击中添加了技术元素时,社会工程学攻击可以变得更加具有破坏性,抵挡这种攻击的常用方法是在人和技术两方面同时采取措施。
就说不
在这一章的第一个故事中,电话公司RCMAC的员工不应该删除掉十号电话线路的呼入拒绝状态,因为没有服务命令批准进行修改。只让员工了解安全程序和规定还不够,还应该让他们知道这些规定对于公司的安全而言有多么重要。
应当阻止重要系统中违反安全程序的行为,当然,安全规定必须结合实际,过于繁琐的规定会被员工无视的。同样,安全认知程序需要让员工们了解,因为急于完成手头上的工作而绕过必要的安全程序会伤害到公司和同事。
同样的警告也应该出现在向电话上的陌生人提供信息的时候,无论这个人怎样花言巧语地介绍自己,也不管他在公司中有何地位和资历,在确认呼叫者的身份之前,绝对不能向他提供任何非公共信息。如果严格遵守了这一规定,这个故事中的社会工程学骗局就不会成功,联邦囚犯康多尔夫也无法和他的搭档乔尼商讨新的骗局。
我在这本书中反复强调了一点:验证,验证,还是验证。在没有确认请求者的身份之前,不能响应他的任何请求——就这样。
正在清理
对于没有安全警卫昼夜值班的公司而言,如何阻止攻击者在下班以后“拜访”办公室?清洁工会像往常一样对待似乎是公司员工的任何人,毕竟,那些人可以找他们的麻烦或解雇他们。因此,不管清洁队是公司内部的还是从外部中介机构签约的,都必须接受物理安全事件培训。
清洁工作当然不会需要大学文凭,也不需要英语能力和常规训练,只要知道一些非安全的东西比如怎样使用清洁产品进行不同的作业就可以了。“如果有人想在下班时间进来,你要查看他们公司证件,然后打电话到清洁公司办公室解释情况,等待批准。”一般这些人是不会收到这样的指令的。
一家机构应该在发生这种情况之前有所防范并以此来培训员工。在我的个人经验里,我发现大多数(而不是全部)的私营商业部门在物理安全方面非常松懈。你可以用另一种方式解决问题,把责任交给你的公司员工。没有24小时警卫服务的公司应当告诉它的员工,如果要下班后进入公司,就带上他们自己的钥匙或电子访问卡,能否进入不能让清洁工来决定。然后要求清洁公司培训他们的员工,在工作的时候不放任何人进来,这是个简单的规定:不要为任何人开门。适当的话,可以把它作为条款写在与清洁公司的合约里。
同样,清洁队应当接受识别蒙混过关者(跟随合法员工通过安全入口的人)的培训,不允许其他人(就算那个人看上去是一名员工)跟随他们进入大楼。
偶尔(比如,一年三到四次)也要更进一步安排渗透测试或攻击评估,在清洁队工作的时候让某个人站在门外尝试进入大楼。你可以聘请专业公司的人员进行渗透测试,这比用你自己的员工要好。
传递它:保护你的密码
越来越多的机构更加重视通过技术手段加强安全策略了——比如,对操作系统进行配置,强化密码策略,限制非法登陆尝试(超过一定次数则锁定账户)。事实上,Microsoft Windows商业平台一般都包含有这些功能。尽管如此,繁琐的操作还是很容易给用户带来烦恼,这些产品的安全功能通常都被关闭了。真实情况是软件厂商把产品的安全功能默认设置为关闭了,正确的做法应该恰恰相反。(我猜他们很快就会明白了。)
当然,公司的安全策略应当规定系统管理员在所有可能的情况下通过技术手段强化安全策略,达到不过分依赖人为操作的目的。你可以轻易地限制特殊账户的连续无效登陆尝试次数,这样,攻击者的生活显然变得更困难了。
所有的机构都面临着高度安全和员工生产力之间的平衡问题,这导致了一些员工无视安全策略,不接受保护公司敏感信息的最基本的安全措施。
如果一家公司的策略中留有未标明的地方,员工可能会按照最低标准执行,这样会很方便并让他们的工作变得轻松,一些员工会拒绝变动并公然地漠视好的安全习惯。你可能会遇到这样的一个员工,他遵守了关于密码长度和复杂性的规定,但是又把密码写在便签上,然后贴在他的显示器上。
保护你的公司安全的至关重要的一部分是,使用高强度的密码,在技术上与合理的安全配置结合起来。
对密码策略的详细讨论,请看第16章。
第十二章 攻击新进员工
正如这里的许多故事讲述的那样,在机构中处于低层的员工常常成为熟练的社会工程师选择的目标。攻击者可以轻易地从这些人手里得到表面上无害的信息,从而进一步获取更多敏感的公司信息。
攻击者选择新进员工的原因是他们不知道公司的特殊信息的价值或某种行为可能带来的后果,同样,他们也容易受到常用的社会工程学攻击的影响——动用了权威的呼叫者,似乎很友好很可爱,认识公司里受害者也认识的某个人,攻击者声称的很紧急的请求,或者其它能获得受害者好感(或认同感)的方法。
接下来有一些针对低层员工的攻击案例。
提供帮助的安全警卫
骗子希望能找到贪婪的人,因为他们是唯一可能陷入行骗游戏中的人。社会工程师(当他们瞄准了清洁队的成员或安全警卫之类的人时)希望能找到和善、友好、信任他人的人,他们是唯一最有可能提供帮助的人。这正是攻击者在下面的故事里所寻求的。
艾里特的观点
日期/时间:1998年二月的一个星期二,凌晨3:2