当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0151191

漏洞标题:万达集团某重要系统从SQL注入到系统命令执行再到域漫游

相关厂商:大连万达集团股份有限公司

漏洞作者: 路人甲

提交时间:2015-11-02 08:51

修复时间:2015-12-17 09:18

公开时间:2015-12-17 09:18

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-02: 细节已通知厂商并且等待厂商处理中
2015-11-02: 厂商已经确认,细节仅向厂商公开
2015-11-12: 细节向核心白帽子及相关领域专家公开
2015-11-22: 细节向普通白帽子公开
2015-12-02: 细节向实习白帽子公开
2015-12-17: 细节向公众公开

简要描述:

详细过程:SQL注入->服务器管理员权限->域管理权限

详细说明:

一、SQL注入
检测万达集团某APP时,发现以下地方存在注入:(POST中的groupCode,stacked queries和布尔盲注)

POST /hotelprocess/hotel/hotelList.action HTTP/1.1
Content-Length: 87
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
Referer: http://app.wandahotels.com/hotelprocess/hotel/hotelList.action
Cookie: JSESSIONID=27C5851C2AB17BA654E8BF2B1FB31B19
Host: app.wandahotels.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*
cityCode=BJS&groupCode=1&language=zh


1、SQLMap漏洞证明

SQLMAP.jpg


2、查看当前数据库用户,居然是sa!检测了下,果然是dba~~

USER.jpg


DBA.jpg


3、列出所有数据库,共14个

dbs.jpg


4、不妨看下当前库ECRS的表,共493个

tab.jpg


二、服务器本地管理权限获取
刚才看了当前数据库用户是sa,是dba,不妨执行下系统命令看看系统权限。
通过注入可获知系统环境为:Windows + MSSQL 2008 + JSP
于是通过SQLMAP的--os-shell,其原理为打开MSSQL的cmdshell模块,并在当前库中创建临时表sqlmapoutput,进而将执行命令时返回的结果存储在此表中,然后通过SQL查询返回给SQLMAP;
这里碰到一个问题,能使用--os-shell的只有stacked queries和UNION QUERY两种注入类型,此处注入只有stacked queries,而没有UNION QUERY,stacked queries是通过枚举+延时来进行判断的,所以返回结果时巨慢!!!后来想了个办法,由于本处注入还有布尔盲注,因此先通过stacked queries进行命令执行,然后通过布尔盲注dump当前库的sqlmapoutput表中的数据,这样速度就快多了,因为布尔盲注不依靠延时,而且可以多线程,即:
命令执行(sqlmap):

--os-shell --technique=S


命令结果查看(sqlmap):

--technique=B --threads=10 -D "ECRS" -T "sqlmapoutput" -C "data" --dump


于是执行了以下命令:
1、确定MSSQL在系统中的权限,也就是我们在系统中的权限,默认安装时MSSQL服务会以SYSTEM权限运行,相应权限也就是system~但认真的管理员在安装时会对其进行降权,比如降权到NETWORK SERVICE或新建一个IWAM账户等,此时我们可以通过执行whoami命令来确定。
发现返回是wanda\amadmin,非系统默认账户,此时我们得再运行命令去进一步确定我们的权限。

whoami.jpg


2、为了确定wanda\amadmin的权限,我们可以运行net user amadmin来查看。但是这个命令会有多行大量的结果,比较耗时,于是我选择了运行net localgroup administrators,直接查看本地管理员组的成员,发现我们的wanda\amadmin也在其中,因此可确定我们已是系统的管理员。可执行任意命令。

administrators.jpg


3、由于通过sqlmap来执行shell实在太慢了,虽然有布尔盲注辅助返回。于是我想getshell执行命令来提高返回速度,但是后来看了下,发现这台只是一台数据库服务器,与web服务器分离,并没开放web服务;于是我改为查看一些系统网络环境,如
本地IP,但发现都是内网的……(ipconfig)

ipconfig.jpg


于是我又查看了本地开放的端口(netstat /an)

netstat.jpg


但貌似没啥用,服务器估计是在内网,反弹不出来,也进不去……
但是,目前已经完全控制此服务器了,可执行任意命令。
三、域漫游
由于刚才看administrators组成员时,看到一个叫做WANDA\Domain Admins的,所以推测此服务器在WANDA域中,于是我们不妨执行些域命令来探测下。
首先,查看域管理员

net group "domain admins" /domain


domain.jpg


我们貌似不是域管理员哦~~但是只要域管理员登陆过本服务器,我们就可以用工具拿到他密码了~~不过速度是在慢得难受,同时也考虑到企业安全,就没继续深入了;比如我们还可以看看我们在域中的身份和所属的组及其权限

net user wxadmin /domain


当然,还可以继续查看域成员

net user /domain


不过估计很多~~又是好久好久了~~今天先搞到这里吧~虽然还有很多……

漏洞证明:

修复方案:

请多指教~~

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-11-02 09:17

厂商回复:

感谢路人甲同学的关注与贡献!马上通知业务整改!请私信留Q联系,谢谢!

最新状态:

暂无