执行摘要:
Petya 是一个加密恶意软件家族,它以 Windows 操作系统为目标,感染 MBR(主引导记录)以执行加密硬盘驱动器文件系统表的有效负载。
Petya 通过使用EternalBlue 的 MS17-010 漏洞在网络上传播。 它还通过窃取用户名和密码以及跨网络共享进行传播。
静态分析:
在IDA中打开勒索软件时,它从10007D39地址开始,函数是DLLEntryPoint,所以虽然文件扩展名是.exe,但实际上是DLL。
![(wqhcw7VA7HrCESna3XbOKQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/152f2d3c98f63c22cb388716c3fc87b0.png)
PeStudio:在pe信息中,我们看到其中两个对我来说可能是可疑的。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GqFbVHeW-1675251227617)(yrw0GbUAp7VfoQ5NYGmJ5g.png)]](https://i-blog.csdnimg.cn/blog_migrate/eeea4961d720cbe699b5df8c4d00c0de.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bv3Hog6w-1675251227618)(C5MPdYW3wUKqvHqjmiGkjg.png)]](https://i-blog.csdnimg.cn/blog_migrate/537a33d8406d3e768be988ba61b4ab46.png)
指定的文件头日期是5 年后,可能是关联的负载样本
在导入表中,寻找有趣的 api 调用,稍后在 IDA/Debugger 中调查这些调用以查看它们包含哪些值。
- CreateProcessW
这意味着创建的新进程在调用进程的安全上下文中运行。如果调用进程正在模拟另一个用户,则新进程使用调用进程的令牌。
- GetTokenInformation
- OpenProcessToken
它们都用于获取终端服务会话的 TokenSessionId。
猜测工作流程:在挂起模式下创建一个新线程。模拟令牌用 SetThreadToken 替换当前线程令牌,线程恢复。然后使用该线程作为模拟用户执行 SMB RCE。
- WNetCancelConnection2W
- WNetAddConnection2W
用于通过使用模拟令牌的默认凭据连接到服务器,然后取消连接。
- CryptEncrypt
加密数据的函数。在我们的情况下,我猜它会尝试加密 MFT,因为它是勒索软件。
在“Library”选项中,我检查了勒索软件导入了哪个库以及它导出了哪个函数。在下图中可以知道程序没有压缩。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0mT7STi-1675251227620)(DPfvoTh5jpfMwY9wVpIQqQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/e9ecf35e3ac801fcb2561d119c50cd10.png)
我关注的有趣的库是:
· Crypt32.dll — 可能会使用加密函数。
· Advapi32.dll - 可能会负责重启操作系统(我猜是因为勒索软件在加密所有文件后想要重启机器)。
· Shlwapi.dll — 适用于字符串和文件系统路径的函数。
· Ws2_32.dll — 它包含 windows sockets api,猜测是为了设置一些套接字。
另一种查找有关勒索软件的有趣信息的方法是阅读字符串。为此,我使用BinText。
这些字符串是可读的字符串的,将要查找的文件扩展名:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6eZbceKO-1675251227621)(OSgx6bq5iX2_01S_8DtcQg.png)]](https://i-blog.csdnimg.cn/blog_migrate/c4dfe9da229667b563d2c5c539662747.png)
将显示在受害者屏幕上的勒索消息:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPeiEqfH-1675251227622)(18GbvfH11bsT92C8ZanS7w.png)]](https://i-blog.csdnimg.cn/blog_migrate/af742278935176eb4acf68807f824a8d.png)
动态分析
正如我们在需要面对DLL的静态分析中看到的那样,我尝试在入口点使用 Rundll32 运行它,看看会发生什么。
我们如何知道入口点参数是什么?有一个可疑字符串是:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r6IVZhWp-1675251227622)(qjasNF7MW-PoT1UOZ2leFA.png)]](https://i-blog.csdnimg.cn/blog_migrate/031e65b59ae64b2a2a1310b0dd38150c.png)
该字符串被描述为勒索软件由 rundll32 作为带有 #1 参数(这是库中的第一个值)的子进程运行。
此外,当将 dll 放入 IDA 时,在导出表中,我们可以看到我们应该运行一个导出函数。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LyU8P3RW-1675251227622)(8T50mJvsE_CvE7FRNVragA.png)]](https://i-blog.csdnimg.cn/blog_migrate/90d4f5caa4e7b29624f39ac69c19d7f1.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bLJWZSpQ-1675251227623)(2PU8GJIjc1uyPX0LOla3CQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/7ff7b6682e3eff927b2f37667e9db87e.png)
使用导出选项卡的第一个功能运行勒索软件
我们在Process Hacker中看到我们之前使用的 cmd & rundll32 运行的 dll。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVX2QIhp-1675251227623)(Qa_HlsAhi-CZ7MRH5Rs7Jw.png)]](https://i-blog.csdnimg.cn/blog_migrate/9006c15b03576b81c147492650a6ca6f.png)
双击rundll32.exe,内存和字符串选项卡我们看到内存中运行的有趣字符串:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-237dAeZ0-1675251227623)(yu5r1I-F5cbIML42Tg68Vg.png)]](https://i-blog.csdnimg.cn/blog_migrate/94dc401d2d6d1b5adbe02aec6d86725a.png)
创建计划任务是为了关闭受害者的机器,因为恶意软件在重启后开始加密。
当我们进入任务调度程序本身时,我们会看到真正创建并准备运行的任务。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D8ApcqsB-1675251227623)(xjFczr_zNnU9eg4j8UuXUg.png)]](https://i-blog.csdnimg.cn/blog_migrate/058bf8eb12820b6f980af04bdf3bf49b.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bfHUVB1-1675251227624)(sTLvNqpHED9LmVoMjOyoiw.png)]](https://i-blog.csdnimg.cn/blog_migrate/f2b552032d328713d8a4c71d26e75197.png)
映射物理驱动器。这意味着勒索软件想要访问物理磁盘并加密MFT,因此文件系统将不可读。
下面的字符串描述了安全、应用程序、系统日志将被恶意软件删除。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tRPXjWoE-1675251227624)(FUnMvYnsyteYB2PFEN2QIQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/da8b98b0831a125cb882f39423c083a8.png)
简而言之,我们的样本没有留下任何痕迹。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q1ZxOQBM-1675251227624)(rDYO5xlATEPLQ7aMocQh8g.png)]](https://i-blog.csdnimg.cn/blog_migrate/806fc09474bacc114b2a425b2909cc4d.png)
当受害者的计算机重新启动时,Petya 会伪造“检查磁盘扫描”。 稍后我们将在重启 VM 后看到它。这个动作其实就是加密!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uUdcIKu1-1675251227624)(t3QeqSqjGkbHvmOBp1PpGw.png)]](https://i-blog.csdnimg.cn/blog_migrate/2936117d4bfb8d3e95cf78684eabec01.png)
显示在受害者屏幕上的消息:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-szcJVu6b-1675251227625)(iBzvCt1fRjQPXPB3gKjqLQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/776f8828350d4fe2387ab9f0c0a72e71.png)
此外,我之前已经打开了Procmon,其中包含许多过滤器以捕获有趣的过程,例如:
- 进程创建
- 进程名称是Petya.dll
- 进程名称包含Rundll32
我们看到勒索软件创建了一个计划任务,在特定时间关闭受感染的机器,并在 AppData\Local\Temp 路径下创建了 tmp 文件“181E.tmp”。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9NaMYPU2-1675251227625)(v4ufnaJjqm7aOKq4yM138Q.png)]](https://i-blog.csdnimg.cn/blog_migrate/6222ed74688b91bad334201da8944fb2.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uI42k9nG-1675251227625)(JN2cVkOxzYNWN3zOZkMs5g.png)]](https://i-blog.csdnimg.cn/blog_migrate/6cb81213754df189c9da77c648ee83c7.png)
该恶意软件似乎试图连接到admin$ 共享。
IDA:
- 当我将文件放入 IDA 时,第一件事是查看顶部分布颜色。例如,橄榄色是未开发的代码,粉红色是外部 符号,可以向我们表明我们的示例是否使用外部 DLL 库。(基本上这是一张表格,向我们展示了每个符号的内存位置——恶意软件代码的 API 调用)
- 第二件事我总是看导入表 非常重要,因为我们可以看到恶意软件使用了哪个 API 调用。
例如,正如我们在WNetAddConnection2w 的 API 调用的静态分析中看到的那样,我们可以通过按 x 来查看她对她的引用,也可以通过禁用 ASLR 和设置 BP 来查看我们的恶意软件连接。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fk6P9G39-1675251227625)(HlCQr5HhXzAEYvk2PJHoGQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/1e0e5c1e418b96e672617a9144b71faa.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0IKPmXx-1675251227626)(qEdMENlfQ4ldskdLkiBsdw.png)]](https://i-blog.csdnimg.cn/blog_migrate/1623d68f71f8857f3a3f28c3d6d4d8be.png)
勒索软件针对的扩展文件(您可以在审计部分找到它)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7InZ6GIp-1675251227626)(jWa2PYAJNZCnVZ_81xS7mw.png)]](https://i-blog.csdnimg.cn/blog_migrate/db3f7a932916b765d08063ab40d10665.png)
恶意软件“覆盖”了MBR。它推送一个名为“Physicaldrive0”的文件,其中包含许多参数,包括他自己,然后它转到 DeviceControl 函数(指定设备驱动程序)。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ytpm34Z-1675251227626)(QxFMUOTtRoBRpsFLZjbskg.png)]](https://i-blog.csdnimg.cn/blog_migrate/32cb5456a8169fefce942c4994167ce8.png)
当我们双击该文件时,我们会看到它的入栈参数:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBlmJYTl-1675251227627)(K-QrNWOhrfZrSpEUuH_wMw.png)]](https://i-blog.csdnimg.cn/blog_migrate/27f274aa0747667d448b0a6da4c8ec64.png)
另一个有趣的事情是 DeviceControl 包含的参数之一,它是:hDrive。 它的参数给出驱动程序的句柄并检索有关物理磁盘、文件、线程等的信息。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rExTtG6-1675251227627)(SnLMMAN6_qSFPE4JWdiEsg.png)]](https://i-blog.csdnimg.cn/blog_migrate/e0458d3e45e14cf4b48a9bf38b13bb16.png)
网络枚举:
在恶意软件获得ComputerNameExW之后,在她创建CreateThread之前,我们可以看到条件 (jz) 有一个非常有趣的参数,它调用IpStratAddress,这是重建 SMB 协议的开始。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OZ1jpxyq-1675251227627)(KZ68mKJdHDfe2aVpObCrBQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/1c353d9656d55bb8eb59a70420205e3c.png)
如果我们稍微往下看(在创建线程之后),我们会看到两次函数调用。
在第一个中,我们看到一个推送参数,如GetExtendedTcpTable,意思是“检索 TCP 端点列表”。换句话说,获取本地机器的 tcp 连接。
在第二个中,我们看到GetIpNetTable,意思是“给我你的本地网络 ip”。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XfjncVlt-1675251227628)(v5-68muiXybr1LL-JvuL8Q.png)]](https://i-blog.csdnimg.cn/blog_migrate/4442839d30ee65a4db88977d71973cf5.png)
使用 API 调用GetAdaptersInfo的 SMB 枚举。此调用的目标是获取所有网络接口(如工作站/服务器)的子网掩码。在调用结束时,我们有条件意味着如果不为零则跳转到 API 调用检索 inetaddr 并关闭套接字或跳转到 API 调用 LocalFree 检查磁盘上的可用空间并给出线索是服务器还是工作站.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wMZLuXrs-1675251227628)(NZzBcEvCMXHPEiQlaB-EHQ.png)]](https://i-blog.csdnimg.cn/blog_migrate/db106c8c997bda894bb8cff153ba106f.png)
它使用NetServerGetInfo api 调用检查它。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4EiSLN8O-1675251227629)(Pn80jdocU0Hyvte5kKqc4w.png)]](https://i-blog.csdnimg.cn/blog_migrate/b31515a2a190c64b67203a3d12131182.png)
当我们深入研究“Check_If_Server_Or_Not”的调用时,我们看到三个参数被推送到 NetServerGetInfo 的调用中(bufptr、level、servername)。
-
第一个参数包含 65h 对象。
-
第二个是空的,这意味着等于 0。
来自 MSDN:bufptr指向服务器 101 信息结构。所以101对我来说是恶意软件返回服务器名称、类型和基础设施的行为。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmKm33nW-1675251227629)(YOwpQwMW2QnsM9-a6rmCdg.png)]](https://i-blog.csdnimg.cn/blog_migrate/40dc030dfbc2f0c661ff679e8074aee8.png)
结论:
======
总的行为总结为:
-
释放文件
-
令牌模拟
-
网络节点枚举
-
SMB复制和远程执行
-
通过 EternalBlue 开发 SMBv1
-
侦察并将恶意软件写入远程目标上的 admin$
-
MBR勒索软件
-
物理驱动操作
-
MFT加密
-
系统关闭
更多内容关注 gzh “TIPFactory情报工厂”

7250

被折叠的 条评论
为什么被折叠?



