天融信.阿尔法实验室 李喆 李闪 王宇晟 崔伟鹏 李燕春
一、petya事件描述
1.1 漏洞背景
在2016年的三月到4月,petya恶意勒索软件开始传播,相对于其他勒索软件进行一个个文件加密不同的是,它采用了修改Master Boot Record(MBR) 启动引导阻止用户进入系统,并引导进了一个很小的恶意内核系统,然后再进行加密。
在2017年 6月27日晚上,根据国外报道消息,新的变种petya出现了,它在和旧版本的区别是采用了office word文档漏洞(CVE-2017-0199),通过发送邮件的方式进行传播,用户打开恶意邮件触发漏洞后会从 “http ://french-cooking.com/myguy.exe”下载恶意程序执行。然后会通过NSA泄露的0day工具永恒之蓝利用445端口smb协议(CVE-2017-17010)在内网,通过法国神奇minikatz抓密码等工具进行传播扩散。
1.2 利用的漏洞传播介绍
1.2.1 OFFICE OLE2LINK(CVE-2017-0199)
Petya利用已知的office 远程命令执行漏洞,在不需要交互的情况下,打开word文档就能通过hta脚本执行任意代码,petya结合了这个漏洞进行了传播,相比之前的word宏病毒漏洞,这个漏洞不需要交互更加的隐蔽,传播效果更佳完善。
1.2.2 永恒之蓝 CVE-2017-17010
NSA工具泄露事件已经炒的沸沸扬扬,从去年的防火墙漏洞到今年的windows系统服务
(SMB,RDP,IIS)等远程命令执行工具,其中就有永恒之蓝工具程序,Petya通过利用永恒之蓝漏洞扫描开发的445文件共享端口进行内网的横向扩散。
1.3 样本md5列表
介绍 | Md5 | 文件名 |
Petya主模块 | 71b6a493388e7d0b40c83ce903bc6b04 | perfc.dat |
1.4 其他情况介绍
目前即使支付赎金也无法拿回加密文件,因为攻击者联系邮箱已经关闭。
目前受到攻击国家主要包括乌克兰、俄罗斯、波兰、意大利、德国等。我国国内尚未出现大范围感染情况。
目前网上流传域名开关”kill switch”,之前wannacry也存在过,可以参考之前的文章,这个开关的作用是阻止恶意软件传播,但是关于这次的开关,虽然恶意Petya确实有验证产生一个特殊文件到C:\Windows下,但是这并不能保证其他样本的验证文件名字也是一样的,而且也无法肯定这是一个开关。
二、petya样本功能分析
2.1 petya样本运行流程
对样本文见中的一个文件进行本地测试复现。
测试环境为win7 64位Vmware虚拟机。
样本文件为027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745
文件MD5值为:
样本文件本身是一个动态链接库DLL文件,需要用其他程序调用,于是写了一个简单程序调用DLL文件。以管理员身份运行程序调用DLL
调用之后看到样本文件已经自删除
重启虚拟机提示CHKDSK在修复扇区,过程比较漫长。
经过几分钟等待之后,勒索界面出现了。
用另外一台机器抓取这台机器的流量,可以看到它在利用永恒之蓝探测我另外一台机器的445、139等端口
2.2 样本深入分析
样本为DLL,导出函数perfc_1,执行时将代码复制到堆上执行,卸载原模块,之后执行修改MDR、设置自动关机、加密磁盘文件、通过SMB漏洞传播等操作。
进程行为:
cmd.exe
shutdown.exe
rundll32.exe
schtasks.exe
wevtutil.exe
fsutil.exe
dllhost.dat
字符串:
wevtutil cl Setup & wevtutil cl System & wevtutil cl Security & wevtutil cl Application & fsutil usn deletejournal /D %c:
schtasks %ws/Create /SC once /TN “” /TR “%ws” /ST %02d:%02d
shutdown.exe /r /f
/RU “SYSTEM”
%s /node:”%ws” /user:”%ws” /password:”%ws”
process call create “C:\Windows\System32\rundll32.exe \”C:\W
indows\%s\” #1
\\%s\admin$
\\%ws\admin$\%ws
替换MBR相关部分代码截图:
1) 样本主体为动态链接库, 该库导出了一个编号为1的函数. 样本由该导出函数开始执行.该函数首先尝试修改本进程相关权限, 包括计算机关闭等..
2) 该样本会使用Windows 文件操作篡改本地磁盘的MBR信息, 向物理磁盘写入开机显示勒索信息的代码.
从物理磁盘读取MBR信息的代码
加密原始MBR信息
保存一个疑似比特币钱包地址的东西到内存变量中
接着从样本中读取恶意MBR数据
以下是从内存中提取出来的mbr代码
写入恶意MBR到磁盘中
利用计划任务固定时间间隔以后强制重启计算机
构造计划任务参数列表
启动cmd程序, 执行计划任务添加命令
内网主机搜寻过程
利用微软DHCP接口枚举内网中的主机, 同时尝试使用SOCKET连接对应IP地址确认是否可以联通
1) 枚举内网主机
2) 使用socket测试连接探测主机是否存活
从样本资源中提取mimikatz程序并执行.
1)从样本的资源目录中锁定mimikatz资源, 保存到磁盘中
2)创建命名管道
3)创建mimikatz进程同时使用管道重定向子进程的输出设备, 用以控制mimikatz进程
释放Psexec
释放资源到windows目录,文件名为dllhost.dat,为Sysinternal中的的PsExec.exe
内网主机感染
用CreadEnumerate API枚举内网主机,并过滤TERMSRV
使用永恒之蓝传播
1 创建线程,通过SMB漏洞进行传播
2 从全局变量中获取传染目标
3 尝试2次攻击发包
加密勒索本地文件
1 遍历磁盘,对于每个固定磁盘创建一个线程,加密其中的文件:
2 硬编码的AES-128加密key,以及对每个固定磁盘创建线程
3 递归查找文件,比较后缀名。同时跳过C:\Windows目录
4 加密文件内容
5 写入通知文本:
6 执行wevtutil命令清除事件日志:
三、修复防护建议
3.1影响版本
Windows xp,window 7 ,windows 10,windows 2003,windows 2008
3.2补丁地址
永恒之蓝补丁:
http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598
https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Office Word远程代码执行漏洞补丁:
https://technet.microsoft.com/zh-cn/office/mt465751.aspx
3.3手工修复
3.3.1 及时更新操作系统补丁,安装MS17-010补丁。
3.3.2关闭445等端口(其他关联端口如: 135、137、139)的外部网络访问权限,在服务器上关闭不必要的上述服务端口
3.3.3加强对445等端口(其他关联端口如: 135、137、139)的内部网络区域访问审计,及时发现非授权行为或潜在的攻击行为
3.3.4定期在不同的存储介质上备份信息系统业务和个人数据
3.3.5 windows停止更新的系统补丁,xp补丁已经提供,请尽快下载打好补丁https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
3.3.6开启防火墙
3.4其它建议
3.4.1加强管理员工安全意识培训,外来邮件加白名单。
3.4.2加强密码策略,不使用弱口令空密码
3.4.3 禁用WMI服务
关闭(WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具)执行命令