一例白加黑样本的分析

概述

这是一个典型的白加黑的恶意代码,原始样本是一个自解压文件,可能是钓鱼样本,使用了一个合法签名的exe加载一个恶意的dll,在内存中解密和运行恶意载荷,,创建启动项的方式很特别,没有传播功能。

原始样本 sogou_pinyin_setup.exe

样本的基本信息

SHA256:31110b94ab2c3f672149658d0962ce11593801076ac51c844fe31a6c9ee7fd36
MD5:1c3e486b4243ead7ce573b1aba6ffddc
SHA1:1740e5de664533f974473c39ba3f68627b2037df
文件大小: 1.34 MB (1,407,798 字节)
Detect It Easy信息
PE32sfx: WinRAR(-)[-]编译器: EP:Microsoft Visual C/C++(2013-2017)[EXE32]编译器: Microsoft Visual C/C++(2015 v.14.0)[-]链接程序: Microsoft Linker(14.0, Visual Studio 2015 14.0*)[GUI32,admin]存档: RAR(5)[-]附加: Binary存档: RAR(5)

根据Detect It Easy的信息可知这是一个压缩包,使用winrar打开,可以看到有自解压的命令,将其中的ppt文件夹解压到%ProgramData%中,并运行ppt/YourPhone.exe

ppt目录下有4个文件

这4个样本的基本信息如下

ppt\hpock.png:
Verified:    Unsigned
File date:    21:56 2024/4/7
MD5:    B2AC9A3402A82FAD76D43DA9EF060349
SHA1:    800B4CDA55C31B80AE4B2C31E1DD75ABACEAEE32
SHA256:    669F91E219A7D85DE6C19EFE3B183659B7C40C205BF844F505C7E53D9DB06911ppt\vcruntime140.dll:
Verified:    ?????????????????
Link date:    12:11 1980/5/20
Publisher:    Microsoft Windows Software Compatibility Publisher
Company:    Microsoft Corporation
Description:    Microsoft?C Runtime Library
Product:    Microsoft?Visual Studio?
Prod version:    14.38.33135.0
File version:    14.38.33135.0
MachineType:    32-bit
MD5:    9C133B18FA9ED96E1AEB2DA66E4A4F2B
SHA1:    238D34DBD80501B580587E330D4405505D5E80F2
SHA256:    C7D9DFDDBE68CF7C6F0B595690E31A26DF4780F465D2B90B5F400F2D8D788512
pdb path,D:\a\_work\1\s\binaries\x86ret\bin\i386\\vcruntime140.i386.pdbppt\YourPhone.exe:
Verified:    Signed
Signing date:    14:19 2011/9/21
Publisher:    Beijing SkyInfo Technology Co., Ltd.
Company:    ???????
Description:    易点通播放组件
Product:    ???????
Prod version:    1.0.0.1
File version:    1.0.0.1
MachineType:    32-bit
MD5:    99A8958530024EF92EB337339058F461
SHA1:    99D4BF5CA192AC32AE190CDE5AB6CB15DF34B8D5
SHA256:    EDAAE9FF7AEB6E590B9FBA6A3E2C0D80EA94B033CFFF502CAABD09510364B69D
pdb path,D:\works\CoolHC\trunk\client\bin\Release\VoolePlayer\VoolePlayer.pdbppt\YourPhoneCHS.dll:
Verified:    (证书无效)
Signing date:    20:50 2023/12/18
Publisher:    北京京东尚科信息技术有限公司
Company:    Micffrporation
Description:    Restart Manager
Product:    Micrhddhfg System
Prod version:    10.0.17763.1075
File version:    10.0.17763.1075 (W4550101.0800)
MachineType:    32-bit
MD5:    55790D7A53A0464464456AA4BE43B7AA
SHA1:    B9C51DA26DED64A7325D3337D53690AD1A6F506D
SHA256:    6111E09B425EDCA218E49F8B7E482724D36384856B603F1396E4D0291DFBD7D0
pdb path,D:\源码\UU\Release\dllhostLOC.pdb
编译时间戳 2024-04-02 18:18:12

YourPhone.exe是有合法签名的,
vcruntime140.dll文件是windows的组件,
YourPhoneCHS.dll文件的签名有问题,pdb路径也很可疑
hpock.png不是一个合法的图片(是一个加密的payload)
通过白+黑的方式启动,通过侧加载dll的方式启动恶意dll,在内存中解密执行payload

阶段1 YourPhone.exe

YourPhone.exe是一个合法的软件,为易点通播放组件,在这个样本中的_AfxLoadLangDLL函数中会加载YourPhoneCHS.dll。

阶段2 YourPhoneCHS.dll

这个dll的主要功能是读取同目录下的文件hpock.png的内容,解密其中的内容,在内存中加载一段shellcode

在NtProtectVirtualMemory处下断点,将这段shellcode dump出来

阶段3 shellcode

这段shellcode的作用是在内存中解压一个dll,并加载这个dll。
这段shellcode使用peb+hash的方式获取了所需的api地址,使用RtlDecompressBuffer函数解压了一个dll,在内存中加载这个dll,没有落地。
最后调用了VirtualFree函数,这个操作很重要,后面会讲。

RtlDecompressBuffer处设置断点,将解压后的dll提取出来分析。

阶段4 dll

样本的基本信息,根据pdb路径大致可推测为中国人所为,这个病毒的主要功能就在这个dll中

md5,B63B71D2E464F2F8303BE9F10D5F1BDD
sha1,FF0BFD69D7EEDB64235AFDABDA3E56EBE89144A6
sha256,5F590A79B3827252D017C31A83482FE3F547E8A21C4F69BB0A02FF0A6A766481
pdb path,D:\源码\UU\Release\lib.pdb
Link date:    21:56 2024/4/7
MachineType:    32-bit
文件大小: 149 KB (152,576 字节)
链接程序: Microsoft Linker(14.37**)[DLL32]
导出表
Name    Address    Ordinal
fuckyou    10005440    1
DllEntryPoint    10005F70    [main entry]

主要功能是fuckyou这个函数中

首先初始化了一堆全局变量,创建了一个名为MutexChinagamesAutoUpgrade的互斥量和一个名为\\.\pipe\\vfsss221wsUU8sngs06的命名管道。
通过遍历进程的方式,判断当前系统中是否有360相关进程。
检测WinDefend服务,判断当前是否有windows Defender
判断当前系统中是否存在%startup%\Microsoft Server.lnk或%startup%\Microsoft Server.vt。(这是病毒的启动项),若不存在的话,表示首次感染系统,存在的话,是开机启动的情形。
最后使用inline hook的方式hook了VirutalFree的地址。
hook的原理也很简单,将VirtualFree的前5个字节先备份,然后替换成E9 XX XX XX XX(jmp xxxxxxxx),后面是作者自定义函数的地址,病毒的主要功能在这个函数中。在阶段3的末尾,加载dll后调用VirtualFree就会触发hook后的函数。

下面重要分析这个hook后的VitualFree。

1.拷贝文件

创建一个类似这样的目录C:\\ProgramData\[GUID1]\[GUID2]\,
GUID的格式为%08X-%04X-%04x-%02X%02X-%02Xxv%02Xw5%02X%02X,注意和通常的GUID字符串不一样。将当前目录下的4个文件(YourPhone.exe、YourPhoneCHS.dll、hpock.png、vcruntime140.dll),拷贝到这个目录下,并隐藏目录C:\\ProgramData\[GUID1]

2.添加开机启动项

若存在360相关进程

创建一个空白文件 C:\\ProgramData\\Microsoft Server.vt,将这个文件拷贝到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Server.vt.
调用MoveFileExAL:\Microsoft Server.vt移动到L:\Startup\Microsoft Server.vt,这个API设置了flag=DELAY_UNTIL_REBOOT,表示等待系统重启后完成移动(神操作)。
修改下列3项注册表,完成开机自启动病毒母体:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\DOS Devices]
"L:"="\\??\\C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs"
将L:映射为startup路径[HKEY_CLASSES_ROOT\.VT]
@="NNLPS"[HKEY_CLASSES_ROOT\NNLPS\Shell\Open\Command]
@="C:\\ProgramData\\[GUID1]\\[GUID2]\\YourPhone.exe"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\DOS Devices]
该键是注册表中的一个路径,表示当前计算机系统的控制集的设置。其中的 DOS Devices 是会话管理器的设置。此项的含义是指定一个逻辑驱动器 L:,其对应的物理路径是 \\??\\C:\ProgramData\Microsoft\Windows\Start Menu\Programs。换句话说,这个键值给驱动器 L: 分配了一个路径(目录)。

[HKEY_CLASSES_ROOT\.VT]该键指定了文件扩展名 .VT 对应的注册表项的路径。在这个例子中,.VT 扩展名的默认值是 NNLPS

[HKEY_CLASSES_ROOT\NNLPS\Shell\Open\Command]该键指定了注册表中与 NNLPS 文件类型相关的默认打开命令。在这个例子中,默认的打开命令是 C:\ProgramData\[GUID1]\[GUID2]\YourPhone.exe。也就是说,每当使用关联到 .VT 扩展名的文件时,系统会自动执行 YourPhone.exe 这个程序。

若当前系统不存在360时

执行下面的操作。
创建一个新的目录C:\ProgramData\[GUID1]\[GUID3],在其中释放一个lnk文件Microsoft Server.lnk,这个lnk的target指向C:\ProgramData\[GUID1]\[GUID2]\YourPhone.exe,开始位置为C:\ProgramData\[GUID1]\[GUID2]

若当前系统中有windows defender的话

执行下面的命令,将病毒所在目录加白。

powershell.exe  -Command "Add-MpPreference -ExclusionPath '\C:\ProgramData\[GUID1]\[GUID2]'"

C:\ProgramData\[GUID1]\[GUID3]\Microsoft Server.lnk拷贝到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Microsoft Server.lnk

若当前系统没有windows defender的话

将当前用户的 Startup文件夹的路径设置为 C:\ProgramData\[GUID1]\[GUID2],这个过程有点特别,着重讲一下。
首先释放一个文本文件C:\ProgramData\[GUID1]\[GUID3],内容如下,这是要修改的注册表项。

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Startup"="C:\\ProgramData\\[GUID1]\\[GUID1]"

这个键值将当前用户的 Startup文件夹的路径设置为 C:\ProgramData\[GUID1]\[GUID2]。这意味着在用户登录时,Windows系统将会查找并运行位于该路径下的程序或快捷方式。
然后从网址http://asj658g.cyou/d1/154.38.113.5/reg32下载一个exe,保存为C:\ProgramData\[GUID1]\[GUID4].exe,这个应该是reg.exe程序,不过这个Url已经失效了。
创建一个新目录C:\ProgramData\[GUID1]\[GUID5],创建一个lnk文件C:\ProgramData\[GUID1]\[GUID5]\[GUID6].lnk,这个快捷方式的target为C:\ProgramData\[GUID1]\[GUID4].exe /s "C:\ProgramData\[GUID1]\[GUID3]",起始位置为C:\ProgramData\[GUID1]
打开目录C:\ProgramData\[GUID1]\[GUID5],使用遍历窗口的方式找到窗口标题是[GUID5]的窗口,找到这个打开的窗口后,向这个窗口的发送鼠标点击消息来执行C:\ProgramData\[GUID1]\[GUID5]\[GUID6].lnk


就一个设置注册表的操作,竟然写的这么复杂,目的应该是为逃避检测。执行完毕后就会删除这reg.exe文件和文本文件。

执行恶意代码

最后这个病毒向http://asj658g.cyou/d1/154.38.113.5/code32下载一段shellcode,
若当前不存在360的话,创建一个bat文件,保存为C:\ProgramData\[GUID1]\[GUID6].cmd,内容如下,执行这个bat文件。这个批处理脚本的作用是检测病毒进程是否正在运行,如果没有运行,则启动病毒母体,保证病毒进程一直存在。

@echo off
:loop
tasklist /fi "PID eq [curpid]" | findstr /i "[curpid]" > nul
if %errorlevel% neq 0 (
start "" "[selfFileName]"
ping -n 5 127.0.0.1 > nulstart "" "[selfFileName]"
del "%~f0"
goto end
)
ping -n 20 127.0.0.1 > nul
goto loop
:end

最后将下载的shellcode加载到内存执行,由于c2地址已经不可用,无法知道shellcode的功能。

IOC

文件hash 
1c3e486b4243ead7ce573b1aba6ffddc sogou_pinyin_setup.exe 自解压文件
9C133B18FA9ED96E1AEB2DA66E4A4F2B vcruntime140.dll 微软组件
99A8958530024EF92EB337339058F461 YourPhone.exe 白样本 有合法签名
B2AC9A3402A82FAD76D43DA9EF060349 hpock.png 加载的payload
55790D7A53A0464464456AA4BE43B7AA YourPhoneCHS.dll 加载器
B63B71D2E464F2F8303BE9F10D5F1BDD 内存中加载的dllpdb 路径
D:\源码\UU\Release\dllhostLOC.pdb YourPhoneCHS.dll
D:\源码\UU\Release\lib.pdb 内存中加载的dll文件路径
%ProgramData%\ppt\YourPhone.exe
%ProgramData%\ppt\YourPhoneCHS.dll
%ProgramData%\ppt\hpock.png
%ProgramData%\ppt\vcruntime140.dll
注意和GUID是随机生成的,格式如%08X-%04X-%04x-%02X%02X-%02Xxv%02Xw5%02X%02X
%ProgramData%\[GUID1]\[GUID2]\YourPhone.exe
%ProgramData%\[GUID1]\[GUID2]\YourPhone.exe
%ProgramData%\[GUID1]\[GUID2]\YourPhoneCHS.dll
%ProgramData%\[GUID1]\[GUID2]\hpock.png
%ProgramData%\[GUID1]\[GUID2]\vcruntime140.dll快捷方式文件
%ProgramData%\[GUID1]\[GUID3]\Microsoft Server.lnk
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Microsoft Server.lnk
空白文件
%ProgramData%\Microsoft Server.vt
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Server.vt
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Microsoft Server.vtC:\ProgramData\[GUID1]\[GUID3] .reg文件
C:\ProgramData\[GUID1]\[GUID4].exe reg32文件 从c2下载的
C:\ProgramData\[GUID1]\[GUID5]\[GUID6].lnk 启动reg32的快捷方式C:\ProgramData\[GUID1]\[GUID6].cmd bat文件互斥量 MutexChinagamesAutoUpgrade
命名管道 \\.\pipe\\vfsss221wsUU8sngs06注册表
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\DOS Devices]
"L:"="\\??\\C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs"
将L:映射为startup路径[HKEY_CLASSES_ROOT\.VT]
@="NNLPS"[HKEY_CLASSES_ROOT\NNLPS\Shell\Open\Command]
@="C:\\ProgramData\\[GUID1]\\[GUID2]\\YourPhone.exe"[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Startup"="C:\\ProgramData\\[GUID1]\\[GUID1]"网络
http://asj658g.cyou/d1/154.38.113.5/reg32
http://asj658g.cyou/d1/154.38.113.5/code32

总结

这是一个典型的白加黑的样本,其中使用了许多规避检测的方法,有花指令、有检测360和windows defender,内存加载dll,创建开机启动项和对注册表的操作很特别。有点疑问的话是没有传播模块,不排除钓鱼的嫌疑。

参考资料

  • 微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 (threatbook.com)

  • 样本报告-微步在线云沙箱 (threatbook.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS_day1

1.总结keil5下载代码和编译代码需要注意的事项 下载代码前要对仿真进行设置 勾选后代码会立刻执行 勾选后会导致代码不能执行 写代码的时候要写在对应的begin和end之间,否则会被覆盖 2.总结STM32Cubemx的使用方法和需要注意的事项 ①打开软件,新建工程…

深入理解神经网络学习率(定义、影响因素、常见调参方法、关键代码实现)

目录 什么是学习率? 有哪些影响因素? 常用调整方法? 博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平…

基于SpringBoot+Vue的计算机课程管理平台(源码+文档+包运行)

一.系统概述 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足,创建了一个计算机管理基于工…

第八届云计算与大数据计算国际会议(ICCBDC 2024)即将召开!

第八届云计算与大数据计算国际会议(ICCBDC 2024)将于2024年8月15-17日在英国的牛津布鲁克斯大学举行。云舞长空,数织经纬,ICCBDC 2024将围绕推动云计算与大数据技术的创新与发展,促进全球范围内的学术交流与合作,共同探索云计算与…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示:部署成功,访问登录页面登录也成功,强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图,再下面添加这条配置信息 location / {try_file…

说说你对集合的理解?常见的操作有哪些?

一、是什么 集合(Set),指具有某种特定性质的事物的总体,里面的每一项内容称作元素 在数学中,我们经常会遇到集合的概念: 有限集合:例如一个班集所有的同学构成的集合无限集合:例如…

LangChain入门:19.探索结构化工具对话

引言 在人工智能的浪潮中,对话代理技术正逐渐成为企业和开发者关注的焦点。LangChain,作为对话代理领域的一颗新星,自2021年9月诞生以来,以其强大的功能和灵活的应用场景迅速赢得了市场的认可。本文将带你深入了解LangChain中的S…

智慧公厕厂家,众多智慧公厕精品工程解读

智慧公厕,作为现代城市建设中的重要组成部分,正以其智能化、信息化的特点逐渐引起人们的关注。 一、什么是智慧公厕? 智慧公厕是什么?智慧公厕通过物联网、大数据、云计算、网络通信、自动化控制等技术,监测公厕内部…

深度学习知识点:卷积神经网络(CNN)

深度学习知识点:卷积神经网络(CNN) 前言卷积神经网络(CNN)卷积神经网络的结构Keras搭建CNN经典网络分类LeNetAlexNetAlexNet 对比LeNet 的优势? VGGVGG使用2个33卷积的优势在哪里?每层卷积是否只…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子, pip install matplotlib6666 6666只是胡乱输入的一个数,反正输入任意一个不像版本号的数字都可以~ matplotlib所有版本号如下, 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…

Web前端开发——Ajax,Axios概述及在Vue框架中的使用

前言: 整理下学习笔记,打好基础,daydayup!!! Ajax Ajax是什么? Ajax全称Asynchromous JavaScript And Xml,是异步的JavaScript和Xml。 Ajax的作用? 1,数据交换:通过Ajax可以给服务器…

Python统计分析库之statsmodels使用详解

概要 Python statsmodels是一个强大的统计分析库,提供了丰富的统计模型和数据处理功能,可用于数据分析、预测建模等多个领域。本文将介绍statsmodels库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装statsmodels库非常简单,可以使用pip命令进行安装:…

交通部 JT/T 808(809 1076 1078 )车辆卫星定位系统 通信协议介绍

1 行业标准协议 1.1 官方网站 交通运输标准化信息系统 (mot.gov.cn) 附上官方下载地址: JT/T 808-2019 道路运输车辆卫星定位系统 终端通信协议及数据格式 JT/T 809-2019 道路运输车辆卫星定位系统 平台数据交换 JT/T 1076-2016 道路运输车辆卫星定位系统 车…

zehpyr环境搭建和demo的编译

qemu可执行固件编译的探索 环境demo的模拟SDK构建zephyr环境设置安装依赖项下载 Aspeed Zephyr 软件包 安装工具链配置 环境 ubuntu22.04、 qemu9.0.0-rc1、cmake 3.25.2、python 3.8.10、dtc 1.5.0、west 1.2.0、zephyr-sdk-0.16.1 demo的模拟 首先先尝试一个可以正常跑起来…

C#学习笔记11:winform上位机与西门子PLC网口通信_下篇

今日终于到了winform上位机与西门子PLC网口通信的系列收为阶段了,一直没一口气更新完,手头上也没有可以测试用的PLC设备,虚拟仿真用到的博图软件也不想下载(会让我电脑变卡)。 于是等了些日子购买西门子PLC&#xff0…

软件测试的4个职业阶段,你在哪个阶段?

最近一直在忙的项目刚刚上线交付完成,让自己有了些许喘息的时间。人总是这样,在忙碌的时候,能心无旁骛关注并做好一件事,已是万幸。而全力而为之后的闲暇总是如此的珍贵,在这难得的空隙中,不自觉的开始对自…

自动化测试-如何优雅实现方法的依赖

在复杂的测试场景中,常常会存在用例依赖,以一个接口自动化平台为例,依赖关系: 创建用例 --> 创建模块 --> 创建项目 --> 登录。 用例依赖的问题 • 用例的依赖对于的执行顺序有严格的要求,比如让被依赖的方…

市面上加密混淆软件的比较和推荐

引言 市面上有许多加密混淆软件可供开发者使用,但哪些软件是最好用的?哪些软件受到开发者的喜爱?本文将根据一次在CSDN上的投票结果,为大家介绍几款在程序员中普及度较高的加密软件。以下是投票结果,希望能对大家的选择…

JSON数据格式讲解与cJSON库的使用

文章目录 写在前面一、安装cJSON二、使用cJSON1、使用的文件2、如何传输数据:**** 三、JSON语法四、cJSON函数讲解1、cJSON结构体 **2、cJSON结构体与字符串之间的转换(重要)2.1、标题将cJSON结构体转换为字符串(常用)2.2、将字符串转为cJSON…

看看《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制山鸢尾萼片长度和萼片宽度的小提琴图

使用MATLAB绘制鸢尾花数据集( fisheriris)中山鸢尾( Iris Setosa)的萼片长度和 萼片宽度的小提琴图。这将帮助我们更好地了解山鸢尾的这两个特征的数据分布情况,包括它们的 中位数、四分位范围及密度估计。这种可视化工…