欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Petya勒索蠕虫完全分析报告

来源:本站整理 作者:佚名 时间:2017-06-29 TAG: 我要投稿


前言
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新样本详细介绍
病毒样本类型为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互联网安全中心的监测,在全中国八十多个城市拦截到了攻击。
Petya横向移动及传播技术分析
1、提升权限,设置执行标记
首先,Petya病毒会尝试提升当前进程的3种权限:SeShutdownPrivilege、SeDebugPrivilege和SeTcbPrivilege,根据是否成功设置标记,后面执行相应的流程时会判断此标记,以防没有权限时系统报错。

然后,通过CreateToolhelp32Snapshot枚举系统进程,判断是否有指定的安全软件,并设置标记。

枚举过程中,通过将进程名称进行异或计算得出一个值,将该值与预设的值进行比较,此处病毒是在寻找特定名称的进程,通过对算法进行逆向还原,我们找出预设值对应的进程名称:

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载