7.2、远距离的银行黑客
Gabriel住在加拿大的一个小城镇里,他的母语是法语。尽管他说自己是一个对系统进行安全审查的白帽黑客,他还是坦言自己“在无聊到接近绝望边缘的时候”,或者当他发现某些“安全系统是如此的粗劣,以至于我想要教训教训那些软件制造者”的站点的时候,他当过一两次黑客。
但是,一个住在加拿大农村的家伙是如何攻击远在美国南部某州的一个银行的呢?首先,他发现了一个Web站点上显示有“哪些IP地址范围(网络地址块)分配给了哪些特定的组织”,然后,他开始搜索含有“政府、银行或其他任何这样的词汇”的列表。就在这时,突然出现了一个他可以搜寻资料的IP范围(例如69.75.68.1至69.75.68.254)。
在Gabriel无意中发现的表项中,有一个是属于某个特定银行的IP地址。这个银行位于美国南部某个州的中心。这个发现使得他开始很投入地猛烈攻击该银行系统。
7.2.1、黑客是学出来的,不是天生的
Gabriel有一台128MB硬盘配置的386计算机。一开始他用自己的机器玩Doom之类的游戏。15岁的时候(你可能已经从前面的章节中得知,这个年龄开始有些晚了。这就像梦想进入NBA,但是从高中才开始打篮球),Gabriel己经开始用计算机作黑客了。计算机也从玩具变成了他的朋友。随后Gabriel发现自己的计算机很慢,无法完成他想要做的事情,于是他花了很多钱去当地的网吧玩网络游戏。
计算机里的世界很有诱惑力。能从学校激烈的竞争中脱离出来,再到这个虚幻的世界里放松一下,是多么惬意的事情啊!在学校,因为Gabriel与众不同,他每天都得忍受同伴们的嘲笑,尽管他是新搬进街区的孩子,在班上他的年纪也最小。在他家搬来之前,他是在另一个省念书的。没有人会说,做一个被人嘲弄的小丑没什么大不了的。
他的父母都是政府职员。他们并不了解为什么自己的儿子会如此地痴迷计算机。然而对于那些在科学技术日新月异的年代里成长起来的新一代,这似乎在当时是一个普遍存在的问题。Gabriel回忆说:“他们从来没有想过要给我买一台计算机。”他们只想他能“出门做点其他的事情”。他的爸爸和妈妈非常担心孩子,还带他去看心理医生,希望他变得正常一点。但是,在那段时间,无论发生了什么,这个身材瘦长的男孩子也从未放弃他对计算机的热爱。
Gabriel在本地一所贸易学院学习Cisco课程。他自学到的知识常常比老师知道的还要多。老师有时候还向他请教问题。这位现年21岁的加拿大人似乎拥有一种独立发现某些漏洞的黑客天赋。这种能力标志着这个黑客与那些“照本宣科者(指使用别人发现的方法或者使用别人开发的程序进行攻击的菜鸟级黑客,译者注)”完全不同。他们毫无自主创新能力,只知道从Web下载东西。
他最喜欢的一个程序叫Spy Lantern Keylogger。这种程序可以在人们工作的时候,监控他们的计算机,黑客可以用来秘密拦截在目标计算机系统上进行的每一次击键,而且这些在目标计算机上是完全看不见的。
另外,他也利用了一种应用程序Citrix Meta Frame(―种企业所使用的按需访问软件)的“隐藏”特点。这种程序让系统管理员可以监控并帮助公司雇员。利用这种“隐藏”特点,系统管理员可以悄悄地监控使用者,观察他(或她)计算机屏幕上的一切,比如使用者正在做什么,打什么字,甚至还能够获得计算机的控制权。若精通此道的黑客能够在一台计算机上运行Citrix,就有可能做到相同的事情:获得计算机的控制权。当然,这需要更加谨慎,否则一不小心,黑客的行为将会被发现,因为坐在计算机前的每一个人都能看到攻击者釆取行动所产生的结果(光标在移动,应用程序被打开等)。但是黑客仍然会抓住每个机会来找乐子。
我到看人们给自己的妻子或者其他人写Email,甚至还可以移动他们的显示屏上的光标。这真的很有趣。
有一次我入侵了一个家伙的计算机,开始移动他的光标。当他打开了一个记事本文件时,我就在上面输入:“Hey”。
如果黑客想要获得他人计算机的控制权,自然会挑一个不太可能会有人在计算机附近的时间段。“我通常在午夜之后进行”,Gabriel解释道,“要确保没有人在计算机跟前。要不然,我就会先检查他们的屏幕。如果屏幕保护程序正在运行,那就意味着:一般情况下,计算机前没有人。”
但是有一次他判断失误:用户正在使用计算机。“我知道你在监视我!”这句话在Gabriel的屏幕上一闪而过。“我赶紧注销了。”另一次,他隐藏的一些文件被发现了。“他们把这些文件删除了,还留给我一条信息——‘我们将以法律的名义起诉你!’”
7.2.2、入侵银行
Gabriel在Internet上四处游荡,搜集有关Dixie银行IP地址的详细资料,他循着蛛丝马迹,发现这个被他无意发现的并不是那种镇上的小银行,而是一个拥有大量国内和国际贸易来往的大银行。更有趣的是,他还发现该银行的服务器上正在运行应用程序Citrix Meta Frame。这种服务器软件允许用户远程访问自己的工作站。以往总结的黑客经验让Gabriel和他的朋友想到了一个很好的点子:
我和我的朋友发现运行Citrix服务的系统大多数都没有很好的口令,而终端用户无需输入任何口令。
Gabriel开始行动了。他使用的是端口扫描器。这是一种黑客工具(或称为审计工具,这取决于使用者的使用意图),通过扫描其他网络计算机来确定开放的端口。他专门搜索打开了端口1494的系统,因为这个端口用来远程访问Citrix的终端服务。所以任何端门1494是打开的系统,他都可能成功。
每当他找到一个,他就会在这台计算机上的所有文件内搜索“password”这个单词。这就好比是在淘金。大多时候都是一无所获,但是有时候可能会突然发现金砖。在这里,金砖可能是设置在文件中的某种提示,比如说这样一句话:“administrator password for mail 2 is'happyday'。
最后,他终于找到了银行防火墙的口令。他试着连上一个路由器,因为他知道有些普通的路由器会提供一个默认的口令:“admin”或“administrator”。但是很多人,不光是不了解计算机的普通家庭用户,即便是那些IT业的专业人员常常在部署一个新单元的时候也从未想过要修改默认的门令。Gabriel就真找到了一个有默认口令的路由器。
他一获得访问权限,就添加了一条防火墙规则。规则允许进来的到1723端口的连接——这个端口是用来进行Microsoft的Virtual Private Network(VPN)服务的,它的设计允许授权用户安全地连接到公司网络。当他成功地认证VPN服务之后,他的计算机被分配了一个银行内部网络的IP地址。对他来说,最幸运的是这个网络是“扁平状”的,也就是说所有系统都是通过单个网段访问的,所以他只要入侵一台计算机,就可以访问同一网络中其他所有的计算机系统。
Gabriel说,如此轻易地入侵银行的计算机系统真让人有些“难以置信”。银行曾经聘请过安全顾问小组。小组离开之前,提交过一份报告。Gabriel发现了这份存储在服务器内的秘密报告。报告的内容包括了所有安全顾问小组所发现的系统漏洞——这可是一份求之不得的蓝图啊,有了它,就知道如何利用网络其他部分了。
银行那时使用IBM AS/400作为服务器。这个机型Gabriel并不熟悉。但是他发现Windows的域服务器中存有银行系统所使用的一份完整的应用程序操作手则。他把它下载了下来。随后他输入了“administrator”这个IBM默认的口令,并成功进入了系统。
我觉得在那里工作的99%的人都用“password123”作为他们的口令。他们也没有使用在后台运行的杀毒程序。他们可能一周左右运行一次杀毒程序。
安装完Spy Lantern Keylogger,Gabriel松了口气。在这类程序中,Spy Lantern Keylogger是他的最爱,主要是因为这个程序有一个特有的功能,它能够同步记录Citrix服务器的所有登录信息。安装完这个程序,Gabriel就开始静候系统管理员来登录,然后“截获”他的口令。
Gabriel使用了正确的口令,意外地中了头彩:一份关于如何在AS/400上使用关键应用程序的完整联机培训手册。他现在能够做到一名银行出纳员所能做到的一切活动——电子资金划拨,查看和更改用户的账户信息,监督全国范围内的ATM的工作记录,检查银行贷款和转账,访问信用调查中心Equifax进行信贷检査,甚至查看后台检验的法律文件。他还发现,他能够通过这个银行的站点访问美国Department of Motor Vehicles的计算机数据库。
随后他想从主域控制器(PDC,primary domain controller)中获取口令的散列。主域控制器认证所有对域发出的登录请求。他选择Pw Dumps 3程序来完成这个任务,因为这个程序可以从系统注册受保护的部分提取所有口令的散列。他获取了管理员的本地访问权限,然后添加执行Pw Dumps 3的脚本作为启动文件夹的快捷键,这样可以把它伪装成毫无危害的程序。
Gabriel静静地等着,等着有域管理员登录目标机。这个程序运行起来就像是一个地雷,会被一个特定的事件突然引爆。这时,有个系统管理员登录了。在管理员登录的时候,口令的散列已经被悄然无声地提取到一个文件内。Pw Dumps 3实用程序是在管理员打开启动文件夹时运行的。“有时候(等待一个域管理员登录)需要些时日”,他说,“不过这还是很值得去等啊。”一旦有个毫无疑心的域管理员登录,口令的散列就会被悄悄地提取到一个隐藏的文件内。Gabriel回到了获取口令的散列的“犯罪现场”。他在他所能访问的计算机中,找到了一个功能最强的机器,然后在这个机器上运行了口令攻击程序。
使用这个系统后,像“password”这样简单的口令只需要不到一秒的时间就能解密。Windows口令似乎特别简单,但是如果是由特殊符号组成的复杂口令可能会花多点时间。“我曾经遇到一个口令,花了我整整一个月的时间才解密成功”,Gabriel回想过去,懊恼地说。但是这个银行管理员的口令仅仅由4个小写字母组成,所以很快口令就被解开了,快得让你来不及读这个口令。
7.2.3、你对瑞士银行账户感兴趣吗
Gabriel发现,剩余的有些事情似乎就是些无足轻重的细枝末节了。
他发现了一个进入银行操作系统最敏感部位的方法——生成电汇的程序。他还发现了启动这个程序的菜单,以及部分被选出来的授权雇员所使用的现行在线表单。这些雇员有权力处理这样的事务——从一个顾客的账户里提取资金,再将资金以电汇方式汇至另外的金融机构,尽管这个机构可能在世界的另一端(比如说,在瑞士)。
但是光有这么一个空表单没有一点用处,除非知道如何去正确地填充。到最后,这也不是什么问题了。在他早先发现的那个操作手册里,有一个章节特别有趣,因为他不用读太多就能够找到他想要的东西。
进入/更新电汇
菜单:Wire Transfers(WIRES)
选项:Enter/Update Wire Transfers
这个选项是用来进入非重复性的电汇的,也可以选择进入可重复性的电汇并汇出资金。非重复性的电汇是为那些仅仅只偶尔电汇的顾客以及那些想要办理新电汇账户的顾客设置的。通过这个选项,可重复性的电汇也同样能够在上传之后获得。一旦这个选项被选中,将出现以下画面。
如果这个选项是首次运行,列表中将不会有任何电汇记录。如果要添加记录,按F6=Add键即可。
有整整一章内容详细记载了一步步准确的过程,指出该如何从某个特定的银行电子汇出资金,以及如何将资金转移到另一个金融机构中其他人的账户中。现在Gabriel知道所有关于该如何电汇的必要知识。他拥有了打开城堡的钥匙。
7.2.4、结局
尽管Gabriel能够如此轻易地访问银行系统,并且可以支配如此之大的非法权力,但令人赞赏的是,他并没有将自己的手伸到这座金库里去。他没有兴趣去窃取这些钱财,或是暗中破坏银行的信息,尽管他的确曾想过要给自己的几位好友提高他们的客户信用评级。作为一所本地学院的安全程序专业的学生,Gabriel自然估计了银行保护措施的脆弱性。
在他们服务器上,我发现了许多关于物理安全的文档,但是没有任何内容涉及到关于该如何防御黑客攻击的措施。虽然我找到的一些资料显示,他们每年都聘请安全顾问来检查服务器,但是对于一个银行来说,这是不够的。尽管他们在物理安全方面做得很棒,但是在计算机安全方面就做得远远不够了。