1.1 安全攻击实景呈现
研究信息安全问题的目的是解决在现实应用中遇到的日益棘手的信息安全问题。本着“从实践中来,到实践中去”的思想,作为本章乃至本书的开始,下面讲述一个并非虚构的故事。
故事发生在一个发达国家,故事的主人公名叫卡尔,深谙信息安全攻击之法,他可不是一个喜欢通过恶作剧来炫耀自己的人,他实施信息安全攻击的意图非常明确,那就是获取经济利益。
1.1.1 诱惑及初探
一个偶然的机会,卡尔在媒体上看到了一篇有关某公司发展情况介绍的文章,那是一家销售精致小饰品的公司,据文章介绍,该公司发展非常迅速,一时间销售网点已遍布全国各地。
读了该介绍文章,卡尔顿时眼前一亮,似乎看到了商机。他想:这家公司扩张得如此迅速,想必在网络信息系统建设中也许还来不及慎重考虑安全防范的问题,在信息安全方面应该是有机可乘的。于是,卡尔盯上了该公司,从现在开始,我们不妨把该公司称为猎物公司,因为卡尔已经把它纳入了自己的攻击对象。
在发动攻击之前,卡尔需要收集有关猎物公司的更多资料,他立刻开始了针对猎物公司的侦察行动。卡尔首先想到的就是光顾提供互联网域名登记服务公共信息的互联网信息中心InterNIC的网站,尝试从中收集猎物公司的有用信息。这一试还颇有收获,卡尔从中得知猎物公司的IP地址空间范围是a.b.c.0~255。
卡尔决定借助猎物公司的IP地址空间信息对该公司的网络信息系统进行扫描。为了防止入侵检测系统(IDS)的检测及入侵防御系统(IPS)的阻拦,卡尔在互联网中找到一个可利用的系统,在该系统中安装上FragRouter软件,以该系统作为中转进行扫描,避免自己的系统直接暴露在扫描信息通信的前方,通过第三方进行扫描的方案如图1.1所示。
卡尔使用Cheops-ng软件工具探测猎物公司的网络系统,查看猎物公司网络中有什么样的系统在运行。扫描发现,通过互联网可以访问到猎物公司网络中的三个系统。利用集成在Cheops-ng中的traceroute功能,卡尔获知,从系统布局上看,在这三个系统中,有一个系统位于其他两个系统的前端。
图1.1 通过第三方系统进行扫描的方案
使用Nmap软件工具对这几个系统进行SYN扫描,卡尔发现其中有一个系统的TCP 80端口是打开的,这表明该系统是一个Web服务器。另外两个系统没有打开的TCP端口,但用Nmap软件工具进行UDP扫描发现有一个系统的UDP 53端口是打开的,这表明该系统是一个DNS服务器。另外一个系统没有任何打开的端口,卡尔用Firewalk软件工具扫描发现该系统是一个包过滤防火墙,它的规则允许通过TCP 80端口和UDP 53端口对猎物网络的非军事区(DMZ)进行访问。至此,卡尔基本摸清了猎物公司网络的互联网DMZ和防火墙的一般结构,如图1.2所示。
图1.2 猎物公司网络的互联网DMZ和防火墙的基本结构
卡尔运行Nessus软件工具对猎物公司网络的DMZ进行漏洞扫描,查看其中有没有可以利用的简单漏洞存在。例如,检查一下其中是否存在有安全漏洞的服务或没有打安全漏洞补丁的服务可以利用。不幸的是,Nessus漏洞扫描并没有为卡尔发现猎物公司网络的DMZ中有可以利用的漏洞。
1.1.2 确定合适的突破口
首战未果并没有打消卡尔攻击猎物公司的念头,他静下心来,浏览猎物公司的网站信息,希望从中获得采取下一步行动的启发。猎物公司网站的一个网页描述了该公司销售网点的分布情况。卡尔很快就发现,在离他家不远的地方,就有猎物公司的一个销售点,他想:真是天赐良机。
于是,带上自己的笔记本电脑,卡尔驱车来到了该销售点附近。就在自己的小汽车里,卡尔启动了笔记本电脑,运行Wellenreiter软件工具,试图探测猎物公司销售点的无线网络接入点。Wellenreiter是一款无线网络检测工具,它可以探测出无线网络的接入点,即使接入点配置为使通信包不包含表示网络名的SSID信息或设置为不响应探测包。通过查看Wellenreiter的合法通信信息,卡尔可以看到附近有若干无线网络接入点,其中一个SSID为acwicorp041的接入点引起了他的注意,他断定:那一定是猎物公司销售点的无线网络接入点,因为该公司的英文名称是“Acme Widgets Corporation”,而该SSID正隐含着该英文名称的缩写。
卡尔以acwicorp041为SSID配置他的笔记本电脑上的无线客户端,试图连接相应的无线接入点。可是,连接并不顺利。该接入点好像具有包过滤功能,扔掉了他发送的所有通信包,不响应他的接入请求。卡尔仔细分析Wellenreiter的显示信息,忽然注意到了使用acwicorp041这个SSID的其他设备的MAC地址,这使他立刻想到:该接入点可能采取了MAC地址绑定措施,只允许具有指定的MAC地址的设备进行连接。
卡尔从Wellenreiter的显示信息中选取一个MAC地址,使用他的笔记本电脑的Linux系统中的ifconfig命令把自己的MAC地址伪造成该MAC地址,再次试着进行连接。果然连接成功,他的笔记本电脑系统连接到了猎物公司网络的销售点A的内部网络中,并由该网络根据DHCP分配了自动的IP地址。
连接上了销售点A的内部网络系统后,卡尔使用Nmap工具中的ping扫描功能对该网络进行扫描,发现了连接到该网络中的其他无线POS机设备和销售点A的服务器的IP地址,使用Linux系统中的dig命令和该服务器的IP地址进行逆向DNS查询,他确定出该服务器的域名是store041.internal_acmewidgets.com。
根据Nmap的扫描结果,卡尔还发现,销售点A的服务器打开了TCP 5900端口,这表明该服务器可能运行着虚拟网络控制(VNC)服务。VNC是一个常用的基于GUI的工具,允许管理员通过网络对系统进行远程控制,具有系统控制功能,通过它可以获得系统的重要信息。卡尔运行THC Hydra口令猜测工具对销售点A的VNC服务的口令进行猜测,该工具对root、admin和operator等一系列标准的用户账户进行逐个口令的猜测。令卡尔高兴的是,该工具发现operator账户的口令是rotarepo,这仅是账户名字符串的逆向表示。
掌握了销售点A的VNC账户和口令信息,卡尔便可以通过VNC堂而皇之地登录进入销售点A的服务器,并具有系统控制权。在这样的情况下,卡尔可以随意地对系统中的文件进行浏览,寻找他感兴趣的信息。
终于,在销售点A的服务器中的一个命名古怪的目录下,卡尔发现了一个有价值的文件,该文件记录了POS终端机存放到销售点A的服务器上的交易历史信息,共提供了该销售点100 天以上的交易记录,其中包含了所有的信用卡信息(如卡号、持卡人姓名和有效日期等)。实际上,自该销售点服务器部署以来的所有交易信息都在该文件中。
结果,仅从销售点A的服务器上,卡尔就获得了超过10万张信用卡的信息。至此,卡尔对猎物公司销售点A的攻击宣告成功。
获取信用卡信息正是卡尔对网络信息系统实施安全攻击所追求的目标,他总是以每张信用卡1 美元的价格在黑市上出售信息卡信息,以此获利。当然,对于卡尔来说,每张1美元的价格是微不足道的,但他的策略是薄利多销,以数量取胜。
1.1.3 设法扩大战果
因为卡尔是要靠数量发财的,所以,10万张信用卡的信息不足以令他感到满足,况且,多方面的资料显示,猎物公司拥有遍布全国各地的200 多个销售点,仅仅得手一个销售点岂能让他善罢甘休。而且,俗话说,万事开头难,现在,卡尔已经成功地攻入了猎物公司销售点A的服务器系统,这意味着在攻击猎物公司的网络信息系统的道路上,他已经打开了一个好的局面,也许,下一步的工作就容易得多了。
无论从哪个方面说,卡尔都不会就此终止对猎物公司的兴趣。他回顾了对销售点A的攻击过程,自然会想到要攻击其他的销售点,但是,依次驱车前往各个销售点显然是件费事费时的差事。
分析成功攻入销售点A的服务器系统的基本要点,关键是该服务器系统提供了VNC服务并选择了容易猜测的口令。考虑到猎物公司发展速度之惊人,卡尔推测各销售点的网络信息系统可能采用相同的模式进行部署,因而可以采取类似的方法尝试攻击。
第二天,卡尔照样驱车来到销售点A,希望借助在该销售点的无线接入发动对其他销售点的攻击。他依然想采取VNC登录的方式去控制系统,但这一次,他不是采用与上一次相同的IP地址 w.x.y.z 去连接销售点A的VNC服务器,而是把IP地址调整为w.x.y+1.z,居然也连接成功了,连接到了另一个VNC服务器,甚至这个VNC服务器上的账户名和口令也与销售点A的完全一样。可见,猎物公司是采用完全照搬的方式部署各个销售点的网络信息系统的。这一次,卡尔真可谓不费吹灰之力便拿下了销售点B,又得到了另一批信用卡的信息。
如此这般,照说卡尔应该可以采取该方法逐个攻下各个销售点了。但要彻底把所有的销售点都过一遍,至少也得重复类似的工作200 多次,这样做也并不省事。因此,卡尔设法尝试更加便捷的方法。
1.1.4 全面出击
卡尔再度分析对销售点A的服务器进行端口扫描得到的结果,他发现,该服务器运行着一个常用的备份程序,而且,该备份程序含有缓冲区溢出漏洞。
凭借攻击销售点B的VNC服务获得成功的直觉,卡尔推断销售点B的服务器也同样运行着相应的备份程序,因此,他在他的笔记本电脑的Linux操作系统中运行Metasploit攻击工具,对销售点B的服务器上的备份程序发动缓冲区溢出攻击,不出所料,他果然获得了成功。
这时,在Metasploit的支持下,卡尔获得了销售点B的服务器的命令解释程序的完全控制权,借此机会,他在该服务器上安装了一个嗅探程序,以便捕获通过销售点B的网络系统传输的各种信息。
销售点B的服务器中的嗅探程序为卡尔提供了该销售点上的POS终端机传给服务器的交易信息,诚然,这些信息对卡尔来说并没有太大的意义,因为通过该销售点上的VNC服务,他已经能够得到这些信息。不过,该嗅探程序还提供了非常有价值的信息,它显示,销售点B的服务器还向其他网络中的其他服务器发送交易请求,而且,这些交易请求是以明文传送的,经过分析,卡尔发现,这些正是信用卡授权请求信息。
利用嗅探程序提供的接收授权请求信息的目的服务器的地址,卡尔运行Nmap工具对该目的服务器进行端口扫描。这一次,卡尔扫描的实际上是猎物公司总部的中央网络系统中的服务器,它负责处理所有的信用卡交易并管理公司的业务。Nmap扫描结果显示,该服务器打开了TCP 443端口,这表明该服务器应该是提供了一个HTTPS服务。
通过笔记本电脑的Linux操作系统上的浏览器,卡尔对猎物公司总部服务器支持的给定网站进行浏览,只看到一个描述公司内部管理应用系统的页面,该页面并没有提供敏感信息,它只允许猎物公司的内部员工登录后进入一个提供详细的业务信息的Web应用程序。没有合法的账户和口令是无法进入该应用系统的。卡尔尝试使用与VNC服务相同的账户和口令,但并不奏效,使用THC Hydra工具进行口令猜测也没有取得成功。
看来,卡尔必须另寻他径了。此刻,卡尔启动了Paros Proxy工具,利用该工具的Web应用自动扫描功能,卡尔在该猎物公司的Web应用程序中查找跨站点的脚本和SQL注入缺陷。卡尔感到很庆幸,该工具在与目标应用系统的用户账户相关联的Web cookie中发现了SQL注入缺陷。
通过在Paros Proxy工具中设置手工操作cookie的工作模式,卡尔利用SQL注入缺陷,获得了对猎物公司的目标Web应用系统的底层数据库进行访问的机会。在该数据库中,卡尔发现了存放猎物公司全部200 多个销售点的所有顾客信息的一张表,其中含有100多万张信用卡的信息,这正是卡尔苦苦寻找的宝藏,他终于大功告成了。
因为攻击的预定目的已经达到,所以,卡尔随即撤离了现场,返回家中。接下来,通过他的地下销售途径,迅速出售所有信用卡信息。最后,他销毁了所有与这次信用卡信息攻击行为有关的信息,开始度假,享受胜利果实。
1.1.5 尾声
卡尔的安全攻击措施是有效的,但有关机构的安全响应措施也并非一无是处。两个星期之后,信用卡公司发现:一时间,出现了大量的信用卡欺骗行为。
通过对欺骗行为的相关系统审计信息进行分析,信用卡公司发现,涉案信用卡在过去的几个月里都曾经在猎物公司的销售点进行过交易,由此意识到可能是猎物公司出现了问题,并立即通知了猎物公司。
猎物公司由此展开了内部调查,并证实了安全事件的发生。按照有关法律规定,猎物公司不得不告知所有信息被盗的信用卡持卡人,并履行相应的赔偿。毫无疑问,在由卡尔发动的这次信用卡信息盗窃安全事件中,猎物公司遭受了惨痛的声誉损失和经济损失。