一次艰难的渗透纪实
作者:
EMail:
QQ:
日期:
kyo327
humour327@163.com
10952989
2012-01-12
[ 目录 ]
0×00 前言
0×01 初期的探索
0×02 看到一点希望
0×03 从二级域名入手
0×04 调试 php 溢出漏洞
0×05 杀个回马枪
0×06 不成功的社工
0×07 V5 的迂回战术
0×08 从再读 cms 源代码到后台 getshell
0×09 asp 登陆口嗅探变态的密码
0×0a 突破星外+护卫神
0×0b php 嗅探目标管理员密码
0×0c discuz!提示问题的阻碍
0×0d OllyDBG 调试 superdic 并制作注册机
0×0e discuz!提示问题也是浮云,碰撞 V5
0×0f 后记
0×00 前言
随着互联网的迅速发展,越来越多的应用都转向 B/S 结构,因为它是跨平台
的、易操作的、方便的、迅速的,这样不论用户使用什么样的操作系统,仅仅需
要安装一个浏览器就能享受在线购物、网上支付、看电影、写博客等等各种各样
便捷的服务,特别是 WEB2.0 时代的到来更增添了互联网的活力。但是这样就会
导致越来越多的 WEB 安全问题的出现,比如 sql 注入、XSS、上传漏洞、弱口令、
目录遍历等,虽然早在数十年前就被发现这些漏洞产生的根本原因,可它们却始
终都没有退出历史的舞台,依然是 WEB 应用程序主要的安全问题。当然很多企业
也开始越来越重视安全,但是仅仅依靠买网络安全产品、买防火墙之类是不能完
全解决问题的。现在的企业安全最大问题就是不重视网络安全人才,导致搞安全
的薪水不如挖煤窑的,或者纯粹的依靠安全产品代替网络安全人才。产品毕竟也
是人写的,并且具有时效性,出了 0day 后,死的产品能立即做出安全措施吗?
动辄就看见招聘做内核驱动的程序员年薪 20 万以上,这种状况让搞安全的情何
以堪。并且搞安全也需要学习底层编程、C 语言、perl、python、php、asp、.net、
java、c++、调试漏洞、配置各种各样的 web 环境、熟练掌握 od、ida、softice、
windbg、软件破解、社工等等只要是跟互联网有一点关系都是必修之课,最关键
还要时刻的学习新东西,要跟得上互联网的发展,否则就会被淘汰,有这么多的
要求,我们容易吗?
我先感慨一下,在做网络安全这些年感觉一直在漂,从 05 年刚到北京的远东
到 08 年的大连,再到 09 年的盛大,11 年的启明,没有一个地方能让人感到是
在踏实的做安全,对网络安全人才这块也都不重视。从圈内群的好友里得知,有
很多技术水平很不错的朋友都闲置在家,为什么?我感觉国内的大环境都是这样
的,所以出现了 2011 年底的各大网站密码泄露事件。我认为,泄露的那些库也
只是九牛之一毛。在这个拿网络安全人才当民工的时代,也许这个事件算是给那
些高傲的、高薪的程序员上的一堂课吧。
言归正传。因为快要当爸爸了,我终于离开了北京,在家闲着这段时间受一
朋友之托要在某一个网站帮忙删一个帖子,于是开始了这次漫长的渗透之旅。
0×01 初期的探索
在拿到目标 www.111.com 后,前期的侦查工作一定是要做充分的。我喜欢先从
网站程序入手,这样如果找到突破口就可以迅速拿下。
通过初期的网站文件暴力猜解,扫描到 robots.txt 这个文件,有以下目录。
如图 1:
图 1
再通过对这些文件的访问,从 3gadm.php 文件的标题栏得到该网站采用的是
diy-page8.3 的 cms,自然可以先用搜索引擎搜索该 cms 暴露的已知漏洞入手。
我搜到的大概有三个版本别人分析的结果:一个是子仪的盲注 exp,还有两个是
来自 t00ls 的。由于该网站服务器安装有 WEB 防火墙,导致同一个 IP 不能多次
连续的提交 get 或 post 请求,否则就被认为是非法的。这样一来盲注那个 exp
也就一直没有成功,而我测试使用 t00ls 小蟑螂那个 exp 时,在本机自己搭建环
境的最新版本是成功的,但是目标仍然失败,我考虑也许是目标版本较低的原因。
由于后台文件 admin.php 被改名,同时也在进行着网站后台文件的暴力猜解中。
不过也许我的字典文件不够大也不够好,结果很令人失望。并且该网站做了禁止
普通用户注册、禁止普通用户登陆的安全措施,这样连传图片的权利也给封杀了。
再看他的论坛,毕竟要删的帖子是在论坛上的,但他使用的是最新版的
discuz! X2,因为我测试了 2011 年 7 月份那个漏洞不好使。
到这里该目标的网站程序方面大概有了些了解,但有用的信息不是很多。接
着我用 nmap 扫描了 web 服务器的端口情况,只开了 80,也许其他端口被防火墙
K 掉了吧。通过经验访问一个不存在目录,服务器返回如图 2:
图 2
从图 2 看出,貌似是 iis7.0 或 iis7.5,再用 iiswrite.exe 对网站发送一个 head
包,返回 Server: Microsoft-IIS/7.5,这样的话大概能确定该网站服务器操作
系统应该是 windows2008.
通过上面的分析,没有找到什么突破口,接下来大家都能想到,可以扫描一
下他 web 服务器上都有哪些网站,从该服务器上的其他网站入手是大家一贯的手
法,我也就不多说了。只是我是个苦命人啊,再次遇到 cdn,无法简单的判断网
站的真实 IP。
关于 cdn 我在这里用简单的几句话科普一下,用户在自己的浏览器中输入要
访问的网站的域名,网站主 dns 选择比较近的 cdn 服务商节点,并把请求的内容
缓存到 cdn 节点服务器,再把 cdn 节点服务器 ip 返回给用户,最后用户再向给
定的 cdn 接点请求网站内容。
我测试使用不同地区的 vpn 去 ping 网站域名,发现 ip 都不一样,后来通过
google 搜索他网站的相关帖子,发现有另外一个域名 www.222.com 显示相同的
内容。再次用此域名进行旁注域名查询,总算有了真实的结果,如图 3:
但令人悲催的是,这几个域名最终全都指向了主网站和论坛。
图 3
0×02 看到一点希望
由于 www.222.com 是直接指向论坛,而 www.111.com 指向 cms,可以判断两个网
站应该是不同的虚拟目录。于是我用自己写的扫描器对 www.222.com 进行了网站文
件暴力猜解如图 4:
从图 4 中看到,总算有个信息泄露的问题了。
打开 phpinfo.php 得到如图 5:
图 4
图 5
从图 5 我得到了,目标操作系统是 windows2008,php 运行方式 FASTCGI,PHP 版本
5.2.17,还有网站物理路径等等,让我眼前一亮的是 iis7.5+FASTCGI 在默认情
况下,IIS 处理请求的时候可能导致如 nginx 安全漏洞一样的问题,任何用户可
以远程将任何类型的文件以 PHP 的方式去解析。
我 马 上 找 到 一 个 该 网 站 某 个 图 片 链 接 地 址 进 行 类 似 这 样 的 请 求 :
http://www.222.com/images/aaa.gif/kyo.php ,没有返回 404,并且返回的 http 头状态
码是 200,这时我基本肯定了该漏洞的存在。我记得给好友小龙猪看过一眼,他
说了一句话:这个站死定了。我也深信这一点,但我没想到后面的过程竟是如此
艰难。
随后我带着喜悦的心情,迅速的在该论坛注册了账户,并急切的上传那个
带着一句话 php 木马的美女图片,但结果仍然是令人沮丧的,论坛设置了所有附
件传到另外一个文件服务器上,而那个文件服务器是 windows2003,没有类似的
bug,并且和目标不在一个 C 段。可这个漏洞却很诱人的,我还考虑到论坛显示
帖子是 html 文件类型的,如果能在显示帖子的 html 里写入
倒也是可以利用的,只是<>总是被过滤为< >,主站的 cms 又禁止登陆,
cms 后台文件也无法找到,看来只能再换换别的思路了。
0×03 从二级域名入手
每个做网络安全的应该都了解,在网络上每个人享受各种服务,上论坛,听
音乐,网上支付,购物等等。最重要的就是自己的密码,而账号大多都是公开的,
只要我们拥有目标的常用密码,就可以尝试他的其他网站的登录验证,因此我开
始了从二级域名入手的打算,拿下后至少可以得到他的常用密码之一。
通过他本网站的链接和二级域名爆破查询工具,再加上自己的分析,我得到
了 target 比较主要的一个二级域名为:a.111.com,仍然是一个比较成熟的、没
有任何已知漏洞的 cms 的博客程序,值得庆幸的是,这个二级域名所在的服务器
倒有十几个其他的网站,应该是虚拟主机,操作系统是 win2003,同时支持 php
和 asp.
我首先瞄上了一个站是:www.aaa.com,很轻松的扫描出他后台管理文件为:
http://www.aaa.com/admin/admin_index.php 直接把 url 在浏览器浏览发现他没
有做严密的验证,后台一部分功能是可以使用的,如图 6
图 6
并且后台使用了 FCKeditor,是最新版本,测试了这个编辑器的漏洞集合后
无果,只能把希望寄托在图 6 的上传图片那里是否有问题了。这次还算顺利,我
在 vmware 的 winxp 系统用 WSockExpert.exe 抓了一下上传的包,在一句话 asp
木马里添加下 gif89a 头,再在包的这里改为:
Content-Disposition:
form-data;
filename="C:\aa.asp .gif"
用 nc 提 交 后 即 得 到 名 为 120107005538_53.asp 的 上 传 文 件 , 也 就 拿 到 其
webshell。如图 7:
name="article_img";
图 7
其实这里上传的时候,web 防火墙也拦了好几次,几乎杀了我 95%的小马,最后
只能请出独门暗器才躲过这 bt 的防火墙。后来才知道该虚拟主机使用的组合是
【星外+护卫神.入侵防护专家】。
拿到 www.aaa.com 的 webshell 后,自然是想跨目录到 a.111.com。而最新的
星外+护卫神的确很有效,删除了 wscript.shell、shellapplication 等扩展,
还不支持 aspx,没有任何运行命令的可能。
0×04 调试 php 漏洞
我用 phpinfo 看了下 www.aaa.com 的 web 服务器的 php 版本是 5.2.9-2。版本
不 高 , 我 印 象 里 php5.2.13 以 下 的 版 本 出 过 好 几 个 漏 洞 , 其 中 【 PHP
hash_update_file() Already Freed Resource Access Vulnerability】是比较
著名的。于是我放下该站的 webshell,找到这个漏洞公告和 poc,准备调试一下
这个漏洞,用它去执行命令,进而提升权限。
公告地址为:
http://php-security.org/2010/05/01/mops-2010-001-php-hash_update_
file-already-freed-resource-access-vulnerability/index.html
我在 vmware_winxp 的 apache+php 环境里,用 windbg 附加进程 httpd.exe,
然后在浏览器打开这个漏洞的 poc,发生异常,如图 8:
图 8
由 图 8 可 以 看 到 发 生 问 题 的 模 块 是 php5ts.dll, 发 生 问 题 的 函 数 是
php_hash_register.在这个函数偏移 0x2bf 处发生了异常。
显然 php5ts.dll 是 php 的核心解析器,php 所有的功能都包含在它里面,
不论什么操作系统运行 php 都少不了要加载它。从这里可以看出这个漏洞危害的
范围很广,是跨平台的。至于漏洞发生的原因就不在这里调试叙述了。
现在看发生异常的位置是:
00a74fef ff5204 call dword ptr [edx+4] ds:0023:55555559=????????