回归最本质的信息安全

FormBook:一种新型超隐蔽恶意软件

2017年10月11日发布

47,370
0
3

导语:目前FireEye的研究人员观察到了几个大型FormBookFormBook的传播活动,发现FormBook在过去几个月主要针对美的航空航天,国防承包商和制造业进行攻击。

u=324566860,997952261&fm=27&gp=0.jpg

目前FireEye的研究人员观察到了几个大型FormBookFormBook的传播活动,发现FormBook在过去几个月主要针对美的航空航天,国防承包商和制造业进行攻击。FireEye研究人员发现攻击者是通过使用各种含有不同附件的电子邮件来传播的FormBook的:

含有下载链接的PDF文档
含有恶意宏的word文档和Excel文件
包含EXE有效载荷的文件(ZIP,RAR,ACE和ISO)

FormBook概述

FormBook是一个数据窃取和表单攫取的工具,该工具自2016年初以来就开始在各种黑客论坛上开始出现,下面两个图显示了FormBook的两则宣传广告。

1507689039198095.png

介绍FormBook广告

1507689145147661.png

FormBook的价格广告

FormBook可以注入到各种进程中,通过安装键盘记录器功能,来窃取文件内容,并从HTTP会话中提取数据。FormBook还可以通过命令和控制服务器执行命令,这些命令包括指示FormBook下载和执行文件,启动进程,关闭并重启系统,并窃取cookie和本地密码。

FormBook最有趣的一个功能就是将Windows的ntdll.dll模块通过磁盘读取内存,并直接调用其导出的函数,这样在用户模式下的hook和API监控机制就都失效了。为此,FormBook开发者特意将此攻击技术称为“拉各斯岛方法”,据了解,有一种进程rootkit就这样叫。

除此之外,FormBook还具有持久性攻击的特点,可以随机地改变路径、文件名、文件扩展名和用于持久性的注册表项。

目前,FormBook的开发者是不销售其构建器的,黑市能买到的也只它的操作界面。

FormBook的攻击性能

FormBook目前还仅仅是一个数据窃取工具,并没有任何扩展或插件。其性能包括:

键盘记录
文本监控
抓取HTTP/HTTPS/SPDY/HTTP2表单和网络请求
从浏览器和电子邮件客户端抓取密码
截图

FormBook还可以从命令和控制服务器接收以下远程命令:

在主机系统上更新恶意程序
下载并执行恶意文件
从主机系统中删除恶意程序
通过ShellExecute启动命令
清除浏览器Cookie
重启系统
关闭系统
收集密码并创建屏幕截图
下载并解压缩ZIP文件

命令和控制服务器

由于命令和控制服务器的域名通常使用的都是最新的通用顶级域名(gTLD),例如.site,.website,.tech,.online和.info。

所以,专家们最近观察到的FormBook的命令和控制服务器的域名已使用了WhoisGuard隐私保护服务对注册信息进行保护。目前能了解到的就是FormBook的命令和控制服务器托管在乌克兰托管服务提供商BlazingFast.io上。

攻击过程还原

恶意文件特征

我在这篇文章中的分析是基于以下一个FormBook样本:

000.png

封装过程

FormBook是一个自动解压的压缩文件,它可以启动AutoIt加载程序。 AutoIt加载器然后会进行编译并运行AutoIt脚本,接着AutoIt脚本会解密FormBook的有效载荷文件,将其加载到内存中,然后开始执行。

安装过程

FormBook会将自己复制到一个新的位置中,在复制后它首先会选择以下一个字符串作为其安装文件名的前缀:

ms,win,gdi,mfc,vga,igfx,user,help,config,update,regsvc,chkdsk,systray,audiodg,certmgr,autochk,taskhost,colorcpl,services,IconCache,ThumbCache,Cookies

然后安装文件会生成2到5个随机字符,并将这些字符附加到上面所选择的一个字符串上。

以下是文件所形成的一些扩展名:

.exe,.com,.scr,.pif,.cmd,.bat

如果FormBook要提升运行的权限,它会将自身复制到以下一个目录中:

%ProgramFiles% 
%CommonProgramFiles%

如果FormBook以正常权限运行,它会将自身复制到以下一个目录中:

%USERPROFILE%
%APPDATA%
%TEMP%

持久性驻留过程

FormBook驻留过程中使用的字符串列表与上一个过程都相同,在这个过程中,FormBook会使用一个随机字符串来创建一个前缀,并将这些字符附加到生成的1至5个随机字符中,最后FormBook使用该字符作为注册表的名称。

FormBook会根据其运行的权限,在以下两个位置对持久性驻留特点进行设置:

(HKCU|HKLM)SOFTWAREMicrosoftWindowsCurrentVersionRun

(HKCU|HKLM)SOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun

启动攻击

FormBook会创建两个16字节的互斥(mutexes),第一个互斥是客户端标识符(例如8-3503835SZBFHHZ)。第二个互斥是从命令和控制的信息和用户名(例如LL9PSC56RW7Bx3A5)导出的。

然后,FormBook会遍历一个进程列表,并计算进程名称的校验和值(而不是检查名称本身)以确定要注入哪个进程。FormBook可能会注入浏览器进程和explorer.exe。根据目标进程,FormBook会选择安装不同的hook函数子。

反分析过程

FormBook使用了多种技术来防止研究人员对其进行跟踪和分析,比如:

1.使用RDTSC指令进行定时检查
2.调用含有InfoClass = 7 (ProcessDebugPort)的NtQueryInformationProcess
3.FormBook路径和文件名检查(FormBook文件名必须短于32个字符)
4.基于哈希的模块黑名单
5.基于哈希的进程黑名单
6.基于哈希的用户名黑名单
7.在通信之前,检查主机文件中是否存在命令与控制服务器

然后FormBook会将这些测试的结果放入一个16字节的阵列(array)中,并在阵列上计算出SHA1哈希值,而这个哈希值将会被作为后续字符串的解密密钥(例如要加载的DLL名称)。在FormBook尝试加载支持的DLL(kernel32.dll和advapi32.dll)之前,它是不会让安全防护软件发现自己的。

保存检查结果的正确的16字节阵列是:00 00 01 01 00 00 01 00 01 00 01 00 00 00 00 00

计算出的SHA1哈希值是:5b85aaa14f74e7e8adb93b040b0914a10b8b19b2

完成所有反分析检查后,FormBook会手动将ntdll.dll从磁盘映射到内存中,并直接在代码中使用其导出的函数。所有的API函数都将在代码中具有一小段的stub 函数,该函数会使用具有API名称的CRC32校验和来查找映射的ntdll.dll中的API地址,并在堆栈上设置参数。

接下来,FormBook将直接登记呼叫(register call)映射的ntdll.dll模块。由于永远不会通过系统映射的ntdll.dll执行,这就使得API上的常规调试器断点不可操作。

进程注入

FormBook循环遍历所有正在运行的进程,通过CRC32校验和来查找其进程名称的explorer.exe。为了避免更常见的可识别技术,如WriteProcessMemory和CreateRemoteThread,FormBook会使用以下API调用将其注入explorer.exe:

NtMapViewOfSection
NtSetContextThread
NtQueueUserAPC

被劫持的explorer.exe实例中注入的代码会随机地从以下列表中选择并启动(也可以暂停)内置的Windows可执行文件:

svchost.exe,msiexec.exe,wuauclt.exe,lsass.exe,wlanext.exe,msg.exe,lsm.exe,dwm.exe,help.exe,chkdsk.exe,cmmon32.exe,nbtstat.exe,spoolsv。 exe,rdpclip.exe,control.exe,taskhost.exe,rundll32.exe,systray.exe,audiodg.exe,wininit.exe,services.exe,autochk.exe,autoconv.exe,autofmt.exe,cmstp.exe, colorcpl.exe,cscript.exe,explorer.exe,WWAHost.exe,ipconfig.exe,msdt.exe,mstsc.exe,NAPSTAT.EXE,netsh.exe,NETSTAT.EXE,raserver.exe,wscript.exe,wuapp。 exe,cmd.exe

接着,原始进程会从explorer.exe的内存中读取随机选择的可执行文件,并通过NtMapViewOfSection,NtSetContextThread和NtQueueUserAPC进入到这个新进程。

然后,新进程将删除原始FormBook并设置持久性。这样,该进程就会进入一个循环过程,不断枚举正在运行的进程,并根据进程名称的CRC32校验和查找目标。

目标进程名称包括:

iexplore.exe,firefox.exe,chrome.exe,MicrosoftEdgeCP.exe,explorer.exe,opera.exe,safari.exe,torch.exe,maxthon.exe,seamonkey.exe,avant.exe,deepnet.exe,k- meleon.exe,citrio.exe,coolnovo.exe,coowon.exe,cyberfox.exe,dooble.exe,vivaldi.exe,iridium.exe,epic.exe,midori.exe,mustang.exe,orbitum.exe,palemoon。 exe,qupzilla.exe,sleipnir.exe,superbird.exe,outlook.exe,thunderbird.exe,totalcmd.exe

在注入目标进程之后,FormBook会根据进程设置用户模式的API hook。

FormBook会根据进程而选择安装不同的hook函数。这些hook函数的主要目的是进行键盘记录,窃取文本数据,并从浏览器HTTP会话中提取认证信息。

接着FormBook会将这些盗取的数据存储在本地密码日志文件中,其中目录名称来自于命令与控制的信息和用户名(与上面创建的第二个互斥相同:LL9PSC56RW7Bx3A5)。

但是,目录名称只从其中选取了8个字节(例如,LL9PSC56)。接下来,新生成的目录名称的前三个字符会被用作日志文件的前缀,这些字符串定义了日志格式本身。紧跟的这个前缀便是与日志文件类型对应的名称,例如,对于Internet Explorer密码,对应的日志文件如下:

%APPDATA%LL9PSC56LL9logri.ini.

以下是没有前缀的密码日志文件名:

(no name): Keylog data
rg.ini: Chrome passwords
rf.ini: Firefox passwords
rt.ini: Thunderbird passwords
ri.ini: Internet Explorer passwords
rc.ini: Outlook passwords
rv.ini: Windows Vault passwords
ro.ini: Opera passwords

不使用.INI文件扩展名的另一个文件便是截图文件:im.jpeg。

hook函数

键盘记录或文本监控:

GetMessageA
GetMessageW
PeekMessageA
PeekMessageW
SendMessageA
SendMessageW

浏览器函数:

PR_Write
HttpSendRequestA
HttpSendRequestW
InternetQueryOptionW
EncryptMessage
WSASend

浏览器的hook函数会在HTTP请求的内容中查找某些字符串,如果找到匹配字符串,则提取有关请求的信息,目标字符串如下:

pass
token
email
login
signin
account
persistent

网络通信

FormBook会使用HTTP请求与以下命令与控制服务器进行通信:

www[.]clicks-track[.]info/list/hx28/

信标

如下图所示,FormBook会使用一个含有URL中的“id”参数的HTTP GET来发送信标请求(由定时器或计数器控制)。

1507689264770659.png

解码后的“id”参数如下:

FBNG:134C0ABB 2.9:Windows 7 Professional x86:VXNlcg==

位置:

“FBNG” - 魔术字
“134C0ABB” - 用户SID的CRC32校验和
“2.9” – 木马版本
“Windows 7 Professional” - 操作系统版本
“x86” - 操作系统架构
“VXNlcg ==” - Base64编码的用户名

通讯加密

FormBook会使用硬编码的HTTP标头发送HTTP请求。如下图所示的HTTP标头就是硬编码的。

1507689276985358.png

发送到命令与控制服务器的消息会进行RC4加密和Base64编码,不过,FormBook使用的Base64字母表稍微进行了一些改变,并且用于填充的字符"="还会被"."代替。

比如标准的Base64字母是:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

但修改后的Base64字母是:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_

使用具有命令与控制 URL的SHA1哈希算法,可以创建RC4密钥。标准SHA1算法在算法结束时反转DWORD字节顺序。但命令与控制 URL的SHA1哈希算法是不会导致字节顺序反转的。例如,上述URL的SHA1哈希值为“9b198a3cfa6ff461cc40b754c90740a81559b9ae”,但是当重新排序DWORD时,它会产生反转的RC4密钥:3c8a199b61f46ffa54b740cca84007c9aeb95915。可以看出,第一个DWORD“9b198a3c”变成“3c8a199b”。

下图就是一个HTTP POST请求:

1507689293720248.png

在这个例子中,解码的结果为:

ClipboardrnrnBlank Page - Windows Internet ExplorerrnrncEXN{3wutV,

命令接收

当命令与控制服务器发出一个命令时,HTTP响应体的格式如下图所示。

1507689305862663.png

数据以魔术字“FBNG”开头,接着单字节的命令代码会从十六进制字节的31到39以明文形式开始。之后是RC4编码的命令数据,其中RC4密钥与用于请求的密钥相同。在解密的数据中,魔术字“FBNG”会又一次出现在命令数据的结尾处。

下表就是FormBook接收的命令:

0000.png

FormBook的传播活动

FireEye研究人员发现攻击者是通过使用各种含有不同附件的电子邮件来传播的FormBook:

1.带有“tny.im”短URL链接的PDF文件,如果用户点击该链接,就会被重定向到包含FormBook可执行有效载荷的临时服务器(staging server)中。
2.包含恶意宏的word文档和Excel文件,如果用户点开,就会启动下载FormBook的有效载荷。
3.包含EXE有效载荷的文件(ZIP,RAR,ACE和ISO)。

采用PDF进行攻击

PDF在进行攻击活动时,其所发送的邮件主题都是假冒的FedEx和DHL进行送货的,以及文档共享主题。其实PDF文件本身并不包含恶意代码,只是文中会含有一个FormBook的有效载荷链接,临时服务器(如下表所示)似乎就是被攻击的网站。

7.png

PDF攻击的电子邮件附件

1507689325689646.png

PDF文件里含有的FormBook的有效载荷链接

9.png

根据研究者们对tny.im短链接的数据统计分析,该链接总共被分布在36个国家的用户点击过716次。如下图所示,PDF的大部分恶意活动都影响的是美国用户。

9.jpg

通过恶意word文档和Excel文件进行攻击

通过word文档和Excel文件的电子邮件攻击活动,依赖于使用恶意宏来下载可执行有效载荷。当启用宏时,下载URL将检索具有PDF扩展名的可执行文件,下表列出了这些活动中所使用的电子邮件主题和下载URL。

99.png

FireEye在2017年8月11日至8月22日期间观察到了大量的这种恶意活动,且大部分活动在美国被,其中攻击的主要行业是航空航天和国防承包商。

10.png

8月11日至8月22日的DOC/XLS恶意活动

11.jpg

受DOC/XLS活动影响的十大国家

12.jpg

受DOC/XLS活动影响的十大行业

包含EXE有效载荷的文件攻击

文件攻击活动提供了各种攻击格式,包括ZIP,RAR,ACE和ISO,并且成了攻击活动的主要形式。该方式所涉及的主题五花八门,其中以商业主题最多,通常涉及付款或采购订单。

999.png

FireEye是在2017年7月18日至8月17日期间观察到这一活动的。其中大部分在韩国和美国,影响最大的是制造业。

13.png

2017年7月18日至8月17日的恶意活动

14.jpg

受影响的十大国家

15.jpg

受影响的十大行业

总结

虽然FormBook的攻击性能或传播方法并没有什么独特的,但由于其操作简单,价格低廉,功能强大,使得很多网络犯罪分子对它青睐有加。 

在过去的几周里,研究者发现攻击者已经可以利用FormBook来下载其他的恶意软件了,比如NanoCore。根据预测,攻击者通过FormBook获得的登录凭证和其他数据将在未来用于其它的网络犯罪活动,比如盗窃身份、钓鱼攻击、银行欺诈和敲诈勒索。

本文翻译自:https://www.fireeye.com/blog/threat-research/2017/10/formbook-malware-distribution-campaigns.html ,如若转载,请注明原文地址: http://www.4hou.com/technology/7909.html

点赞 3
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

xiaohui

xiaohui

嘶吼编辑

发私信

发表评论