Web,Web……,还是Web
    Web服务器提供了我想得到的更有价值的信息。初步巡视表明:这两个服务器上只有80和443端口(分别是HTTP和HTTPS)对Internet开放。我知道他们在监视80端口,因为我的Whisker巡视在两个服务器上都没有成功。SSL端口有过多的信息。看,这就是SSL的美好:它对IDSs隐藏了信息。他们看不到数据流,因为数据流被加密了。不是很可爱吗?
    为巡视SSL服务器,我不得不建立一个SSL通道来引导我的巡视。用我工具箱中一个叫做SSL Proxy的工具就足够了(大吃一惊)。
    SSL Proxy(ssl proxy)是个灵活的小程序,它基本上可以连接到SSL(服务器或其他使用SSL的东西),并与之正常通信。SSL Proxy处理所有必需的加密。你只需为它找到远程SSL服务器并与系统的本地端口绑定就可以用了,Telnet到此端口,然后就进去了。
Web服务器的SSL Proxy
    从屏幕上看,我知道自己不是第一个在此机器上露面的人。显然,另一个人已经***了它,并窜改了SSL服务器的默认页。哦,没事。这并不能阻止我。但是很有趣,系统管理员并没有意识到有别的人***了这个系统。我猜这不是他们很重要的一个系统。对我来说,这意味着一条进来的路。我一旦证实能扫描Web服务器,就让Whisker(触角)按它自己的步骤搜索,你知道什么?这个系统对各类Internet信息服务器(IIS)的弱点也是开放的。你也许认为管理是应该至少能在某种程度上修补它的!不过,要做的最简单的事情就是选择一个探索器并与之相配。我选择的是利用Microsoft IIS 目录弱点的流行的探索器,IIS-Zang。
    我用建立的SSL Proxy通道连到Web服务器,并开始四处搜寻。显然,那个在我之前先黑了这个系统的家伙把他们干事的工具给拉下了。
交易工具
    他们给我留下了大量可用的东西。但是为了能到达路由器后面的Solaris系统,我打算比他们更进一步。这一定有点恶作剧,但是如果奏效,倒是相当不错的。
    那么,怎样处置这个系统上我前任的遗留物呢?好,我已猜出为什么他们的工作白做了?所以用pwdump工具来清空本地系统SAM。我合计他们的ncl.exe基本上是netcat。为了获得我正在探索的Microsoft弱点的最小限制,我决定用我这位“朋友”留下来的ncl.exe程序。有一个可能的问题是:路由器ACL。如何来获得它呢?既然我不能连接到它们,那么为什么不能让他们连接到我呢?这正是我要做的。我在系统上设置netcat,然后用ncl.exe程序连接到我侦听的netcat过程。把它叫做“网络的瑞士×××”不是没有理由的。在5000端口上建立netcat侦听,然后就用Windows主机上的netcat来接入。显然,它们并没有过滤外出的信息流量;他们应该感到羞耻。真有意思!
直接命令行访问
    现在这给我提供了一个更好的命令行接口。然后我用pwdump.exe程序清空主机SAM,这唾手可得。我清空了主机SAM并将输出下载到我的系统,这样我就能通过John the Ripper黑一些密码来运行它。我几乎立即就黑了几个密码,包括一个叫做master的,有趣。
    我的目标不是已经访问的Windows主机,而是Sun邮件服务器。第一步是找到系统上的一些账号。为了这样做,我需要开通从路由器内部的Windows主机到Sun主机上的端口通道。我知道另外一个叫做httptunnel的灵敏的小程序(在Windows上与它相似的是hypertunnelNT)可以让我做这件事情。我用TFTP1.1从hypertunnelNT软件包往Windows主机上传了hts.exe(和必要的cygwin1.dll),然后用以下命令建立服务器端的HTTP通道:
    基本上,这将443(随后,从那个端口除去SSL服务器)端口传到主机10.89.144.241的TCP端口79(查找器)。然后,在我的主机上,建立通道的“客户”终端。
    这将我的本地端口(查找器上的TCP端口79)传递到SSL端口上的Windows服务器箱10.89.144.166。我必须期望他们的IDS没有任何预定去443端口的交通信号(因为那一般被加密)。一旦完成,我就用我主机上的查找器程序,它被传递到Sun系统的查找器端口。我心里知道将要进来什么。事实上这是相当敏捷的。
路由器ACL通道
    现在Sun在其查找器程序中有几个bug。其中之一涉及到对查找器程序使用一个长参数。这个长参数可以用来触发那个bug:
    现在Sun在其查找器程序中有几个bug。其中之一涉及到对查找器程序使用一个长参数。这个长参数可以用来触发那个bug:
    下图是屏幕显示出来的信息。
Sun SMTP主机上的账号信息
    有了这些账号信息,现在我就需要找到Sun的telnet端口的通道,并简单地试试这些账号。以前我在Windows主机上见过名为master的账号,看来这是一个好的开端,尤其是我已经知道那个账号的密码。我很想看看那个账号是否还能在这个系统上使用。
用Telnet访问Sun SMTP主机
    它能用。现在我可以在真正的系统上工作了。我需要做的是找到那个系统的本地探索者,获得root访问,然后在SSH主机上工作来通过一个更直接的通道获得完全访问。
    对Sun工作站的root访问通过一个叫做netprex的本地探索器获得。这个小探索器利用Solaries打印设备netpr程序中的一个bug。我获得了root权限,就通过John the Ripper捕捉Passwd和shadow文件进行***。John没有用多长时间就攻破了访问Solaries SMTP主机的root密码。下一件要做的事情是找到SSH主机的账号,获得访问,然后直接进入前门。
KISS,保持简单或傻瓜
    一个航空工程教授过去常常告诫我们,总是要让设计保持简单。最容易的解决方案就是最简单的。他归纳为四个字母:KISS,来保持简单、傻瓜。学到了这个教训,我决定首先从最简单着手。我Telnet到SSH主机,看看它是什么。你猜猜我找到了什么!
从进去的门出去
    这是一个OpenBSD系统。太好了,但还有更好的。正是这同一个账号让我能访问Solaries邮件服务器,也能访问SSH服务器。我没有获得这个系统的root,但是能从外面访问这台主机时谁还需要这个?我现在就能用SSH以master用户访问这台主机,而不必依赖tunneling方法来到处寻找路由器的ACLs。天色已晚,我要开始工作了。
累积奖励
    第二天早上下班回到家,我决定睡一觉后再进一步攻破目标网络。吃了点东西,付了账。我下午起床时决定继续进行我的小“项目”。我坐在计算机前,打开音乐(在干这种工作时我喜欢听贝多芬的第九交响曲),抓起一杯可乐,将注意力集中在OpenBSD主机上。
    用SSH与OpenBSD服务器建立连接之后,我开始四处搜寻。如我所料,真正的好东西(Web服务器和数据库主机)就在数据中心。但是像所有干这类工作的公司一样,我估计他们很可能在其公司网络上有一些数据库系统,部署者在上面干他们的工作。而且很可能这些数据库有实时数据。我以前就看到过,他们不可能是第一个这样做的人。稍微做四处搜寻便给了我答案。Web服务器使用的也是Microsoft SQL数据库。更妙的是我发现它运行的也是Microfot终端服务。这一次进入访问就更容易了,因为在连接到SSH服务器时,我刚刚用SSH将我的本地TCP/3389端口转发到Web服务器的终端服务器端口。为了在Linux上访问该终端服务器,我使用了rdesktop Linux客户端。
Microsoft终端服务器的SSH通道
访问微软终端服务器
    我要试一些密码看看我究竟是否能进入那个系统。果真,我昨天破解的管理密码像咒符一样奏效了。我一进入主机,就到处搜寻数据库。那台主机安装了Microsoft SQL的客户端,所以我没有花太多时间就访问了服务器。这真是太值得了。
    关于MS SQL我必须说的一件事是:你真的可以和它开个玩笑。我估计他们在这台机器上做的是默认安装。我的意思是,再继续就是他们的内部网了,他们把这个东西放在了有ACLs的路由器的后面,所以谁能想到这会不安全?而用默认安装,sa账号没有密码。你可以用一些工具来获得对SQL Server的访问(我没有找到Linux包来运行LinSQL或SLAT),而且没有替代物,旧SQL命令你很熟悉。
    我要说的是数据库中的信息是值得花时间的。我发现了大量的信用卡号,客户名,地址,社保号以及其它重要资料。我合计这是很值得与我的朋友共享的东西。也许下一次,当客户有问题或需要帮助的时候,这些家伙就开心了。
像我这样的客户……
    你肯定不会处处树敌。数据库中的信用卡信息其价值等同于黄金。所以我通知IRC上“精选”的朋友。你知道,这些人不会给我昨天的时间。现在,“嘿,伙计,你在干什么?”和“发生了什么事,朋友?”,我并不很关心他们的意愿,我对获得稍微的“公正”更感兴趣。我敢打赌,当他们发现我的越轨行为时,那儿的某个人会把嚼了很久的口香糖吐出来。
    在我轻易取胜之后大约2天,我突然注意到OpenBSD系统不在了,微软的Web服务器打了补丁。哈哈哈,希望我是一只飞虫,飞到那儿的IT人员的办公室的墙上。