【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
未完全按原文翻译。
在2017年6月27日,一款勒索软件开始在欧洲大范围传播。我们注意到攻击从乌克兰开始,超过12,500台机器遭到威胁。随后勒索软件传播超过64个国家,包括比利时,德国,俄罗斯和美国。
这款新的勒索软件具备蠕虫特性,使得它可以通过网络对外传播。基于我们的研究,这款新的勒索软件是Ransom:Win32/Petya
的一个变种,较之前的版本更加附加和强大。
为了保护用户,我们发布了更新补丁,用户可以到Malware Protection Center去下载。
0.1 传送和安装
最初的攻击起源于乌克兰的一家名为M.E.Doc的公司,微软根据相关证据证明勒索软件的下载安装使用了 “软件供应链攻击
”方式。
我们检测到MEDoc软件的更新程序EzVit.exe执行了一个命令行命令,在6月27日10:30左右。下图演示了执行流程,但是EzVit.exe执行恶意命令的原因目前还未知。

0.2 单勒索软件,多方位传播技术
这个勒索软件,起初只感染了一台电脑,然后通过网络对外传播。它使用的到的基本技术包括:
.窃取凭证或者重用当前会话\
.通过文件共享在内网传播恶意文件\
.通过合法途径执行负载,或者利用SMB漏洞(未打补丁的机器)
下面我们深入了解下这些技术的细节。
0.3 通过凭据窃取和身份伪造传播
勒索软件释放一个和Mimikatz类似的dumping工具(通常是放到%Temp%文件夹下的一个.tmp文件),区分32位和64位版本。因为用户通常使用具有本地管理员权限的账号登录电脑,并且和内网内多台机器保持通讯连接,被窃取的凭据很可能具有其他电脑上同样用户的访问级别。一旦勒索软件获取了有效的凭证,它会扫描局域网,并尝试通过139和445端口和其他电脑建立连接。对于域控制账号或者域服务器具有一个特殊的行为:勒索软件尝试调用 DhcpEnumSubnets() 方法,在扫描tcp/139 和 tcp/445端口之前,先枚举所有DHCP子网内的主机( to enumerate DCP subnets all hosts on all DHCP subnets before scanning for tcp/139 and tcp/445 services)。如果得到相应,勒索软件使用窃取到的凭据尝试向其他主机传输一个二进制文件,通过常规的文件传输方法。
之后它尝试通过PSEXEC 或WMIC 工具执行拷贝到远程主机上的恶意程序。
这个勒索软件试图从软件内嵌的资源中释放一个psexec.exe文件(通常会重命名为dllhost.dat)。然后它扫描局域网内admin$分享文件夹,通过网络拷贝自身到远程主机,并通过psexec.exe执行拷贝到远程主机的二进制文件。
为了凭据窃取,勒索软件尝试通过调用CredEnumerateW
方法获取所有其他用户存储在机器上的凭据。如果一个凭据的名称以“TERMSRV/”开头并且类型设置为1,这个凭据会被用来在整个网络内传播。

勒索软件也使用Windows Management Instrumentation Command-line (WMIC)来寻找共享文件夹(NetEnum/NetAdd)从而传播自己。如果当前主机和远程主机存在链接,它会使用当前活跃链接的token进行数据传输,如果没有连接,会通过用户名密码的方式建立连接。

0.4 通过永恒之蓝( EternalBlue)和永恒浪漫(EternalRomance)传播
这款勒索软件也通过对 CVE-2017-0144 (also known as EternalBlue)的漏洞攻击直接传播。另外,它还使用第二个漏洞攻击CVE-2017-0145。
我们已经发现该勒索软件通过构造SMBv1数据包 全部是 XOR 0xCC 加密)来触发漏洞,代码分析如下:


这两个漏洞是Shadow Brokers泄漏出来的,微软已经在4月14日发布了补丁。用户可以通过安装补丁 security update MS17-010或者禁用SMBV1 来抵御此种类型的攻击。有关这两个漏洞的更多信息可以参考我们的博客。
0.5 加密
该勒索软件的加密行为依赖于它获取的权限和在目标机器上运行的进程的权限。它对进程名称进行简单的XOR-based 哈希,然后通过哈希值进行行为决策。

.0x2E214B44-- 如果一个进程名的hash值是这个值的话,软件不会去感染MBR。
7.png.0x6403527E 或者 0x651B3005 -- 如果这两个hash值被发现,勒索软件不会进行任何网络活动(比如攻击SMBv1 漏洞)

如果没有异常情况,软件会向MBR写入启动数据,然后重启电脑。它建了一个定时任务,在至少十分钟后关闭电脑。实际时间是随机的 (GetTickCount())。例如:
schtasks /Create /SC once /TN “” /TR “<system folder>\shutdown.exe /r /f” /ST 14:23
如果写入MBR成功,它会显示如下虚假的操作系统信息,提醒你设备错误,正在进行检查:

然后会显示勒索信息:

![Uploading 11_674996.png . . .]
只有在勒索软件获取足够高的权限的时候,它才会尝试覆盖MBR。
恶意软件尝试加密所有除C:\Windows文件夹之外的文件:

它使用file mapping APIs 而不是常规的 ReadFile()/WriteFile() API来加密文件:

和其他勒索软件不同,它没有添加一个新的文件扩展名到被加密的文件,而是覆盖了原文件。
它为每台机器生成一个AES秘钥,使用内置的 800-bit RSA公钥对其进行加密。


唯一的用于加密的AES Key以加密的形式被添加到README.TXT文件中,写在 “Your personal installation key:”一节下面。
除了加密文件,这个勒索软件同时尝试重写MBR的第一个节——VBR。如果它以SeShutdownPrivilege 或者 SeDebugPrivilege 或者 SeTcbPrivilege权限运行,就会重写MBR,同时直接访问drive0 \\.\PhysicalDrive0。
MBR overwrite pseudo code:

Overwriting the first sector of VBR:

加密之后,它释放一个 README.TXT文件:

最后勒索软件会清理 System, Setup, Security, Application event logs,删除NTFS 卷信息。
0.6 使用Windows Defender进行防御
无需安装更新,使用Windows Defender的高级防御功能就能进行防御..
(此处略过,感兴趣的可以查看原文)
0.7 通用防御措施
及时更新你系统。
尽量下载使用应用商店内的应用。
安装 MS17-010补丁。
如果未安装补丁,请按文档 Microsoft Knowledge Base Article 2696547 和recommended previously禁用SMBv1服务。 在路由器添加对445端口的阻止规则。关闭139和445端口,禁用远程WMI服务和文件共享。
最后还是推荐使用Windows Defender监控网络,企业用户使用Device Guard进行防御。
---

关注玄魂工作室,更多教程,更多精彩
作者:玄魂
出处:http://www.cnblogs.com/xuanhun/
原文链接:http://www.cnblogs.com/xuanhun/
更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
关注我:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2011-06-29 WCF BasicHttpBinding 安全解析(4)windows验证(IIS宿主)