【年度报告】卷土重来之启明星辰集团VenusEye金睛团队2016年度监测数据分析(下篇)

2017年1月13日 312点热度 0人点赞 0条评论
(接上篇)

八.  关于 VenusEye 金睛安全研究团队

VenusEye 金睛安全研究团队是启明星辰集团检测产品本部专业安全分析的组织,主要职责是对现有产品搜集上报的安全事件、样本数据进行挖掘、分析,并向用户提供专业分析报告。该组织会依据数据产生的威胁情报,对其中采用的各种攻防技术做深入的跟踪和分析,并且给出专业的分析结果、提出专业建议,为用户决策提供帮助。

 

VenusEye 金睛安全研究团队成立至今,先后发布了《小心,“宏”成为新攻击手法的主力军》、《H-worm 远控木马分析》、《海德薇 Hedwig 组织分析报告》、《Locmatchky密锁攻击恶意样本分析报告》、《特斯拉恶意样本分析新解》、《无需担心潜藏了 18 年的微软浏览器远程代码执行漏洞》、《SandWorm(以下简称:沙虫)攻击分析报告》等数十份专业安全分析报告,欢迎下载查阅。

图片

九 .  分析报告大事记

1. 2016 年 12 月 07 日,某企业客户 APT 检测产品,截获 1 个带有绕过 UAC 提权漏洞的“宏”恶意的攻击行为。

 

2. 2016 年 12 月 01 日,某电力客户、某银行 APT 检测产品,截获 3 个 Neutrino 僵尸木马家族变种,1 个带有“宏”恶意的攻击行为。

 

3. 2016 年 11 月 29 日-11 月 30 日,某电力客户截获 4 个带有恶意攻击的行为。

 

4. 2016 年 11 月 21 日,APT 检测产品截获到一个高危宏病毒样本。通过执行 powershell 指令从恶意网站下载窃密木马并执行。

 

5. 2016 年 11 月 18 日,APT 检测产品截获到具有获取用户隐私数据并发送、远程控制、诱骗激活设备的能力的木马,还可以躲过大多数国内手机端防病毒软件的查杀,全球首发。

 

6. 2016 年 11 月 16 日,某西南银行的 APT 检测产品,截获 8 个带有“勒索”恶意攻击的行为。

 

7. 2016 年 11 月 16 日,某国家级部委的 APT 检测产品,截获 1 个带有漏洞利用的攻击行为, 1 个“宏”攻击的行为。

 

8. 2016 年 11 月 11 日,某银行的 APT 检测产品截获 1 个带有恶意攻击的行为。经确认,该行为是宏恶意攻击行为。

 

9. 2016 年 11 月 10 日,某银行的 APT 检测产品,新截获 1 个带有“宏”攻击的行为。

 

10. 2016 年 11 月 10 日,某大型企业的 APT 检测产品,新截获 4 个带有“勒索”恶意攻击的行为。

 

11. 2016 年 11 月 10 日,某银行的 APT 检测产品,新截获 14 个带有“勒索”恶意攻击的行为。

 

12. 2016 年 11 月 08 日,再次全球首发了《“宏”攻击防不胜防,江湖再现新变种》报告。

 

13. 2016 年 11 月 4 日,全球首发了《小心,“宏”成为新攻击手法的主力军》报告,率先发现一类“宏”攻击恶意样本。

 

14. 2016 年 9 月 28 日,某银行的 APT 检测产品,新截获 5 个带有“勒索”恶意攻击的行为,3 个以 rtf 格式包裹恶意攻击的行为。

 

15. 2016 年 9 月 13 日,某银行的 APT 检测产品,新截获 2 个带有“勒索”恶意攻击的行为。

 

16. 2016 年 8 月 31 日,某银行的 APT 检测产品,新截获 10 个危害“勒索”恶意攻击行为。

 

17. 2016 年 8 月 3 日,发布《H-Worm 远控木马恶意样本分析报告》。

 

18. 2016 年 6 月 6 日,某省委信息中心的 APT 检测产品,截获 1 个带有漏洞利用的恶意攻击的行为。

 

19. 2016 年 6 月 2 日,某电网信息中心的 APT 检测产品,截获 1 个带有漏洞利用的恶意攻击的行为。

 

20. 2016 年 5 月 29 日,某电力公司应对 APT 攻击的专项报告。

十.  附录

附录 1:加载器详细技术分析 

10.1.1 VB Loader

 

 在所有的 Loader 中以 VB 编写的 Loader 最常见。其包含基本的反虚拟机功能,并最终将恶意代码注入到傀儡进程中。

 

(1)调用 EnumWindows 或者 EnumChildWindows 来统计窗口个数。若发现窗口个数少于 10个,即进入死循环中,不会执行恶意代码。

图片

(2)检测 PEB!NtGlobalFlags 和 PEB!IsDebugged,并利用 CPUID 指令检测虚拟机。

图片

(3)检测时间差,在延迟 Sleep 函数的前后分别获取 GetTickCount,并计算比较差值。

图片

(4)利用 SetErrorMode 对抗仿真系统如 Bochs、Norman Sandbox。SetErrorMode 函数的返回值是前一次调用时所传入的参数。有些仿真如 Bochs、Norman Sandbox 对 SetErrorMode 的实现 不正确使得样本可以利用此特性检测是否在虚拟机中运行。

图片

(5)检测当前光标位置,若发现位置一直未变化,将会一直检测下去。

图片

(6)检测显示器的长宽,若分别小于 0x320 和 0x258,也认为不正常。

图片

(7)待所有反调试反虚拟机代码都通过后,即开始解密 PE,使用的解密算法是简单的单字节异或。解密完成,将代码注入到新启动的傀儡进程并执行。

图片


10.1.2 C# Loader 

(1)检测

Fiddler,WireShark,VMWare,VirtualBox

图片

(2)检测AubiSandbox,CWSandbox,NormanSandbox,Sandboxie 等沙箱

图片

图片

(3)结束 taskmgr,cmd,regedit,msconfig,rstrui 进程

图片

(4)解密核心代码,并根据不同的参数,注入不同的傀儡进程

图片

10.1.3 Script Loader 

有一类恶意样本由脚本释放并在内存中解密执行,脚本充当了 Loader 的角色。目前主要发 现由 VBS 脚本或 Autoit 脚本编写。脚本添加了大量混淆代码,有基本的反沙箱,反虚拟机功能, 并且已开始有利用 shellcode 执行注入功能的趋势。 

 1.  vbs Loader

 (1)  vbs loader 被加入大量被注释的垃圾数据,主要为了躲避杀软的查杀,以及隐藏实际代码。

图片

(2)  真正起作用的脚本包含被加密数据和解密函数。

图片

(3)  解密后为一段新的脚本:

图片

(4) 解密 DCOM_DATA 中的数据并保存到 temp 目录中的 inject.vbs.BIN 中。然后通过 regsvr32 去注册该组件。经过分析发现 inject.vbs.BIN 是一 DynamicWrapperX 组件,脚本文件可以通过注册这个 DLL,去调用系统 API。

图片

(5) 解密 LOADER_DATA 中的数据,该段数据是一段 shellcode。  

(6) 通过 DynamicWrapperX 组件接口调用 VirtualAlloc 去分配两块内存,并将解密出的 shellcode 保 存到该段内存中。然后调用 CallWindowProcW,这个函数的第一个参数是一个回调函数,后四个参数(PE_PTR,宿主程序,命令行参数,0)是传给回调函数的参数。Shellcode 被当作CallWindowProcW 函数的回调函数得以执行。

图片

(7) shellcode 的主要作用是使用 RC4 算法对传进来的加密 PE 文件进行解密,并注入到相应的进 程中(传进来的参数为 svchost.exe)

图片
图片

(8)创建宿主进程并挂起。

图片

(9)将解密过的 PE 文件写如宿主进程中并执行。

图片

2.  Autoit Loader

 Autoit loader 包含一定的反虚拟机,反杀软功能,其注入傀儡进程的代码也是在 shellcode 中完 成的,且调用 shellcode 的方法和 VBS Loader 一样使用了 CallWindowProc 函数。 

(1)如果检测到 Avast 存在,则会 sleep 35000ms;检测到 VirtualBox,VMware,Sandboxie 会直 接退出。

图片 (2)在文件中通过关键字去定位文件保存的 PE。

图片
(3)前面是文件标识,后面是 Base64 加密的 PE 文件。

图片

(4)调用该函数传入的参数为前面 Base64 加密的 PE 文件,下面一段 shellcode 是 Base64 解密代 码,通过调用 CallWindowProc 函数执行解密代码去解密 PE 文件。

图片

(5)通过判断系统中文件存在情况,注入不同傀儡进程。

图片

(6)创建傀儡进程,然后将 PE 文件注入进去执行。

图片


10.1.4 Shellcode Loader 

 2015 年 10 月我们发现了一类完全使用 Shellcode 编写的 Loader。这类 Loader 有两种表现形式。

 

一种是自解压包形式,自解压包中通常包含两个文件并以[文件名].XXX 和[文件名].XX_命名。(其中一个文件的扩展名比另一个文件少了一个字母并以_代替),并静默执行[文件名].XXX 程序。

 

本例为@.cm_和@.cmd,自解压包执行后会首先执行@.cmd

图片

(1) @.cmd 运行后,会向栈上进行大量赋值。

图片

(2)之后对栈上的这些数据进行解密,并解密为一段 shellcode,称其为 shellcode_a。

图片

(3)shellcode_a 的主要功能是查找读取@.cm_里的加密数据,然后解密为新的 shellcode,称其为shellcode_b。

图片

(4) shellcode_b 把所有功能都封装在一个功能函数里面(上图 0xAB0018 处),通过传入不同的参数实现不同的功能。相信攻击者的生成器可以根据选项自由配置执行流程。

图片

shellcode_b 通过传入不同的参数将这些函数进行组合,最终将解密出的 PE 注入到傀儡进程中运行。另一种为“单文件形式”,其加密的 shellcode 和加密的 PE 文件都在一个文件内。且最终执行shellcode_a 和 shellcode_b 与分体形式的 Shellcode Loader 完全相同。

图片


10.1.5 Combine Loader 

Combine Loader 一般由不同语言的 Loader 组成,既继承了前面单一语言 Loader 的全部特性又继承了 shellcode loader 可自由配置功能的特性。目前发现的 Combine Loader 主要有两种:VBS Loader和 Shellcode Loader 组合成的 Loader,Delphi Loader 和 shellcode Loader 组成的 Loader。 

 

1. vbs+Shellcode

2016 年年初,我们发现了使用 VBS Loader 和 Shellcode Loader 组合成的 Loader。这类 Loader的最外层是 VBS 编写的 Loader,VBSLoader 负责将内层的自解压包形式的 shellcode loader 解密出来并启动,之后 shellcode loader 负责将真正的 PE 解密出来并注入到傀儡进程中执行。

图片

图片


2. Delphi + Shellcode

 2016 年 6 月以来,我们发现了一种更复杂的 Combine Loader。这种 Loader 不再是简单的将两 种不同语言的 Loader“糅合”在一起。而是更加体现出了一种“组合攻击”的迹象,即:同一个 Loader可释放两种及以上木马;经历了至少两个以上的阶段,才释放了最终的木马。

 

这类 Loader 同样也是自解压包。自解压包中包含两个文件,一个为解压后需要执行的 exe 文件(本例为 l538m.exe),另一个是名为 x 的二进制文件。

图片

图片
图片
图片


1. 自解压包运行后,首先执行 l538m.exe。该文件是第一个 Loader,使用 delphi 编写,称为 loader_a。 loader_a 主要功能是解密名为 x 的二进制文件。x 解密之后包含多种模块,并以字符串“intherway”间隔。 

 

2. 之后将控制权交给“x”最开头的 shellcode 代码,这段代码会向栈上写一个PE 文件,称为 loader_b,也是最终负责将木马启动起来的 Loader。

图片

3. 然后将栈上的 PE 文件(loader_b)注入到新启动的傀儡进程 l538m.exe 中。 

 

4. loader_b 同样也是 delphi 编写。获得执行权后,会再次读取 x 中的数据,并使用 x 中的 key 解密配置信息以及木马部分。

图片

5.之后 loader_b 会根据如下配置信息执行反沙箱、反虚拟机,反杀软等检测。

图片

图片

图片
图片
图片
图片

6.最后 loader_b 会将两个木马分别执行起来。 

附录 2:主要木马技术分析

这里我们挑选一些拦截量比较多的木马进行详细技术分析。

 

10.1.6 Pony 家族  

Pony 是非常流行的窃密木马,能窃取包括主流浏览器,FTP 软件、Email 客户端,以及比特币 等多种账号密码。总共可窃取 133 种各类客户端的账号密码。该木马的执行流程如下: 

1.样本首先会尝试提升自身权限

图片

2.解密内置的密码字典,用来登陆系统本地账户。

图片

3.窃取多种软件的账号密码 

针对各个客户端的窃密功能都在封装在了各自函数里,并保存在一个函数列表中。如下图:

图片

该函数列表共保存了 134 个窃密函数。下面是其窃取的软件: 

FarFTP、Ghis ler、CUTEFTP、FlashFXP、FileZilla、FTPNavigator、Bullet Proof FTP、SmartFTP、FFFTP、CoffeeCup FTP、COREFTP、FTP Explorer、Frigate3 Ftp、VanDyke SecureFX、UltraFXP、FTPRush、Cryer WebSitePublisher、BitKinex、ExpanDrive、ClassicFTP、NCH Software Fling、FTPClient SoftX.org、GPSoftware Directory Opus、leapftp、unleap、Martin Prikryl WinSCP、32BitFtp、NetDrive、 South River Technologies WebDrive、FTPCON、Opera、AceBIT、FTPVoyager、Mozilla FireFox Profiles、 Mozilla FireFox FireFtpSites、Mozilla SeaMonkey、Mozilla Flock Browser、Mozilla Profiles、LeechFTP、SiteInfo.QFP、WinFTP、FTPSurfer、FTPGetter、ALFTP、Adobe Common SiteServers、SFTP、DeluxeFTP、Chrome、Chromium、ChromePlus、Bromium、Nichrome、Comodo、RockMelt、K-Meleon、Epic、Staff-FTP、FreshFTP、BlazeFtp、FTP++、GoFTP、3DFTP、EasyFTP、NetSarang、RDP、FTPNow、 Robo-FTP 3.7、LinasFTP、Cyberduck、PuTTY、NppFTP、CoffeeCup FTP Profiles、FTPShell、MAS-Soft ftp、NexusFile、FastStoneBrowser、MapleStudio ChromePlus、WinZip FTP、Yandex、MyFTP、NovaFTP、Windows Live Mail、Windows Mail、RimArts Mail、Pocomail 、IncrediMail、RIT Bat Mail、Microsoft Internet Outlook、Thunderbird、Bitcoin、Electrum、MultiBit、Maxprog FTP Disk  、Litecoin、Namecoin、Terracoin。

 

4.窃密方法分析 

样本针对每种软件都“量身定制”了专门的窃密方法。下面以 Chrome 为例,分析下如何窃取Chrome 保存的账号的。

图片Chrome 把保存的密码数据存储在一个 SQLite 数据库中,文件名是 Login Data,其中的 logins表格包含了密码。

在 XP 系统下,实际路径是:

C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\Login Data。因为系统版本不同,实际路径可能不同,样本尝试三种系统路径 CSIDL_APPDATA、CSIDL_LOCAL_APPDATA、CSIDL_COMMON_APPDATA ,然后分别调用 searchrompassword 函数。

图片找到 Login Data 文件后,读取前 0x10 字节,比较是否为“SQLite format 3”。若是则继续向后定位到 logins 表格的密码数据。

图片

继续调用 selectloginstable 函数,定位到 logins 表格的密码数据。

图片

最后调用 CryptUnprotectData 函数,解密出密码。

图片
5.C&C 回连数据分析

 样本会循环依次调用上述 134 个窃密函数,并把窃取的信息保存到一个内存流对象里。下面我们来具体看看 C&C 通信相关协议。

 生成一个流对象

图片

随后按照如下格式依次将数据写入生成的流中。

图片

最后对这些数据使用 aPLib 算法压缩加密发送出去。发送的回连地址一般以 gate.php 结尾。


10.1.7 Neutrino 家族 

 

1.Neutrino 开始部分有很多反沙箱反调试的检测代码。 

(1)利用 IsDebuggerPresent 检测是否为调试器:

图片

(2)利用 CheckRemoteDebuggerPresent 检测是否为远程调试器:

图片

(3)检测用户名称是否包含这些字符串:MALTEST、TEQUILABOOMBOOM、SANDBOX、VIRUS、MALWARE:

图片

(4)检测当前进程路径是否包含\SAMPLE、\VIRUS、SANDBOX:

图片

(5)检测磁盘是否小于 10G,首先打开\\.\PhysicalDrive0,随后调用 DeviceIoControl 向其发送控码 IOCTL_DISK_GET_LENGTH_INFO,小于 10G 也退出进程:

图片

(6)通过检测 wine_get_unix_file_name 接口,判断是否运行在 Wine 下:

图片 (7)检测注册表是否存在 VMWareTools:

图片

(8)通过注册表 HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0\ Identifier 检测虚拟机 VBOX、QEMU:

图片

(9)通过注册表 HARDWARE\Description\System\ SystemBiosVersion 检测虚拟机 VBOX、 VIRTUALBOX 、QEMU、BOCHS:

图片

(10)检测 SOFTWARE\Oracle\VirtualBox Guest Additions 是否存在:

图片

2.Neutrino 的主要功能是窃密和 DDoS 攻击。其主要功能都是在一个线程中实现。

图片

支持的 DDOS 攻击有:http ddos、slowloris ddos、download flood、tcp ddos、udp ddos、https ddos 。 

另外还支持 loader(加载动态库或启动其他程序)、find file(查找文件)、cmd shell(启动 cmd)、 botkiller(删除其他僵尸网络文件)、keylogger(键盘记录)、update(自我更新)等功能。

 

(1)Loader:下载指定地址的文件到本地,如果下载的是 dll,则调用 regsvr32 加载。

图片

(2)find file:在本地磁盘查找指定文件,找到后上传该文件到 C&C 服务器。

图片

(3)Cmd shell:在本机开启一个简单的 cmd 后门。

图片

(4)Botkiller:删除 APPDATA、TEMP、ALLUSERSPROFILE 文件夹下的指定文件。

图片

在删除前,会比较文件名称和自身进程名称,只有不同才删除。也即 botkiller 命令是删除其他的僵尸网络样本,不会删除自身。

 

(5)Keylogger:窃取并上传数据,主要是按键记录、剪贴板数据以及截屏。

图片

图片

(6)当前焦点窗口标题是指定名称时,对屏幕截屏。

图片

(7)上述窃取的数据会保存到 logs.rar 里,然后读取并上传到 C&C 服务器。

图片(8)update:更新自身。

图片

(9)挂钩主流浏览器(firefox.exe、chrome.exe、iexplore.exe、opera.exe)客户端进程的数据发送相 关函数(如:PR_Write WSASend、HttpSendRequestW、send)。

 

其截取的主要是这些浏览器的 POST 表单数据。

图片

 

截取后会按照 ff=1&host=%s&form=%s&browser=%s 形式把 Form 表单数据上传到 C&C 服务器。

图片对于浏览器,不止是窃取 Form 表单数据,还会尝试窃取电子邮件账号,如在用户通过浏览器登 陆邮箱账号时,查找其中的@,并按照 mail://%s:%s@%s:%d 格式上传。 

样本还会通过查询注册表来窃取各种电子邮件账号,主要是查询下列的注册表来窃取:

Software\Microsoft\Windows Messaging Subsystem\Profiles

Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles。

图片(10)另外还挂钩了常见的 10 款 FTP 客户端软件,对于 FTP 客户端登陆时,当检测到 USER 和 PASS 命令则把账号和密码记录下来,并上传到 C&C 服务器。

图片

之后以 ftp://%s:%s@%s:%d 形式把窃取的 FTP 凭证上传到 C&C 服务器。

图片

10.1.8 键盘记录器 

 

1. HawkEye 家族

 

(1) 挂钩键盘钩子实现对键盘输入的监控

图片(2) 监控剪切板

图片(3) 窃取浏览器登录信息。(Chrome,IE,Firefox,Opera,还会获取一些其他工具的信息,JDownloader,DynDNS,FileZilla,FtpCommander)

图片(4)  添加自启动

图片(5)  将窃取到的数据发送出去

图片2. iSpy 家族 

(1)  对 sandboxie,wireshark,wpe 等的检测

图片(2)  检测 AV 是否存在,对杀毒软件进行映像劫持,同时设置一些注册表操作的权限

图片

图片

(3) 获取本机信息(用户名,系统版本,本地时间,系统语言,.Net 版本,用户权限,反病毒软件,防火墙,内网 IP,外网 IP)

图片(4)  截屏

图片(5)  获取 FTP,主机、用户名、端口、密码

图片(6) 挂钩键盘钩子实现对键盘监控

图片(7) 通过摄像头捕获图像

图片(8)  窃取游戏 minecraft(我的世界),用户名、密码

图片(9)  窃取聊天工具 Beyluxe 的用户名密码

图片(10) 通过 Email,FTP,PHP 三种方式将窃取到的信息回传回去

图片

3. predator pain 家族

(1)  对剪贴板设置监控

图片

(2)  窃取比特币数据

图片(3)  窃取 minecraft(我的世界),账号密码

图片(4)  通过可移动设备传播

图片(5)  上传键盘记录,附带截屏

图片

图片

52470【年度报告】卷土重来之启明星辰集团VenusEye金睛团队2016年度监测数据分析(下篇)

这个人很懒,什么都没留下

文章评论