5.3、午夜会面
Adrian认为在他所入侵过的计算机系统中,入侵Excit@Home的那一次最为惊险。这个戏剧性经历开始于有人建议他查访Excit@Home站点。Adrian认为美国所有的有线Internet服务交换中心保护完好,不值得为此浪费时间,但如果他能成功闯入,那么他就可以获得国内每个有线用户的关键信息。
那段时间里,黑客们发现Google能惊人地帮助找到潜在的攻击目标,并为他们提供有价值的信息。
Adrian通常查询一组关键字,这组关键字会带他找到配置存在漏洞的站点,然后开始大规模攻击。
在费城大学的一间学生活动室里,Adrian将他的膝上型电脑连接到了一个开放的网线插座上,查找Exdte@Home的网页。学生活动室对他来说最适宜不过了——公共场所、公用的上网点,开放的无线访问点——在这种场所连接上网对黑客来说是一种隐藏身份和地点的有效办法,因为找出随意登录公共Internet的真实身份是非常困难的。
Adrian的方案是设法按照设计程序和网络的人们的思维方式进行思考,利用他惯用的标准方案作为入侵的基准。他非常熟练地探察到错误配置的代理服务器——服务于计算系统内部网和‘不受信任’网如Internet之间的一种专用计算机系统。这个代理根据给定的规则检查每个连接请求。如果网络管理员配置公司代理服务器这项工作做得马虎,那么连接到这个服务器的任何人都可以进入该公司的安全内部网络。
对一名黑客而言,开放的代理服务器如同一份入侵的邀请函,因为这种服务器允许他访问,就像公司内部成员发出的请求一样,允许访问内部网络。
在那所大学的学生活动室里,Adrian发现了一个设置错误的代理服务器,在它面前,Excite@Home各个部门的内部网页都大门敞开。在帮助栏的帮助下,他发出了一个登录请求。应答中包括了系统中一小部分的统一资源定位符(URL)地址,这些是为了帮助解决IT问题的。通过分析URL,他能够进入公司使用相同技术的其他部门。登录时没有身份认证要求——这个系统做了一个大胆的假设:知道访问这个内部信息网址的人应该是该公司的雇员或其他管理人员——这个假设太不可靠了,人们给它取了一个绰号:‘通过隐蔽获取安全’。
下一步,他访问了一个广大网民都非常喜欢的网站:Netcraft.com。Adrian随机地输入了一个部分域名,Netcraft就返回了一个Excite@Home服务器的清单,显示出运行的似乎是Solaris机器,而Web服务器是ApacheWeb服务器。
Adrian查到,该公司的网络操作中心提供了一个技术支持系统,允许授权的雇员阅读客户请求帮助细节——“求助!我不能登录我的账户”之类的信息。雇员有时会要求客户提供他的用户名和口令——这非常安全,因为这些工作都在公司防火墙的后面进行的;但是这些信息却可能成为安全问题的源头。
Adrian的发现正如他所说的令人“大开眼界”。发现的财宝里面包括客户的用户名和口令,应对问题的处理细节,以及来自内部用户对遇到的计算机问题产生的抱怨。他还发现了一个生成“授权小程序”的脚本,技术人员可以像任何用户一样使用这个脚本,在不需要询问客户口令的情况下就可以解决问题。
一个故障上的备忘录引起了Adrian的注意。在这个案例中,一个客户一年前曾向他们发过请求,要求查阅个人信息,其中包括IRC聊天室里被偷取的信用卡号。这个内部备忘录声称:技术人员认为这不是他们要应对的问题,不值得回应。他们将这个可怜的人踢开了。Adrian假装该公司的技术员,打电话到那个人家里:“嘴,我真不想做这个,但你应该还没有从我们这里得到任何答复。”那人回答说他从未得到哪怕是一个字的回应。Adrian马上给了他正确的答复,并且调用公司所有的内部文件来解决他的问题。
从这件事情当中我得到一种满足感,我没想到一年前在IRC聊天室里,被别人盗走的信息——这本不应该发生,一年后居然由一个入侵我原先信任的公司的黑客帮我解决这个问题,这让我相信一些不同寻常的东西。
就在这时,开放的代理服务器停止了工作。他不知道是什么原因,但再也登录不上去了。他开始寻找其他的办法,最后他找到的办法用他的话来说是“完全原创”的。
他第一步进行反向域名服务查找(利用IP地址找到相应的主机名称(如果在浏览器里输入一个请求,登录www.defensivethinking.com,这个请求会发送到域名服务器(DNS),将名字翻译成可以在Internet上识别的地址209.151.246.5。
Adrian使用的战术是这个过程的逆过程:黑客输入IP地址,提供该IP地址所属设备的域名)。
他找到了很多地址,但大部分毫无价值。最终他发现了一个形式为dialup00.corp.home.net的域名,还有一些其他的人也在开头使用“dialup”。他推断这应该是雇员用于拨号进入公司网络过程中使用的主机名称。
他紧接着发现这些雇员进行拨号时是在老式操作系统中进行的——如Windows98。并且好些拨号用户有一些开放的共享区(openshare),在不要求读取和写入口令的情况下,允许远程访问相关的目录或整个硬盘驱动器。Adrian意识到通过将文件复制到共享区,可以对操作系统启动脚本进行修改,别人的计算将运行他所选择的命令。Adrian编写自己版本的启动程序后,他明白命令被执行前需要等到系统重新启动,但他知道怎样保持充足的耐心。
耐心终于有回报了。接着Adrian进行下一步:安装远程访问的特洛伊木马程序。但他这样做,不是为了安装那些普通的黑客研制的特洛伊木马程序——种其他黑客使用的病毒软件。如今的反病毒软件非常多,专为识别普通的漏洞和特洛伊程序而设计,使用它们立马就会获得免疫力。同时Adrian还找到了一个为网络和系统管理员设计专用的合法工具——商用远程管理软件,他将它稍作修改,使用者根本不知情。
当反病毒程序运行查找被黑客暗地里使用的远程访问软件时,它们根本不会注意查找其他商业软件公司设计的远程访问软件,因为这些程序是合法的(同时我想,如果反病毒软件认为某公司的产品是病毒,并阻止它们运行,那么该公司可能会起诉)。我个人认为这是一个糟糕的主意。反病毒产品必须提醒用户对任何可能带有病毒的东两提高警惕,由用户决定其安装是否合法。由于有这个漏洞,Adrian能多次合法安装RAT,破坏反病毒程序的检查。
一旦他雇员计算机上成功安装了RAT,他就能通过一系列命令从其他计算机系统的活动网络连接上获取信息。其中一条命令是netstat,这条命令告诉他一名雇员的网络活动:此雇员正通过拨号连接到@11(>1116企业内部网,并显示出此雇员当前所在的内部网使用的是什么计算机系统。
为显示通过“netstat”命令返回的数据样本,我启动程序检测自己计算机的运行,输出列表是这样的:
“Local Address”列出了本地机器的名称(lockpicker是我当时使用的计算机上的用户名),以及端口号。“Foreign Address”显示了远程计算机主机名称或IP地址,并且显示了所连接的端口数。例如:报告第一行指出,我的计算机在通道5190处与64.12.26.50建立了连接,这个端口通常为AOL Instant Messenger使用。“State”显示连接的状态——如果连接时,当前状态为激活,则显示为“Established”;如果本地计算机在等待连接,状态则为“Listening”。
第二行为一个catlow.cyberverse.com的记录,提供了我连接的计算机系统的主机名。最后一行www.kevinmitnick.com:http记录则表示我已经成功连接到个人网站。
终端计算机用户不需要在普通标准的端口运行服务器,自己可以给计算机设置非标准端口。例如:HTTP(Web服务器)通常使用端口80,但用户能选择任何端口。通过列出所有雇员的TCP连接,Adrian发现,@Home雇员在非标准端口连接网络服务器。
从这类信息里,Adrian获得内部机器的IP地址,这对于探察@home公司的机密信息很有用。从其他的“宝贝”中,他找到了姓名、电子邮箱地址、线缆调制调解器序列号、现行IP地址等数据库,甚至包括公司3,000,000宽带用户运行的计算机操作系统。
这次在Adrian的描述里是“一种罕见的攻击”,因为这是从不在线的员工那里拨号上网进行连接,从而入侵的。
Adrian认为,蠃得网络的信任是一个相当简单的过程。其中稍麻烦的地方在于要花个把月的时间反复地试验和检错,从而编译出详细的网络地图:找出各个部分的位置,并弄清各部分之间的关系。
Adriang过去曾向Excite@home的首席网络工程师提供信息,并认为此工程师可以信任。于是这次Adriang一反常态,没有对闯入的公司立即发送信息,而是直接打电话给那位工程师,告诉他发现的该公司网络系统的致命缺陷。工程师同意见面,只是见面时间比Adrian提议的晚了几个钟头。午夜,他们坐在了一起。
“我向他展示了一些我手上的证据资料。他叫了一个公司的保安,我们凌晨4:30在Excite@home的广场上见了面。”他们两个人仔细査看了Adrian的物件,并详细问他是怎样闯进来的。大约6点钟谈话即将结束时,Adrian说想看看那个他用来成功闯入的代理服务器。
我们看到了那台服务器。他们问我“应该怎样保护这台机器的安全呢?”
Adrian早就知道这个服务器已经没有什么实质的作用。
我拿出折叠式小刀,就是那种一只手就能随便操控的时髦小东西。我往前走两步切开电缆,告诉他们:“这样就安全。”
他们说:“真是个不错的主意。”工程师写一张小纸条贴在机器上,上面写着:“请勿再连接任何网络。”
Adrian找到了进入这家大公司的途径。他发现了一台停用很久的机器,但没有人注意或者懒得注意这台旧机器,没有将它从网络中及时清除。“像这样一家大公司,肯定有很多闲置的机器,但它们与网络是连通的。”Adrian解释道。每个人都有可能入侵。