来自:
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的凭据保存。
接下来尝试使用保存的凭据连接网络资源
连接成功则执行下列命令: