吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11153|回复: 48
收起左侧

[PC样本分析] 浅析一个海莲花样本

  [复制链接]
1行 发表于 2020-9-20 16:32
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

[TOC]

前言

很早之前就对APT组织的攻击方式感兴趣,因为他们的传播方式、隐藏方式、攻击方式都让人眼界大开,也可以拓展分析思路的。所以就找了一个海莲花的样本来尝试分析,收获满满。

执行流程

利用微软白文件加载恶意wwlib.dll文件,释放出隐藏的doc文件,并在内存中释放出3段shellcode,最后获取恶意程序的链接并下载。

7e1faad5-8add-4e76-b89d-78e1b5768a12.png

详细分析

样本概括

EXE文件是带有微软签名的合法 word 程序,攻击者通过该程序加载恶意的 wwlib.dll 文件来释放 shellcode 进行攻击。

2565f9da-7dd7-4fb0-af55-ea30628b4a3b.png

85d59d02-4790-4b55-8f67-f1e6cc46766c.png

dll文件是隐藏的恶意文件。

7e7ae376-a2da-4b8a-9ca7-81b9afbbc547.png

ce6eeafb-e8c4-4983-9fa5-d5be08f96a08.png

wwlib.dll

exe文件调用dll,所以可以在 Loadlibrary 函数处下断点,来等待加载

3020d874-d0da-4cf4-a48f-8ba20fab370a.png

cb58f860-a1db-4e7e-bd3a-dd058e3d02ce.png

继续运行之后会释放doc文件并运行

f928292d-3da3-49db-a8cf-0691d06edfd9.png

0fec6b70-ff15-4276-817e-6878b8f950e6.jpg

申请空间来存放第一次的shellcode,通过xor异或解密之后再存放

aac9e57a-7136-49bd-a69e-1a79b29518ab.png

第一段 shellcode 是在这里之后转到的,

c660c39f-e036-4eee-9117-61128dc7ec8e.png

e8f98ead-38a7-4765-a88d-cfc338b04595.png

第一段 shellcode

从一个巨大的字符串数组中循环取出字符串后,经过解密算法来算出需要的函数字符串名称,如LoadlibraryA、VirtualAllocEx等

afda2410-f3e9-4fb2-8acd-485e64eb23e0.png

372b29e0-e89a-4834-aa8a-ab197fb59042.png

11423d68-d0be-4dc1-86dc-59dca6914397.png

解密 VirtualAllocEx 之后,申请空间来存放新的 shellcode

0db21eee-19d2-43ae-a553-6bab99bd954c.png

第二段 shellcode

解密shellcode之后,会调用第二段shellcode,

923c77e1-d138-48b6-aeaa-1830f07a75a2.png

使用极其耗费时间的大循环来解密字符串,防沙箱等检测工具

b918a0f2-abaa-4ed8-8f0f-1e0ad96d1397.png

解密出 calloc 之后,申请空间

fb6bbb59-1fe2-4952-9fba-faa6f4254ab8.png

复制数据到申请的空间中

e6d9a943-565d-408b-add4-fd1b9533bb62.png

获取网关信息

903a82aa-06a8-4551-8dd1-4212e4e94118.png

第三段 shellcode 使用动态提取的方式来获取 CryptAcquireContextA、CryptCreateHash、CryptHashData、CryptDeriveKey,并通过这些函数来保证CryptDecrypt函数的正常运行

创建空间,存放第三段 shellcode

59e9c0a2-f242-45a3-a268-bd23bf47fb83.png

通过 CryptDecrypt 解密函数,每次解密出shellcode的16位数据

838a0436-61e5-49be-9865-de7c5987311a.png

c6b08eb7-7505-4a41-9721-d43743b0620c.png

将解密出的数据复制到申请的空间中

a8c9c8be-f79c-46c4-aeb6-77721e353584.png

第三段 shellcode

以创建进程的方式运行第三段 shellcode

48384663-2199-45d5-883a-e762196a6692.png

在第3段 shellcode 中,会将要连接的url复制到特定内存中,连接url,

5c16441a-9b66-4ee7-8cd5-49786b3ad116.png

bda8bb53-c061-4999-9c49-658719717042.png

由于C2早已掉线,无法连接,这次的分析也就只能到这里了,估计下载的是一个EXE,想来应该是个具有窃密,回传信息的恶意程序。

e33c3249-8f7f-4ea0-bdbc-e9031ae479dc.png

总结

分析了这个样本感觉收获很多,首先是对白加黑的投递方式有了更深的理解,其次是对shellcode内存荷载的多阶段释放印象深刻。

对于海莲花这种靠后梯队的APT组织来说,他所投递的样本相对高梯队的APT组织投递的样本,分析难度还是较低,至少有迹可循。

样本IOC:SHA256 - c0ea37db94aa0d747ece7f46afcf90e43fb22c06731f291f0b2ba189d4326e33.rar
https://app.any.run/tasks/b3205da7-8c88-4375-bc87-ffbb985f01b8/

免费评分

参与人数 23威望 +1 吾爱币 +41 热心值 +19 收起 理由
mcwindy + 1 + 1 我很赞同!
LUOSP + 1 + 1 我很赞同!
wuliwuli + 1 热心回复!
水无鱼 + 1 + 1 用心讨论,共获提升!
天翊 + 1 + 1 虽然不知道是啥 就感觉很厉害
volcanocan + 1 + 1 我很赞同!
zun925 + 1 + 1 我很赞同!
依旧_浅笑 + 1 + 1 我很赞同!
邱淑贞 + 1 + 1 热心回复!
鸡你实在太美 + 1 谢谢@Thanks!
solymx + 1 + 1 我很赞同!
纯洁表弟 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
vrboxing + 1 + 1 热心回复!
xwei9277 + 1 + 1 一脸懵逼地看完了,一脸懵逼地点赞,大神!!!
修罗本灭世 + 1 + 1 谢谢@Thanks!
submarine1620 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Black_山猫 + 1 热心回复!
蔡爸爸牛批 + 1 + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chinawolf2000 + 1 + 1 热心回复!
fengbolee + 1 + 1 用心讨论,共获提升!
52pj17759127760 + 1 谢谢@Thanks!
SNADONNE + 1 + 1 厉害了 厉害了!!!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 1行 发表于 2020-9-20 20:44
慵懒丶L先森 发表于 2020-9-20 20:24
请教一下,为什么在内存中释放出了shellcode,杀毒软件没能发现呢?难道加载进了内存,杀毒软件就无法查杀 ...

是通过修改kernel32的某个函数返回地址来执行到shellcode的,这里杀软会认为你返回的是正常的函数,就不会报毒
wordmeng 发表于 2021-9-2 16:52
样本IOC:SHA256 - c0ea37db94aa0d747ece7f46afcf90e43fb22c06731f291f0b2ba189d4326e33.rar
https://app.any.run/tasks/b3205da7-8c88-4375-bc87-ffbb985f01b8/

这个样本是doc的文件,没有看到黑dll。能否把dll也共享一下,谢谢啦
 楼主| 1行 发表于 2020-9-20 18:39
ifenglmy 发表于 2020-9-20 18:53
谢谢楼主分享,,,
年轻的旅途 发表于 2020-9-20 20:15
太难了,得慢慢看
慵懒丶L先森 发表于 2020-9-20 20:24
请教一下,为什么在内存中释放出了shellcode,杀毒软件没能发现呢?难道加载进了内存,杀毒软件就无法查杀了吗,还是这段shellcode做了免杀处理
52pj17759127760 发表于 2020-9-20 21:04
学习下,感谢分享
慵懒丶L先森 发表于 2020-9-20 21:18
1行 发表于 2020-9-20 20:44
是通过修改kernel32的某个函数返回地址来执行到shellcode的,这里杀软会认为你返回的是正常的函数,就不 ...

原来如此,受教了,多谢赐教
bright21vn 发表于 2020-9-21 06:29
技术贴,已收藏
tkggauwxf 发表于 2020-9-21 09:04
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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