护卫神主机大师提权漏洞

0x01 前言

护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+FTP+伪静态+PhpMyAdmin),并可在线开设主机、SQL Server和MySQL;Web方式管理,拥有独立前台和后台面板。支持Windows Server 2008/2012。结合护卫神14年安全防护经验,严格限制每个站点独立权限,彻底阻挡跨站入侵。但这套系统真的安全么?,由于某次测试遇到该系统,遂对该系统进行分析。本文记录了分析过程中的一些记录和问题。

0x01 代码分析

先看看装好后的软件界面,可以看到一些常见的主机操作功能。其中网站管理引起了我的注意,点开瞅瞅


护卫神主机大师提权漏洞_第1张图片

点开之后就直接进去了,WTF?


护卫神主机大师提权漏洞_第2张图片

从流程来看这里很明显有问题,撸开代码看看怎么验证的。虚拟主机管理系统运行在6588端口。且采用asp语言开发。程序路径为x:\HwsHostMaster\host\web\下,且为system权限运行。
/admin/index.asp
<%Option Explicit%>

<%
Dim strIp
strIp = Request.ServerVariables("local_addr")
Dim strAuto
strAuto = LCase(Trim(Request.QueryString("f")))

If (strIp = "::1" Or strIp = "127.0.0.1") And strAuto = "autologin"  Then
    '获取管理用户登录
    Dim sql,rs
    call conn_open()
    Set rs = Server.CreateObject("Adodb.Recordset")
    
    sql = "select top 1 * from [huweishen_Admin]"
    rs.Open sql,conn,1,1
    if rs.RecordCount = 0 then
        Session("admin")= "autologin"
    else
        Session("admin") = rs("username")
    end if
    rs.Close
    Session.Timeout =600
    
    AddLog Session("admin"), 1, "控制台直接登录管理中心"
    
    Response.Redirect "index.asp"
End If

%>

代码乍一看好像没啥问题,但是开发者疏忽了一个问题,第9行判断来源ip是否为本地访问,strIp变量来自Request.ServerVariables("local_addr") ,如果为本地访问且strAuto=autologin则直接登入系统,无需账号密码验证,这就出现一个问题了,开发者未考虑内部用户是否合法,如果我获取到一个低权限的webshell、那就相当于获取到一个本地身份了。那么我就可以直接访问到虚拟主机管理后台了。那么就可以为所欲为了。

0x03 利用方法

本漏洞利用前提是已经获取到虚拟主机上的一个webshell,其次在通过以下脚本即可访问到虚拟主机管理后台。


将该脚本上传至服务器,访问后即可获取到管理员cookie。在本地修改cookie后即可访问到虚拟主机管理后台。绕过登录限制。

0x04 GETSHELL

直接访问需要登录


护卫神主机大师提权漏洞_第3张图片

通过脚本获取cookie


护卫神主机大师提权漏洞_第4张图片

修改cookie后直接访问/admin/index.asp,进入后台
护卫神主机大师提权漏洞_第5张图片

进入后台后点击网站列表,随便选择一个网站,点击解压进入操作界面,通过FTP或其他方式上传shell压缩包,然后输入文件名和解压路径,解压路径选择护卫神管理系统路径,一般为X:\HwsHostMaster\host\web\ X为任意盘符。


护卫神主机大师提权漏洞_第6张图片

在我这里普通网站目录和护卫神管理系统都在D盘下,所以采用相对路径指向到管理系统web下即可
护卫神主机大师提权漏洞_第7张图片

护卫神主机大师提权漏洞_第8张图片

点击解压以后,shel就躺在管理系统目录下了。并且为system权限。


护卫神主机大师提权漏洞_第9张图片

0x05 总结

不要对内部不要过于信任,因为你无法确保内部绝对安全
 
 修复方案:
 修改逻辑判断,内部登录也要求身份认证

你可能感兴趣的:(护卫神主机大师提权漏洞)