漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0119669
漏洞标题:某申报系统_Struts2 S2-016远程命令执行漏洞(root权限)
相关厂商:cncert国家互联网应急中心
漏洞作者: wy007
提交时间:2015-06-11 15:48
修复时间:2015-07-30 18:22
公开时间:2015-07-30 18:22
漏洞类型:命令执行
危害等级:高
自评Rank:10
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-06-11: 细节已通知厂商并且等待厂商处理中
2015-06-15: 厂商已经确认,细节仅向厂商公开
2015-06-25: 细节向核心白帽子及相关领域专家公开
2015-07-05: 细节向普通白帽子公开
2015-07-15: 细节向实习白帽子公开
2015-07-30: 细节向公众公开
简要描述:
RT
详细说明:
节能汽车税收优惠目录申报系统网站存在Struts2 S2-016远程命令执行漏洞,可执行系统任意命令,而且是root用户(系统最高权限)。
节能汽车税收优惠目录申报系统网站:http://123.127.164.47/login/login.action
说实话,打开网站第一眼蹦出来的页面吓我一跳...我还以为搞到工信部去了呢...
后来又一看,还是吓一跳...后面还跟着一个财政部和国税总局...
这么大派头,还是第一次见到...(顿时就吓尿了)
尿归尿...还是冷静分析一下,毕竟我又不是玩黑的,我只是为了挖几个漏洞赚点rank而已...再说了,这么大个事赶紧告诉人家,我也算是为国家做贡献了不是~(哈哈,小小YY了一下)
接下来
查了一下网站的IP归属地,是北京联通的
后来又在登陆页面上发现一个链接页面:(点击:欢迎申报最新批次享受车船税减免优惠的节约能源 使用新能源汽车车型目录 )
这个IP归属地也顺便查了一下,想知道他们到底是不是一起的...
都是北京的,不过不能肯定他们就是一伙的...
好了,接下来说说漏洞的事吧!
至于怎么发现漏洞的,我想大家应该都很明了的啦,google hacking~(虽然我不是在这上面挖到的这个漏洞,不过原理是一样的啦~)
这个漏洞是个老漏洞了,应该是前两年的了...
不过这个漏洞危害还是比较大的,因为可以直接执行系统命令,相当于直接获得一个系统的Shell了,如果是root或者administrator权限的话,那么直接就最高权限了,提权的步骤基本都省了...
下面进入主题,讲讲利用过程和思路吧!
首先证明这个漏洞确实存在以后,
第一步:一定是收集系统信息
查看当前目录下的所有文件和目录信息:
查看一下当前所在目录:
查看一下系统内核信息:
原来是Solaris的系统~Solaris是Unix系统,怪不得之前执行很多Linux系统上的命令都无法使用,因为Unix系统的命令和Linux还是有些区别的(像小型机的系统都是Unix系统的,不过IBM的AIX和HP-UX都是自己研发的系统~Solaris是Sun开发的系统)~扯远了~继续..
查看当前运行的用户:(看到这里大家会不会觉得很幸运!居然是root权限~哇哈哈,如获至宝的感觉啊~)
既然拿到的是root权限,那么下一步一定是找root的密码咯,如果有了root密码在看看是否开了22远程连接端口,那就一切万事大吉可以收工了!
先查看一下系统下的所有用户:
用户还不少呢,接下来查看一下存用户密码的文件,因为是root权限,所以可以直接查看(普通用户是无法读取这个密码文件的,那是连读的权限都不给你!):
好了,到这里系统的用户名和密码都拿到了~不过看一下密码文件中的是加密密码哦~所以还没结束~
接下来只能想办法破解这个加密过的密码了,说实话,如果不是弱口令的话,想破这个密码还是需要些时间的。这个加密算法不单单是MD5了,查了一下,应该是使用了多种加密方式进行加密的,包括MD5 HASH等。
扔到Kali里去慢慢破解吧!
如果有好的彩虹表字典的话,破解起来还是不算难的,据传网上有256G的彩虹表字典...实在太大了,一直没去尝试过~感觉这个东西只是字典和时间的问题,没多大难度,所以不深究了。
此路不通,继续换别的思路,既然直接使用root用户不行,那么就来尝试创建一个用户吧!
既然是root权限,应该是无所限制的,接下来我们创建一个用户试一试:
这里忘记截图了,直接上添加用户后的截图吧!
test和test123都是新创建的用户:
其实还有一个思路就是:root权限可以直接修改/etc/passwd和/etc/shadow文件,可以直接删除root用户的密码或者修改其他用户的密码,不过这么做就有点破坏性质了,所以没这么去做,点到为止而已...没敢去做有破坏性的操作。
用户添加完了,最后一步就是看看系统的SSH有没有开了~
不过Solaris上执行这个命令,获得的信息感觉不符,所以又从其他命令来查看的。
可以看到SSH是online的,即说明本地系统是开放22端口的,不过远程访问的时候发现打不开,是因为防火墙没有映射该端口(现在基本上已经没有直接配置公网IP的服务器了,现在都是内网服务器,出口防火墙做NAT映射出去服务端口)
既然防火墙没有开放22端口,那就只能想办法看看LCX做端口转发咯,先上传LCX:
这是上传后查看的LCX源码,C语言的,文件名:test.c,要使用GCC编译一下才能使用:
这里执行gcc命令进行编译,虽然提示命令执行成功,但是目录却没有生成文件,因为没有错误回显,所以无法获得错误信息。
进行到这里,基本上已经不想在弄下去了,因为也没有多大意义了(况且搞了大半天也真的好累!),因为拿到root权限就已经够证明有多大危害了:系统关机、重启、删除文件和目录、删除日志、查看所有文件和目录信息等(可以找敏感文件、数据库文件等,只是时间的问题而已!)
下面在说几个思路:
其实除了上面说的以外,还去翻了翻系统目录、查找网站根目录、网站配置文件、数据库目录等也找了下,文件很多,找到了三个apache和tomcat目录,挨个看了下,都不太像,无法断定网站根目录,所以也就没有通过上传WebShell这条方式来继续,况且都拿到了root权限,webshell也没太大意义,不过要是论持久性的话还是有点意义,在就是webshell执行很多操作确实比这个工具要方便的多...而且高级点的webshell还可以执行netcat反弹shell,lcx端口转发。我就不去尝试了。
测试了一下这台服务器是可以访问外网的,所以可以使用Unix的下载命令去我们搭建的服务器或网站空间下载一些漏洞利用脚本或者相关工具同样也可以安装一些我们想要的程序,继续渗透下去。
时间仓促只是为了证明漏洞危害而已,所以没有对该系统进行破坏性的操作~
另外说一下,网站好像不太稳定,有时会掉线~
漏洞证明:
翻了一些目录,这里只简单列几个,太多了,就不一一列举了。
usr目录下有两个apache目录(apache和apache2):这是apache的默认安装目录
系统里面至少有3个apache和tomcat的目录,不过只有这个看着比较像当前运行的:
修复方案:
这是个老漏洞了,升级Struts2到新版就可以了。
版权声明:转载请注明来源 wy007@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2015-06-15 18:21
厂商回复:
CNVD确认并复现所述情况,已经转由CNCERT向北京市政府信息化主管部门通报,由其后续协调网站管理单位处置
最新状态:
暂无