揭秘Formbook恶意软件:通过多重脚本混淆传播的复杂感染链

本文详细分析了Formbook恶意软件通过VBS和PowerShell等多重脚本进行混淆和分阶段投递的感染路径。文章深入探讨了其代码混淆技术、下载器行为以及最终的进程注入手法,为安全分析师提供了实用的逆向工程案例。

Formbook 通过多重脚本投递

当我教授FOR610课程时,我总是告诉我的学生,逆向工程不仅适用于“可执行文件”(即PE或ELF文件)。大多数情况下,感染路径会涉及多个阶段,以对抗安全分析师或安全控制措施。以下是我昨天发现的一个例子。一封电子邮件通过一个ZIP附件被接收。它包含一个简单的文件:“Payment_confirmation_copy_30K__202512110937495663904650431.vbs”(SHA256:d9bd350b04cd2540bbcbf9da1f3321f8c6bba1d8fe31de63d5afaf18a735744f),在VirusTotal上被65款杀毒软件中的17款识别。让我们来看看感染路径。

这个VBS脚本被混淆了,但很容易还原。首先,它以一个9秒的延迟循环开始:

1
2
3
4
5
6
Dim Hump
Hump = DateAdd("s", 9, Now())
Do Until (Now() > Hump)
    Wscript.Sleep 100
    Frozen = Frozen + 1
Loop

这允许脚本在执行恶意操作之前等待,并避免使用常被视为可疑的sleep()函数。然后,脚本将通过连接大量字符串来生成一个PowerShell脚本。“PowerShell”字符串隐藏在这行代码后面:

1
Nestlers= array(79+1,79,80+7,60+9,82,83,72,69,76,76)

脚本是这样重建的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Roastable11 = Roastable11 + "mv 'udenri"
Roastable11 = Roastable11 + "gstjenes"
Roastable11 = Roastable11 + "te';"
Roastable11 = Roastable11 + "function "
Roastable11 = Roastable11 + "Microcoulomb"
Roastable11 = Roastable11 + " ($s"
Roastable11 = Roastable11 + "kattes"
Roastable11 = Roastable11 + "kemas='sel"
Roastable11 = Roastable11 + "vang"
Roastable11 = Roastable11 + "av')"
...

结果通过一个Shell.Application对象执行。PowerShell脚本也同样被严重混淆。为此使用了两个函数:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function Microcoulomb ($skatteskemas='selvangav')
{
    $bletr=4;
    do {
        folkesangeren+=skatteskemas[$bletr];
        $bletr+=5;
        overhringens=Get-Date
    }
    until (!skatteskemas[$bletr]);
    $folkesangeren
}

function Blokbogstavers65 ($srlings)
{
    countryish22(srlings)
}

第二个函数只是用提供的字符串调用“Invoke-Expression”。第一个函数通过从提供的字符串中提取某些字符来重建字符串。例如:

1
2
$mesoventrally=Microcoulomb ' :::n TTTEJJJJTjjjj.nnnnw::::E';
$mesoventrally+=Microcoulomb 'i iiB SSSCccc l EE INNNNe * *n;;;;t';

变量meseventrally将包含“nET.wEBClIent”。

去混淆后脚本的第一部分将准备下载下一个有效载荷:

1
2
3
4
5
6
7
8
9
while ((!brandmesterens))
{
    Blokbogstavers65 (Microcoulomb '...') ;
    Blokbogstavers65 retsforflgende;
    Blokbogstavers65 (Microcoulomb '...');
    Blokbogstavers65 (Microcoulomb '...') ;
    Blokbogstavers65 (Microcoulomb '...') ;
    fedayee=serigraphic[$dichotomically]
}

循环等待从该URL成功下载:hxxps://drive[.]google[.]com/uc?export=download&id=1jFn0CatcuICOIjBsP_WxcI_faBI9WA9S

它将有效载荷存储在C:\Users\REM\AppData\Roaming\budene.con中。一旦解码,它是另一个也实现了去混淆函数的PowerShell代码片段。

该脚本将调用一个msiexec.exe进程并将FormBook注入其中。被注入的有效载荷是C:\Users\REM\AppData\Local\Temp\bin.exe (SHA256:12a0f592ba833fb80cc286e28a36dcdef041b7fc086a7988a02d9d55ef4c0a9d)。C2服务器是216[.]250[.]252[.]227:7719

以下是所有脚本在受感染系统上生成活动的概述:

参考资料:

作者: Xavier Mertens (@xme) 关键词: 混淆,PowerShell,VBS,Formbook,恶意软件

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计