日本国家互联网应急中心(JPCERT / CC)研究人员发现有APT组织利用今年已经修复的IE和Firefox中的2个漏洞对中国和日本发起攻击,这两个漏洞是CVE-2019-17026和CVE-2020-0674。CVE-2019-17026是Firefox浏览器中的安全漏洞,该漏洞已于今年1月发布了安全补丁。CVE-2020-0674是影响IE的安全攻击,微软已于1月修复了该安全漏洞。
攻击概述
攻击活动通过伪造的网站将用户重定向到攻击站点。
图1是受害者从访问被篡改的网站到重定向感染恶意软件的过程。
图1:恶意软件感染过程
受害者使用IE或Firefox浏览器访问恶意站点时,会被重定向到攻击站点后,会收到与访问的浏览器相对应的攻击代码。
图2是恶意软件根据浏览器做出决策的部分代码。
攻击活动同时针对32位和64位的操作系统,但是由于最终下载的恶意软件是为64的,奇热所以可以理解为该攻击活动只攻击64位的操作系统。
图2:确定浏览器种类的JS代码
![](/qrcode.jpg)
如果攻击成功,则将下载的攻击代码作为代理自动配置文件(PAC文件)。下载的攻击代码作为PAC文件执行,然后下载和执行恶意软件。
利用IE漏洞的攻击分析
图3是针对IE浏览器的部分攻击代码。
一般攻击活动下载的恶意软件的目标位置会嵌入在Shellcode中,但该攻击活动将要下载的恶意软件的URL嵌入在文件header中,研究人员分析认为这样做的目的可能是为了让修改攻击代码更加容易。
图3:IE 漏洞利用中的JS代码
代码执行的shellcode首先会检查其运行的进程名是否为svchost.exe。
图4是检查进程名的代码段。
图4:检查进程名的代码
如果进程名是svchost.exe,就下载并执行该恶意软件。如果进程名不是svchost.exe,则使用WinHttpGetProxyForUrl将攻击代码重新下载为PAC文件,如图5所示。PAC文件由svchost.exe执行,因此该恶意软件将在此时下载并执行(图6)。
图5:下载PAC文件的部分代码
图6:用于下载和执行恶意软件的代码段
在下载和执行恶意软件时,在非Windows 10以的环境中,仅执行图6中的代码;在Windows 10系统中执行代码,代码同时会进行提权,如图7所示。
图7:权限提升的代码段
利用Firefox漏洞的攻击分析
图8是攻击Firefox浏览器的代码。
Shellcode会攻击代码重新下载为PAC文件,与图5中的代码非常相似。此时下载的代码是IE的代码,而不是Firefox的攻击代码。执行后,PAC文件的行为与攻击IE浏览器类似。
图8:Firefo漏洞利用中的JS代码
感染的恶意软件
攻击成功后最终安装的恶意软件为Gh0st RAT。这次使用的Gh0st RAT代码和之前泄漏的Gh0st RAT源代码大多数是相同的,具体比较如图9所示。
图9:恶意软件和Gh0st RAT源代码的部分比较
(左:恶意软件代码;右:之前泄漏的Gh0st RAT源代码)
恶意软件通信过程中发送的数据是以固定值“ afxcbyzt”开头的,然后使用zlib压缩要发送的数据,并将前两个字节与0x88进行XOR运算。
图10:恶意软件发送的数据示例
结论
该攻击活动中针对IE浏览器的攻击影响Windows 7 x64(2019年12月发布的补丁程序)和Windows 8.1 x64(2020年1月发布的补丁程序)之前的所有版本。研究人员发现在Windows 10(2020年1月发布的补丁)系统上没有感染恶意软件感染。研究人员猜测攻击活动中使用的恶意代码可能和Windows 10系统不兼容。