按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
耐德打开了一个股东的电脑,当它启动的时候,他把一个微型设备(小到可以挂在钥匙圈上的玩意儿,但是可以存储超过120MB的数据)插在了电脑的USB端口上。他用这个股东的秘书的用户名和密码(很方便地用便签贴在了显示器上)登陆了网络。不到五分钟,耐德下载了每一个存储在工作站和网络目录上的电子表格与文档文件,然后回家了。
轻松赚钱
当我第一次在中学时代接触电脑时,我们只能通过调制调解器连入洛杉矶市区的一台L。A(洛杉矶缩写)所有中学共用的中心DEP PDP II小型机,电脑上的操作系统叫做RSTS/E,那是我学会使用的第一个操作系统。
1981年,那时候,DEC为他的产品用户每年主办一次研讨会,有一年我了解到研讨会将在L。A举办。一家热门杂志为此操作系统的用户公布了一个新的安全产品,LOCK…II,这个产品有一个像这样的很有创意的广告:“现在是3:30,M和乔尼正在沿街寻找你的拨入号码,555…0336,这已经是第336次了。你入他出,选择LOCK…II。”这个广告暗示该产品能防止黑客入侵,这一次的研讨会把它展示出来。
我很想亲自看看这个产品。我在中学的伙伴和朋友,文尼(我曾经的入侵搭档,后来成了抓我的联邦密探),和我一样对新的DEC产品充满了兴趣,他怂恿我和他一起去研讨会。
现金悬赏
我们到了那里发现已经有一大群人围着LOCK…II的展台了,似乎开发者设下了现金悬赏,打赌没人能入侵他们的产品,这对我而言实在是难以拒绝的挑战。
我们把头伸直了往LOCK…II展台里面看,发现有三个此产品的开发者正在操作它,我认识他们,他们也认识我——我那时已经是小有名气的电话盗打者和黑客了,洛杉矶时报报导了我初次尝试社会工程学欺骗的故事,半夜闯进太平洋电话中心,在警卫的鼻子底下拿走电脑手册。(洛杉矶时报为了让报导更有吸引力而公布了我的名字:因为我还是青少年,所以这违反了隐匿未成年人姓名的法律规定。)
当我和文尼走进去的时候,气氛变得微妙起来,因为他们通过报纸了解到我是个黑客,看到我的出现有些震惊,而我们则是看到他们每个人所在的展台上各贴着100美金的悬赏,只要侵入他们的系统就能获得整整300美金——对于两个青少年而言这是一笔巨额财富,我们都等不及要开始了。
LOCK…II被设计为具有双层安全验证,用户必须要有一个合法的ID和密码,在特殊情况下此ID和密码只能从被授权的终端登陆(这称为终端基础安全)。要入侵这个系统,黑客不仅要知道一个账户ID和密码,还需要从合法的终端登陆。这是个很好的安全规则,LOCK…II的发明者深信它能抵挡入侵,我们决定给他们上一课,然后将三百美元收入囊中。
我认识的一个人(RSTS/E的头头)已经在展台打击我们了,几年前他和其他一些家伙向我发出过入侵DEC内部计算机的挑战——在他的搭档让我进去之后,多年以后他成了受人尊敬的程序员,他在我们到达之前就已经尝试过攻击LOCK…II的安全程序了,但没有成功,这让开发者对他们的产品安全更有信心了。
术语
终端基础安全:基于特定的计算机终端作为安全验证:这一做法在IBM大型计算机中非常流行。
比赛很简单:入侵,赢得美金,一场公开的惊人表演……除非有人能打败他们并拿走钱。他们非常相信他们的产品,甚至还在展台上勇敢地公布了系统中的一些账户名称和相应的密码,不只是普通账户,还包括所有的特权账户。
这其实没有听上去的那么勇敢:我知道,在这种设置类型中,每台终端都插在计算机自身的一个端口上,不难断定他们已经设置了这五台终端只能从非系统管理员权限登陆。看来似乎只有两条路:要么完全突破安全程序(这正是LOCK…II被设计来防范的),要么用开发者难以想象的某种方法绕路而行。
接受挑战
文尼和我一边走一边讨论,然后我说出了我的计划……我们在四周徘徊着,隔着一段距离注意着展台。午餐时间,当人群稀疏的时候,那三个开发者会利用这一间隙一起出去吃东西,留下了一个可能是他们中某个人的妻子或女朋友的人,我们走了回去,为了转移那位女士的注意力,我和她聊起了天,“你在这家公司多久了?”“你们公司还有哪些销售的产品?”等等。
趁此机会,文尼离开了她的视线,他和我同时开始了行动。除了着迷于计算机入侵和我对魔术感兴趣以外,我们都秘密地学习了怎样开锁。作为一个小孩子,我读遍了圣费尔南多谷一家地下书店中关于开锁、解手铐和伪造身份证的书籍——所有这些都不是一个小孩子应该知道的。
文尼和我一样练习了很多次开锁,直到我们能完美地解决所有普通的五金商店的锁为止。有一段时间我沉迷于开锁的恶作剧,比如戏弄为了安全而使用两把锁的人,把锁拿下来,互换位置放回去,这样那个人在用错误的钥匙开锁时会变得不知所措。
展厅里,我继续打扰着那位年轻女士,文尼闪到展台后面打开了他们安放PDP…11小型机和电线电缆的柜子上的锁。锁匠上这把锁更像是在恶作剧,这是圆片锁,像我们这样笨拙的业余开锁爱好者都能轻易地撬开它。
文尼花了整整一分钟时间才把锁打开,在柜子里他找到了我们所期望的东西:接入用户终端的插线集和一个控制终端端口,这是计算机操作员或系统管理员用来控制所有计算机的终端,文尼把展台上某台终端插在了控制端口上。
这意味着这台终端现在已经被认为是控制终端了,我走过去用开发者提供的密码登陆了进去。因为LOCK…II的程序现在已经认为我是从授权终端登陆的,所以它同意了我的访问,并且我拥有的是系统管理员权限。我给操作系统打了个补丁,让我能用特权用户登陆展台上的任意一台终端。
我一安装完补丁,文尼就马上回去断开了终端连线并把它插回了原处,然后他又把锁拿了下来,不过这一次是把柜门关上锁好。
我把目录列举出来想看看这台计算机上有些什么文件,在查找LOCK…II程序和相关的文件时我无意中发现了一些让人大吃一惊的东西:一个不应该出现在这里的目录。开发者太自负、太确信他们的软件是无敌的了,以至于没有移除这个新产品的源代码。走到邻近的硬拷贝终端前,我开始把一部分源代码打印在当时使用的长条带电脑纸上。
当那些人吃完饭回来时文尼正好和我会合了,他们发现我正坐在计算机上敲击按钮,而打印机还在继续转动。“你在做什么?凯文?”他们中的一个人问。
“啊,只不过是在打印你们的源代码。”我说。当然,他们认为我在开玩笑,直到他们看向打印机时才发现那是真的,那是他们被严密保护的产品源代码。
他们不相信我用特权用户登陆了。“输入T命令看看。”其中一个开发者说,我照做了,接下来屏幕上的显示证明了一切。那个人拍打着他的前额,然后文尼说,“三百美金,谢谢。”
米特尼克语录
这是另一个聪明人轻视敌人的例子。那你呢?你对自己公司的安全措施很有信心吗?你愿意用300美金打赌吗?有时候通往安全设备的路并不像你想象的那样只有一条。
他们给了钱,文尼和我围着展台转悠了一天,我们的证件上贴着百元的美钞,每个看见这些钞票的人都知道它们意味着什么。
当然,文尼和我没有攻破他们的软件,并且如果开发小组为比赛设定了更好的规则,或用了真正安全的锁,或者小心地看管了他们的设备,他们那天也不会经历这样的屈辱——出自两个青少年之手。
我后来了解到开发小组去银行取了些现金:那些百元美钞是他们身上所有的零钱。
入侵工具字典
当某个人拿到了你的密码,他就能入侵你的系统,在大多数情况下,你甚至不知道发生了什么事。一个名为伊凡·彼得斯的年轻的攻击者把目标锁定在了一款新游戏的源代码上,他可以轻易地进入那家公司的广域网,因为他的一个黑客伙伴已经攻陷了那家公司的一台Web服务器。在找到一个未修补Web服务漏洞之后,他的朋友差一点从椅子上摔下来,因为他发现这个系统被设置成了双定位主机,这意味着他得到了一个内部网络的入口。
但是当伊凡连接的时候,他遇到了一个类似于在罗浮宫寻找蒙娜丽莎的挑战,没有建筑平面图,你能走上数星期。这是家环球公司,有好几百个办公室和数千个电脑服务器,并且他们没有提供精确的开发系统索引或服务漫游指南来引导他到达正确的服务器。
伊凡无法使用技术手段找出目标服务器的位置,作为替换,他选择了使用社会工程学。他用类似于这本书中其他地方提到的方法打起了电话,首先,打到IT技术支持部门,声称自己是公司的员工,他的团队为产品设计了一个界面,然后询问游戏开发团队项目经理的电话号码。
接着他伪装成IT部门的人打给那个部门经理。“今天晚上,”他说,“我们要更换一个路由器,需要确认你的团队里的人是否能连接你们的服务器,所以我们想要知道你的团队用的是哪个服务器。”网络始终处在受保护状态,给出服务器的名称不会伤及任何东西,它是受密码保护的,服务器名称不会帮助任何人入侵,所以这个人把它告诉了攻击者。没有麻烦地回电话验证他所说的事情,或写下他的名字和电话号码,他直接给出了服务器名称,ATM5和ATM6。
密码攻击
在这里,伊凡需要通过技术手段获取验证信息,大多数系统攻击的第一步都是远程扫描出一个弱口令账户,这是进入系统的最初入口。
当攻击者尝试远程扫描密码时,这可能需要他在几个小时里保持与公司网络的连接,他这样显然是在冒险:时间越长,被发现和被抓住的风险越高。
作为一个预备的步骤,伊凡需要列举出目标系统的详细资料,因特网又一次方便地提供了相应的软件(ntsleuth。0catch:“catch”之前是数字0)。伊凡找到了几个在互联网上公布的自动列举进程的黑客工具,这样就避免了手动操作引起的麻烦(时间过长导致风险过大)。伊凡知道大多数公司使用的都是基于Windows的服务器,他下载了一个名为NBTEnum的NetBIOS(BIOS:基本输入输出系统)列举工具。他输入了ATM5服务器的IP(Internet protocol,Internet协议)地址,然后开始运行程序。列举工具能扫描出服务器上存在的账户。
术语
列举:查看操作系统已启动的服务并列出允许访问系统的用户的账户名。
一旦扫描出存在的账户,可以使用同一个列举工具对计算机系统进行字典攻击,这是许多计算机安全人员和入侵者非常熟悉的,但大多数其他人可能在了解之后会感到震惊,这种攻击使用常用单词对系统上每个用户的密码进行尝试。
在某些事情上我们都很懒,但我总是惊讶于人们选择的密码,他们的创造力和想象力似乎都消失了。我们中大多数人都想要一个安全系数高又容易记忆的密码,这通常意味着一些和我们有联系的东西,例如我们名字的首字母、中名、昵称、配偶的名字、喜欢的歌、电影或饮料,我们住的街道或生活的城镇、驾驶的车型、喜欢的夏威夷滨海乡村、常去钓鲑鱼的河流。看出这里的模式了吗?全都是人名、地名或字典上的常用词。字典攻击可以非常迅速地把常用单词当成密码去尝试一个或多个用户账户。
伊凡是分三个阶段进行的字典攻击,第一次,他尝试了一张包含800个常用密码的列表:列表还包括隐私和工作。这个程序也可以在每个单词的前后添加数字或当前月份。程序尝试了每一个扫描到的账户,运气不好,没有成功。
第二次尝试,伊凡进入Google搜索引擎搜索“单词列表 字典”并找到了数千个包含大量单词列表和字典的站点。他下载了一整部电子英语字典,然后他用许多在Google上找到的单词列表将其扩充。伊凡选择了outpost9/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出品,位于atstake,另外在elsoft中有几个很好的密码恢复工具),系统管理员用L0pht…crack3检查弱口令1,攻击者用它来破解密码。LC3暴力破解对密码的尝试包括字母、数字和大部分的符号组合!@#%^&,它能系统地尝试大多数字符的每一个种可能组合。(注意,如果使用的是无法显示的字符,LC3也无法将其破解)
这个程序有着难以置信的速度,在1GHz处理器的机器上最高能达到每秒尝试280万次,即使是这样的速度,如果系统管理员恰当地配置了Windows操作系统(关闭LanMan哈希值的使用),破解一个密码仍然要消耗大量的时间。
术语
暴力破解:通过尝试每一种可能的字母、数字、符号组合对密码进行破解。
因此攻击者通常会下载哈希值并在他的(或其他人的)机器上进行攻击,这样就不需要保持和目标公司网络的连接,也没有被发现的风险。
对于伊凡而言,这样的等待不算漫长。几个小时后,他得到了每一个开发小组成员的密码,但这些是ATM6上的用户密码,并且他已经知道游戏源代码不在这个服务器上了。
现在怎么办?他还是没有得到ATM5上某个账户的密码。根据他对典型用户脆弱的安全习惯的理解,他认为某个小组成员可能会在两个服务器上选择同样的密码。事实上,他真的找到了,某个小组成员在ATM5和ATM6使用的密码都是“garners”。
大门向着伊凡敞开了,他自由地搜寻着他想要的程序,直到他找到了源代码的目录并愉快地下载了下来,然后他进行了系统入侵中典型的一步:他修改了一个隐匿用户(管理员权限)的密码,以防将来想要获得软件的更新版本。
过程分析
上述攻击利用了技术和人的弱点,攻击者首先用电话骗局获得了目标信息所在服务器的位置和主机名,然后他用工具扫描出了所有的有效账户名