本文作者:360追日团队,转载自:http://blogs.360.cn/blog/petya/
本文排版:小云云
第一章 前言
2017年6月27日晚,乌克兰、俄罗斯、印度、西班牙、法国、英国以及欧洲多国遭受大规模Petya勒索病毒袭击,该病毒远程锁定设备,然后索要赎金。其中,乌克兰地区受灾最为严重,政府、银行、电力系统、通讯系统、企业以及机场都不同程度的受到了影响,包括首都基辅的鲍里斯波尔国际机场(Boryspil International Airport)、乌克兰国家储蓄银行(Oschadbank)、船舶公司(AP Moller-Maersk)、俄罗斯石油公司(Rosneft)和乌克兰一些商业银行以及部分私人公司、零售企业和政府系统都遭到了攻击。
此次黑客使用的是Petya勒索病毒的变种,,使用的传播攻击形式和WannaCry类似,但该病毒除了使用了永恒之蓝(MS17-010)漏洞,还罕见的使用了黑客的横向渗透攻击技术。在勒索技术方面与WannaCry等勒索软件不同之处在于,Petya木马主要通过加密硬盘驱动器主文件表(MFT),使主引导记录(MBR)不可操作,通过占用物理磁盘上的文件名、大小和位置的信息来限制对完整系统的访问,从而让电脑无法启动,故而其影响更加严重。如果想要恢复,需要支付价值相当于300美元的比特币。
由于这次攻击有很强的定向性,所以目前欧洲被感染的受害者较多。目前国内感染量较少,但是考虑到其横向攻击传播能力,未来存在较高风险在国内传播。
第二章 Petya老样本简介
2016年4月,敲诈勒索类木马Petya被安全厂商曝光,被称作是第一个将敲诈和修改MBR合二为一的恶意木马。木马Petya的主要特点是会先修改系统MBR引导扇区,强制重启后执行MBR引导扇区中的恶意代码,加密受害者硬盘数据后显示敲诈信息,并通过Tor匿名网络索取比特币。
Petya与其他流行的勒索软件的不同点在于,Petya不是逐个加密文件,而是通过攻击磁盘上的低级结构来拒绝用户访问完整的系统。这个敲诈勒索木马的作者不仅创建了自己的引导加载程序,还创建了一个32个扇区长的小内核。
Petya的木马释放器会将恶意代码写入磁盘的开头。被感染的系统的主引导记录(MBR)将被加载一个小型恶意内核的自定义引导加载程序覆盖,然后该内核会进一步加密。 Petya的敲诈信息显示其加密了整个磁盘,但这只是木马作者放出的烟雾弹,事实上,Petya只是加密了主文件表(MFT),使文件系统不可读,来拒绝用户访问完整的系统。
图 1 Petya的敲诈信息
第三章 Petya新样本详细介绍
此次Petya病毒的新样本类型为DLL,有一个导出序号为1的函数。当这个函数被调用时,首先尝试提升当前进程的权限并设置标记,查找是否有指定的安全软件,后面会根据是否存在指定的安全软件跳过相应的流程。绕过安全软件的行为监控。
接下来修改磁盘的MBR,并将生成的Key,IV,比特币支付地址以及用户序列号写入磁盘的固定扇区。然后创建计划任务于1小时后重启。遍历局域网可以连通的ip列表,用于后续的局域网攻击。释放并执行抓取密码的进程,释放psexec进程用于后续执行远程命令。对系统的网络资源列表进行过滤,筛选本地保存的凭据,使用保存的凭据连接,成功后执行远程命令,进行局域网感染。
下一步生成随机ip,连接445端口进行永恒之蓝漏洞攻击。然后遍历磁盘,对指定扩展名的文件进行加密。执行完所有流程后,清除日志并强行重启。
图 2 总体流程图
第四章 Petya勒索蠕虫感染传播趋势分析
自6月27日在欧洲爆发的起,Petya勒索病毒在短时间内袭击了多国。
根据360互联网安全中心的监测,对每一个小时的远程攻击进程的主防拦截进行了统计。从6月28号0点至6月28日晚上7点整,平均每小时攻击峰值在5000次以内。上午10点攻击拦截达到最高峰,后缓慢波动,在14点达到一个小高峰,然后攻击频率开始缓慢下降。由此可见,Petya的攻击趋势并不呈现几何级增长的趋势,而是缓慢下降的,并不具备进一步泛滥的趋势。
图 3 攻击频率
除乌克兰、俄罗斯、印度、西班牙、法国、英国以及欧洲多国遭受大规模的Petya攻击外,我国也遭受了同样的攻击。针对我国的攻击,主要集中在北京、上海、广州、深圳、香港等大城市,根据360互联网安全中心的监测,在全中国八十多个城市拦截到了攻击。
图 4 Petya国内感染情况
第五章 Petya横向移动及传播技术分析
一、提升权限,设置执行标记
首先,Petya病毒会尝试提升当前进程的3种权限:SeShutdownPrivilege、SeDebugPrivilege和SeTcbPrivilege,根据是否成功设置标记,后面执行相应的流程时会判断此标记,以防没有权限时系统报错。
然后,通过CreateToolhelp32Snapshot枚举系统进程,判断是否有指定的安全软件,并设置标记。
枚举过程中,通过将进程名称进行异或计算得出一个值,将该值与预设的值进行比较,此处病毒是在寻找特定名称的进程,通过对算法进行逆向还原,我们找出预设值对应的进程名称:
进程名称 | 杀毒软件 |
0x2E214B44: avp.exe | 卡巴斯基 |
0x651B3005: NS.exe | 诺顿 |
0x6403527e: ccSvcHst.exe | 诺顿 |
当存在NS.exe(诺顿)或ccSvcHst.exe(诺顿)进程时,不执行漏洞感染流程。
当存在avp.exe(卡巴斯基)进程时,不执行MBR感染流程。
二、MBR修改
获取分区类型,当为MBR格式时执行修改MBR流程。
随后,Petya将修改机器的MBR,具体流程如下:
- 通过微软的CryptoAPI生成长度为 60 字节的随机数
- 对生成的随机数对58进行取模,取模后的值作为下述数组的索引
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz,生成勒索界面显示的序列号
- 将病毒内置的MBR写入,长度为0x13个扇区
- 将随机生成的key,IV,硬编码的比特币支付地址以及用户序列号写入磁盘第0x20个扇区
三、设置重启计划任务
创建计划任务,设定当前时间1小时后重启计算机。
重启之后将执行病毒的MBR,加密扇区。
四、遍历IP
首先,Petya检查被感染的机器是否为Sever或者域控服务器
当检测到主机为服务器或者域控时,会枚举该主机DHCP已分配的IP信息,保存在列表中用于网络攻击。
五、释放并运行资源
进程首先从资源中解压缩ID为1的资源,在系统的%TEMP%目录下生成一个临时文件。
随后程序启动线程尝试连接特定的命名管道并读取数据,随后将该临时文件作为进程启动,并且等待1分钟。
对启动的临时文件进行分析,其代码功能与mimikatz,一款Windows下抓取密码的工具类似,Petya通过命名管道从该工具进程中获取本机账户密码。
之后程序加载资源序号3并且解压缩,首先获取系统文件夹目录,若失败则获取%APPDATA%目录,并将解压后的资源命名为dllhost.dat写入到该目录下。
dllhost.dat的本质为PsExec.exe,是一款属于sysinternals套件的远程命令执行工具,带有合法的签名。
六、枚举网络资源
接下来,病毒遍历所有连接过的网络资源,从中筛选类型为TERMSRV的凭据保存。
接下来尝试使用保存的凭据连接网络资源
连接成功则执行下列命令:
该命令将在目标主机上执行rundll32。exe调用自身dll的第1个导出函数,完成局域网感染功能。
七、使用永恒之蓝漏洞攻击
接下来,启动线程进行永恒之蓝漏洞攻击。
病毒使用异或的方式加密了部分数据包,在内存中重构后发送数据包,这样就避免了杀毒软件的静态查杀。
八、文件加密
Petya采用RSA2048 + AES128的方式对文件进行加密,程序中硬编码RSA公钥文件,每一个盘符会生成一个AES128的会话密钥,该盘符所有文件均对该AES Key进行加密。
九、清除日志并重启
执行完加密文件和网络传播流程后,病毒将清除Windows系统日志并强制重启。重启后将执行病毒写入的MBR并加密磁盘。加密完成后显示勒索信息并等待用户输入key。
第六章 Petya勒索加密技术分析
一、篡改MBR
当系统重启后,执行病毒的MBR,伪装成CHKDSK进行加密磁盘,加密完成后弹出敲诈信息对用户进行敲诈。
图 5 Petya敲诈信息
下面,我们来对修改后的MBR进行分析:
- 读取第20个扇区判断是否已经加密,执行相应流程
- 加密流程,读取病毒配置信息, 病毒加密用的key存在第0x20个扇区
- 设置已经加密的标志位,并把配置信息中的key清0, 写回磁盘第20扇区
- 使用用户输入的key尝试解密
二、加密文件
勒索木马Petya采用RSA2048 + AES128的方式对文件进行加密,程序中硬编码RSA公钥文件,针对每一个盘符都会生成一个AES128的会话密钥,该盘符所有文件均用该AES Key进行加密。
根据后缀名对相关文件进行分类,涉及的文件格式如下表:
Petya的加密流程如下图:
图 6 加密流程
1.启动加密文件线程:
2.递归枚举目录并加密
3.写入Readme .txt文件
Readme .txt文件中包含比特币支付地址。
第七章 Petya勒索杀毒软件攻防分析
在提权阶段,Petya会通过CreateToolhelp32Snapshot枚举系统进程,判断是否有指定的安全软件,并设置标记。枚举过程中,通过将进程名称进行异或计算得出一个值,并将该值与预设的值进行比较,可见此处Petya是在寻找特定名称的进程。
通过分析,我们确认Petya主要针对杀毒软件诺顿和卡巴斯基进行了反检测处理。
- 当存在exe(诺顿)或ccSvcHst.exe(诺顿)进程时,不执行漏洞感染流程。
- 当存在exe(卡巴斯基)进程时,不执行MBR感染流程。
第八章 缓解措施建议
针对Petya勒索软件,360追日团队提醒广大用户警惕防范,我们建议用户采取以下措施以保障系统安全:
1.保证系统的补丁已升级到最新,修复永恒之蓝(ms17-010)漏洞。
2.临时关闭系统的WMI服务和删除admin$共享,阻断蠕虫的横向传播方式。具体操作为,右键exe”以管理员身份运行”,输入如下命令:
net stop winmgmt
net share admin$ /delete
3.如若不幸中招,也可以采取一些措施来减小损失。
由于在感染Petya的过程中,病毒会先重启电脑加载恶意的磁盘主引导记录(MBR)来加密文件,这中间会启用一个伪造的加载界面。中招者如果能感知到重启异常,在引导界面启动系统前关机或拔掉电源,随后可以通过设置U盘或光盘第一顺序启动PE系统,使用PE系统修复MBR或者直接转移硬盘里的数据,可以在一定程度上避免文件的损失。
第九章 总结
Petya勒索病毒早已被安全厂商披露,其早期版本只对MBR和磁盘分配表进行加密,并提示虚假的勒索信息,声称其已对受害者系统进行了全盘加密,进而索要赎金。而此次Petya新变种卷土重来,肆虐欧洲大陆在于其利用了已知的Office漏洞、永恒之蓝SMB漏洞、局域网感染等网络自我复制技术,使得病毒可以在短时间内呈暴发态势。另一方面,Petya木马主要通过加密硬盘驱动器主文件表(MFT),使主引导记录(MBR)不可操作,通过占用物理磁盘上的文件名、大小和位置的信息来限制对完整系统的访问,从而让电脑无法启动,相较普通勒索软件对系统更具破坏性。
由于这次攻击有很强的定向性,所以目前欧洲被感染的受害者较多,国内感染量较少。这得益于自5月份WannaCry勒索病毒爆发后,中国用户已经安装了相关漏洞的补丁,故而并没有为Petya勒索病毒的泛滥传播提供可乘之机。但是考虑到其横向攻击传播能力,未来存在较高风险在国内传播。360追日团队在此提醒广大用户及时更新系统补丁,安装360安全产品,增强终端防护能力。目前360安全产品可全面查杀Petya勒索病毒。
由于在感染Petya的过程中,病毒会先重启电脑加载恶意的磁盘主引导记录(MBR)来加密文件,这中间会启用一个伪造的加载界面。中招者如果能感知到重启异常,在引导界面启动系统前关机或拔掉电源,随后可以通过设置U盘或光盘第一顺序启动PE系统,使用PE系统修复MBR或者直接转移硬盘里的数据,可以在一定程度上避免文件的损失。
本文由 小云云 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jan 7, 2019 at 04:03 pm