专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
码农翻身  ·  11w*14薪,进DeepSeek了! ·  23 小时前  
程序员小灰  ·  蔚来汽车裁员约10%,20分钟完成裁员。。。 ·  3 天前  
码农翻身  ·  在内卷的修罗场,国产技术该站出来了 ·  昨天  
OSC开源社区  ·  华为MateBook D16 ... ·  2 天前  
程序员的那些事  ·  年薪154w!又一新兴岗位崛起!这才是程序员 ... ·  2 天前  
51好读  ›  专栏  ›  程序员大咖

Petya勒索蠕虫完全分析报告

程序员大咖  · 公众号  · 程序员  · 2017-07-05 13:15

正文

来自: 360追日团队 (微信号:zhuiri360)


前言


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枚举系统进程,判断是否有指定的安全软件,并设置标记。

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

当存在NS.exe(诺顿)或ccSvcHst.exe(诺顿)进程时,不执行漏洞感染流程。

当存在avp.exe(卡巴斯基)进程时,不执行MBR感染流程。


2、MBR修改

获取分区类型,当为MBR格式时执行修改MBR流程。

随后,Petya将修改机器的MBR,具体流程如下:

1)通过微软的CryptoAPI生成长度为 60 字节的随机数

对生成的随机数对58进行取模,取模后的值作为下述数组的索引

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz,生成勒索界面显示的序列号

2)将病毒内置的MBR写入,长度为0x13个扇区

3)将随机生成的key,IV,硬编码的比特币支付地址以及用户序列号写入磁盘第0x20个扇区


3、设置重启计划任务

创建计划任务,设定当前时间1小时后重启计算机。

重启之后将执行病毒的MBR,加密扇区。


4、遍历IP

首先,Petya检查被感染的机器是否为Server或者域控服务器

当检测到主机为服务器或者域控时,会枚举该主机DHCP已分配的IP信息,保存在列表中用于网络攻击。


5、释放并运行资源

进程首先从资源中解压缩ID为1的资源,在系统的%TEMP%目录下生成一个临时文件。

随后程序启动线程尝试连接特定的命名管道并读取数据,随后将该临时文件作为进程启动,并且等待1分钟。

对启动的临时文件进行分析,其代码功能与mimikatz,一款Windows下抓取密码的工具类似,Petya通过命名管道从该工具进程中获取本机账户密码。

之后程序加载资源序号3并且解压缩,首先获取系统文件夹目录,若失败则获取%APPDATA%目录,并将解压后的资源命名为dllhost.dat写入到该目录下。

dllhost.dat的本质为PsExec.exe,是一款属于sysinternals套件的远程命令执行工具,带有合法的签名。


6、枚举网络资源

接下来,病毒遍历所有连接过的网络资源,从中筛选类型为TERMSRV的凭据保存。

接下来尝试使用保存的凭据连接网络资源

连接成功则执行下列命令:







请到「今天看啥」查看全文