开发者社区> zting科技> 正文

【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性

简介:
+关注继续查看

原文链接:https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-worm-capabilities/?platform=hootsuite

未完全按原文翻译。

在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执行恶意命令的原因目前还未知。


Petya

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,这个凭据会被用来在整个网络内传播。


Petya

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


Petya

0.4 通过永恒之蓝( EternalBlue)和永恒浪漫(EternalRomance)传播

这款勒索软件也通过对 CVE-2017-0144 (also known as EternalBlue)的漏洞攻击直接传播。另外,它还使用第二个漏洞攻击CVE-2017-0145。

我们已经发现该勒索软件通过构造SMBv1数据包 全部是 XOR 0xCC 加密)来触发漏洞,代码分析如下:


Petya

Petya

这两个漏洞是Shadow Brokers泄漏出来的,微软已经在4月14日发布了补丁。用户可以通过安装补丁 security update MS17-010或者禁用SMBV1 来抵御此种类型的攻击。有关这两个漏洞的更多信息可以参考我们的博客

0.5 加密

该勒索软件的加密行为依赖于它获取的权限和在目标机器上运行的进程的权限。它对进程名称进行简单的XOR-based 哈希,然后通过哈希值进行行为决策。


6.png

.0x2E214B44-- 如果一个进程名的hash值是这个值的话,软件不会去感染MBR。


7.png

.0x6403527E 或者 0x651B3005 -- 如果这两个hash值被发现,勒索软件不会进行任何网络活动(比如攻击SMBv1 漏洞)


8.png

如果没有异常情况,软件会向MBR写入启动数据,然后重启电脑。它建了一个定时任务,在至少十分钟后关闭电脑。实际时间是随机的 (GetTickCount())。例如:

schtasks /Create /SC once /TN “” /TR “<system folder>\shutdown.exe /r /f” /ST 14:23

如果写入MBR成功,它会显示如下虚假的操作系统信息,提醒你设备错误,正在进行检查:


Petya

然后会显示勒索信息:


Petya
![Uploading 11_674996.png . . .]

只有在勒索软件获取足够高的权限的时候,它才会尝试覆盖MBR。

恶意软件尝试加密所有除C:\Windows文件夹之外的文件:


Petya

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


Petya

和其他勒索软件不同,它没有添加一个新的文件扩展名到被加密的文件,而是覆盖了原文件。

它为每台机器生成一个AES秘钥,使用内置的 800-bit RSA公钥对其进行加密。


Petya

Petya

唯一的用于加密的AES Key以加密的形式被添加到README.TXT文件中,写在 “Your personal installation key:”一节下面。

除了加密文件,这个勒索软件同时尝试重写MBR的第一个节——VBR。如果它以SeShutdownPrivilege 或者 SeDebugPrivilege 或者 SeTcbPrivilege权限运行,就会重写MBR,同时直接访问drive0 \\.\PhysicalDrive0。

MBR overwrite pseudo code:


Petya

Overwriting the first sector of VBR:


Petya

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


17.png

最后勒索软件会清理 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进行防御。

---


0.jpg

关注玄魂工作室,更多教程,更多精彩


本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/7092827.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
19255 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
28519 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22274 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15947 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20389 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14884 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23548 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载