发挥你的想象力,你可以做得更好
——渗透技巧 Part One
作者:Tomy.Chen tomychen_[At]_ph4nt0m.org
20006-01-13
XXX比较喜欢说一句话,相信自己,你行的。有时候在入侵过程中,需要对自己充满信心,自信会让你有做得更好。我越来越崇拜XXX了。
隐去一些信息,会减少我的麻烦,本文不会提及具体的操作细节,仅作为一个思路出现。
目标:www.target.com 某公司子下属部门
已知情况:Windows 2000,运行IIS,可见web均属静态页。其他端口,Firewall锁之。
由上述情况可见这着实是个烫手的山芋,但不要被表面的东西把迷惑。先手习惯的方式入手。
分析1:既然有Firewall拦截,那么必然有一点要相信的是,肯定会有其信任域,当然最先想到的就是Subnet,如果VLAN不是做得很严格的话,1-255中,拿中一台,就有了30%的成功机会。
要点:越亲近的人,越容易被信任;而最信任的人,往往会给你制造最致命的伤害。
结果:失败,所以主机均被Firewall保护,少数开放服务的主机,也无从下手。
分析2:明显这是“下属部门”,然后我们在对下属无能为力的时候,只好请上级出马,就一般情况而言,大部分的管理员或者职员会由上级直接控制,或者返过来说,管理员很可能是在总公司工作,从总公司直接接管下属部门的服务器,SO……,我们把目标转移到上级公司。
要点:不要因为来头大而退缩,事实证明,目标越大,你离成功的距离越近。
结果:成功拿下上级部门的某台服务器,然后,这离我们的真正目标还差万儿八千里。
分析3:如何取得与下级部门的通讯权,及主机操作权?有目的性的攻击,你需要做的是不断的搜索对你有用的资源,然后将分析这些资源,或综合分析,或独立分析。然而这一切,需要你开动你的大脑,开阔你的视野。谁在与主机进行通讯?进行什么样的通讯?从哪里发起的连接?
要点:抓住源头,才是解决问题的根本之道。
结果:Office-Network被穿透,内部网络尽收眼底。
分析4:此时,你撑握的资源会越来越多,但是切记一点,如果一不小心,你可能丢掉一切,还是老话题,学会分析,既然已经深入敌军内部,这里我们需要对敌情进行分析,敌人的目标在哪?敌人是从哪个位置对外通讯的。
要点:知此知彼,方能百战百胜。
结果:成功定位Office-Network中哪知主机在与下属部门进行通讯,并取到其访问该服务器SQL-Server的用户及密码,当然不是最高权限,假想应该是某种类似ERP类的应用程序在与远程通讯。
分析5:有了对下属部门的相应“指挥”令牌,我们能做的事就更多,但是,还是一点提醒,成功与失败,往往只有一步之遥,莫被假象冲昏头脑。其实,这离成功还有十万八千里呢。继续分析,通过利用SQL-Server的普通权限,也就是传说中的DBOWNER权限,熟悉SQL-Injection的朋友想必对这个名词不再陌生。很显然的,我得到了一个WebShell,也很顺理成章的,我可以对真正的目标机器进行零距离的亲密接触了。
要点:学会耍流氓,命令你的目标除去衣服,亦裸裸地站在你面前。
结果:WEBSHELL有执行权,服务器上除了IIS外,还有其他的服务在运行,但信息域不在这个Office-Network。无法访问除了IIS、SQL-Server以外的服务。
分析6:IIS+DBOWNER的权限算起来,也许大概跟GUEST差不多吧,能执行的命令也寥寥无几,而又受防火墙的层层阻挠。然而,流氓不是白耍的,重要的信息已经被发现。目标服务器上,有一个非常关键的服务在运行Apache-Tomcat,上帝曾提醒我,这个服务默认安装是以LOCAL SYSTEM运行的,也就是说……,只要我有一个JSP-WEBSHELL,那么,我将非常地Very轻易地取到Administrator的权限。
要点:睁大你的双眼,裸露的外体,对男人充满了诱惑力。
结果:由于裸露的外体对眼睛的刺激太大,导致瞳孔严重放大,思维严重受阻,再次受挫。Apache-Tomcat运行服务端口为8000,但从netstat –an(如图1)
(图1)
这意味着什么呢?意味着,只有本机才能访问该服务。
要点:色字头上一把刀,面对色情,要有绝对抵抗力。
分析7:这次本次渗透最为精彩之处,而,这一次分析,也绝对配得上,本文的标题。防火墙,着实是个让人恨之入骨的玩意,然而更让人气莫过于把服务bind在127.0.0.1。然而,还是老话,应该学会“分析”问题,而不是等待一切。如果一切顺利apach-tomcat是bind 0.0.0.0 可能一切的动作就已经完事了。分析分析再分析,bind 127.0.0.1 无异于内网192.168.xx.xx这种类型的服务,可望而不可及,而对付内网机器,我们不会再去安装Hacker-Defender这种毫无意义的后门(RKT)。而至少会去选择灰鸽子、PCSHARE这种connect back式的。不知道提到这里你有思路了没有?做一个大胆的假设,假设目标机器允许connect back出来,那么,我们再大胆的假设,在目标机器上做一个Packet-Transmit,让其数据通过本机一个Proxy后,再send到外网,而外网再用一个服务端接收数据,那么,接收数据方的IP:PORT不就等于127.0.0.1:8000了吗?那是不是可以通过http://外网ip:端口,进行访问目标机器的Apache-Tomcat服务了?
要点:开阔你的视野,相信自己,一切皆有可能。
结果:一切顺利,假设完全PASS,本次行动以成功告终。顺利的通过Tomcat提权,再顺利的使用该办法进入目标机器,也顺利的完成本文。而上述的Pack-Transmit,目前网上有不少类似的工具。早期的vIDC,lcx.exe,TPort等,都可以完成。
总结:文章不长,纯属于记流水帐,但其中的工作,有经验的,都知道,可能是一天,也可能是一年也完成不了的事,而在这期间,最需要考验的是你的分析能力及对一切的一切信息的感觉度,更重要的是你需要有超人的耐心。有耐心去等待一切不成熟的时机,有耐心去分析取得的一切资源,更要有耐心去面对一次又一次的挫折。