挑战互联网巨头


「注:这是一家在全球范围内炙手可热的互联网巨头,已经上市,为免除法律方面的风险,在此隐去该公司的名字。」


2009年冬天,A发现该公司某一个子站点存在SQL注入漏洞。通过SQL注入成功的从数据库中读到了两个管理员的密码Hash。但是花了20个小时通过彩虹表把管理员密码跑出来之后,却发现之前找到的后台地址无法登录成功,看来这个子站还另有后台。遍寻无果后,只得另想办法。


同样是通过SQL注入,A还从数据库里顺利读到了管理员的邮箱地址,因此他的新思路是精心策划针对管理员个人电脑的攻击,以此为突破口。


对于黑客来说,有道是「八仙过海,各显神通」。如果是V遇到这种情况,第一反应肯定是从13亿密码库里直接查询出管理员的邮箱密码,控制邮箱后再找机会。如果是像余弦这样的「前端黑客」,则可能会尝试「XSS盲打」技术。每个黑客都会用他自己最擅长的方式入侵网站。对于A来说,别多不多,就0day多,所以他实施了一次典型的APT(高级持续性威胁)攻击。


俗话说不怕贼偷,就怕贼惦记。APT攻击就是贼一直惦记着,直接打击、伪造、欺诈等各种攻击方式无所不用其极。APT的攻击目标就算大如一国政府,也都难以幸免。APT攻击就像黑客世界里的007,常见于特工活动、商业间谍行为之中。


A首先费尽心思在该公司网站上找到了一个存储型的XSS漏洞,通过这个漏洞可以实施针对浏览器的攻击。XSS漏洞分为存储型和反射型(还有一种DOM based XSS)两种,存储型XSS漏洞在利用的时候比较隐蔽,从页面URL里看不出任何异常。找到这个漏洞后,A向管理员邮箱发送了一封邮件,报告网站上某页面存在一个问题,请管理员看一下。


管理员点击URL后,A顺利通过XSS漏洞收集到了管理员的操作系统和浏览器版本信息,精准攻击的准备工作已经做好了。此时A再精心构造了第二封邮件。出于谨慎的目的,他换成了俄语的Windows 7以及Opera浏览器,区别于第一次报告时用的英文Windows 7和IE浏览器,继续报告同一问题。


没有任何戒心的管理员再次访问了这个漏洞页面,此时A已经把之前单纯的信息收集代码替换成了针对管理员浏览器攻击的0day。不出意外,通过管理员的浏览器,A成功给管理员的电脑植入了一个木马,从而获得了管理员电脑的控制权限。


A后来感叹,如果当时没找到那个XSS漏洞,他还真的很难撕开边界的口子。像这样优秀的公司,XSS漏洞都已经比较难找了。入侵总是伴随着运气的成分。


在撕开边界控制了内网的一台机器后,A失望的发现这台主机上根本没有任何有价值的东西,离他想攻击的数据库还差很远。于是A进一步进行内网渗透。


首先他用WCE(Windows Credential Editor,一个小工具,用于本地读取Windows系统密码)成功获取了域管理员的hash,这样就能够控制一个域(内网的办公环境)。接下来A通过Metasploit的一个功能,利用这个域管理员的Hash,直接去连接这个域里的其他机器,一共控制了10多台机器。


然后,就被发现了。其中某一台机器的员工发现电脑多了一个人登录后,把A踢下了线,这让A惊出了一身冷汗。让A庆幸的是那个员工安全意识不高,没有意识到这是一次入侵行为,这一点和大多数公司的员工一样。如果当时那位员工处理得当的话,可能A的入侵就到此为止了。


A暂时不敢乱动了。在另外两台机器上植入木马后清除了日志,并重点把撕开边界控制的第一台机器上的后门和日志清除了。然后等了两天。两天后没有发现什么异常,于是A继续开始更隐蔽的行动,在控制的机器里装上了键盘记录后门,开始收集更多的信息。


比较幸运的是,A随后在员工机器上发现了ERP系统的地址。访问后发现是用的IBM的SAP系统。


「看到后我就笑了。我知道我已经成功了,至少ERP服务器到手了。祭出神器获取了SAP服务器root权限。不出意外,熟悉的AIX 5.3。 很顺利的获取了HR相关信息。我把SAP数据库下载到了本地,然后开始伪造服务器日志文件。」


「神器是什么?」,我问。


「Tomcat 0day。」,A说。


为了掌握更多的信息,A开始分析数据,把ERP的内容几乎翻了个遍。接下来才是真正的考验,A开始思考如何更进一步。


A一开始把目标放在网络管理员身上,准备获取网络设备、路由器的密码,这样能最直接的控制网络。但是网络管理员安全意识很强,拓扑和路由密码、交换机密码、服务器密码之类的重要数据全部被加密了。最初的尝试以失败告终。


A回想起来说:


「为了让动静更小,渗透更隐蔽,我并没有采取比较暴力的方式。我当时有3个思路:


1. 从研发入手。这个最容易,因为很多研发安全意识不够强。


2. 从运维入手。这个难度适中,运维安全意识相对较强,多多少少都有一些反黑客经验。


3. 从DBA入手。能直接获取数据库,缺点是操作动静太大。」


考虑了一整天后,A还是选择从研发入手,放弃动静太大的DBA和可能会暴露自己的运维。


A的思路是控制研发的机器后,在代码提交到SVN之前加一个逻辑后门,给自己留下一条直通服务器的大路。


我问:「为什么不直接入侵SVN服务器?」


A说:「入侵SVN服务器动静太大,先不说没在一个域,我获得的域控不能直接登录,而且我也不知道管理员什么时候才会登录SVN服务器。我没获得root权限之前不敢去动SVN上的任何一行代码。」


我问:「包含了后门的代码在QA(测试)时是否能通过?」


A回答:「我可以肯定的告诉你,精心构造的后门要被查出来是相当的困难。」


因为A之前控制的机器与研发人员不在同一个域,所以难以直接从网络层发起攻击。因此A再次祭出邮件大法,伪造身份给研发人员发了一封加料的邮件,内容是网站的一个反射型XSS漏洞。然后顺利的拿到好几个研发的机器:


「事实上我不知道他们会转发那封邮件,以为只能拿下一台就满意了。


在接下来的2天里,我读了他们的项目代码,开始构造后门。 在他们出去用餐的时候,我果断把自己更改后的代码给他替换了。 剩下的时间就只是等待项目上线了。


3个多月的等待,新模块终于上线了。我用留下后门的地址很顺利得到了一个shell,Linux 2.6.x 的内核。直接上提升权限的Exploit拿下了服务器的root。


终于又接近了一步。我开始嗅探C段的服务器。并成功拿下了主站服务器权限,数据库权限。后来的事情就不用多说了。」


这个网站的后门至今未被发现,静静的躺在全球市值最大的几家互联网巨头之一的服务器里。


A出于挑战自己的目的入侵了这家巨头,获取到的东西也未曾出售或作于其他用途,仅仅是作为了自己收藏的一部分。


走向未来


我问A,你的理想是什么?


A毫不犹豫的回答:


「做一套让自己满意的人工智能系统。」


这让我感到有点意外,我原本以为他会回答说成为最伟大的黑客之类。


A谈到,他是一个喜欢挑战极限的人,在虚拟世界如此,在现实世界也如此。


他酷爱极限穿越运动,曾经与朋友们驾车穿越羌北无人区、徒步穿越秦岭、神龙架等地。但有一次,A的一个朋友在穿越无人区时由于身体原因,差点没能回来。自此,A就诞生了一个想法,想要实现极限越野环境下的自动驾驶技术 ---- 如果有一个系统能够自动输入经纬度、导入地图后自动识别线路和驾驶,可能就不会有什么意外了。


这个目标看起来难度似乎非常大,但A已经开始探索了:


「现在我手上有不少自动驾驶技术的资料,我还在做相应的一些规划。在这套系统里面很多难题需要去攻克。


比如说:气压、低温带来的影响,不同地面环境的胎压怎么去实现智能控制,对于地图上未标识但是会造成车体深陷的沼泽地和沙地怎么去识别并重新规划最佳线路和最佳车速行驶。我还在考虑是用激光还是微波来识别地面状况以及周边环境,我现在也在咨询一些极限越野爱好者的意见。


或许这个梦想需要我花费10年甚至更多的时间去实现。」


有梦想的人永远都不会空虚,对于优秀的黑客来说,不断挑战自我已经成为生命最大的意义。


A的前半生绚丽多彩,后半生又最终能走到哪一步呢?我拭目以待。


(完)