专栏名称: 深信服千里目安全实验室
深信服科技旗下安全实验室,致力于网络安全攻防技术的研究和积累,深度洞察未知网络安全威胁,解读前沿安全技术。
目录
相关文章推荐
深圳发布  ·  本轮降温过后,会出现回南天吗? ·  2 天前  
51好读  ›  专栏  ›  深信服千里目安全实验室

窃取终端数据成本低,谨防Formbook恶意软件入侵窃密

深信服千里目安全实验室  · 公众号  ·  · 2021-05-27 17:17

正文

背景概述

科学技术的高速发展,带来了大量的商业发展机会,同时也为终端安全带来巨大的挑战。

近日,深信服终端安全团队捕获了Formbook样本病毒。这是一款著名的商业恶意软件,自2016以来在黑客论坛出售,因其隐蔽且易用的特点闻名。其主要利用钓鱼邮件进行传播,一旦用户不小心下载打开邮件附件,该恶意软件将会安装到终端上窃取机密数据和敏感信息。

Formbook窃密软件在黑客论坛上的售价并不是非常高昂,使得窃密的犯罪成本降低,这对于终端用户而言是不利的。

(图片来自于海外媒体)

FormBook主要会从受害者的设备(如键盘记录器)中窃取受害者的键盘输入以及某些软件的数据,例如浏览器,Email客户端和FTP客户端等个人信息,并使用C2的控制命令来操纵他们的设备或者服务器。


技术分析

该病毒上使用”傀儡“进程进行释放以防止分析人员的调试:通过GetProcAddress获取函数名并释放动态库文件ek0j.dll,并调用其恶意导出函数Rcxlxosdkhvclf:


在temp文件下写入加密文件:


加密文件经解密后为一段shellcode,将其加载到内存并执行:


创建子进程:


对子进程的dump进行分析病毒真正的操纵,通过使用ida Lumina进行 f12匹配分析;

初始化内存,该buffer区域在整个FormBook中进行读写,包含配置选项


该buffer内存区域:

具有标记组用来检测该病毒是否在被调试状态下进行,在buffer+0x29的位置上,所以flag正确的check为:00 01 01 00 00 01 00 01 00 01 00


Base+0x34位置上检查ASM执行时间差来判断是否在调试状态:


存在该病毒的base,以及后面所运用到的检索API的hash值,当前的os的位数,以及许多的dll的模块


全程使用计算以及比较hash,来获取api的名字以及地址:


重载两份ntdll,构建部分ntdll从而防止杀软在3环对原始ntdll做检测:


反调试检查: r3与r0层的调试,查询SystemKernelDebuggerInformation,以及ProcessDebugPort


(SYSTEM_INFORMATION_CLASS)SystemKernelDebuggerInformation

当为0x23时为获取系统是否在被调试信息存放到第2个参数指向的结构中,该结构是2个1字节的结构,当处于调试时这2字节都会被写入1从而判断是否在r0层进行调试。


检查黑名单进程:


进程也是通过hash的比对进行,进程列表为:

VBoxService.exe, VBoxTray.exe, VBoxService.exe,vmwareuser.exe, vmwareservice.exe, vmtoolsd.exe, vmusrvc.exe, vmsrvc.exe, sandboxiedcomlaunch.exe, procmon.exe, filemon.exe, wireshark.exe, NetMon.exe, python.exe, perl.exe


通过checkfilename ModulePath Username来判断是否存在沙箱行为,沙箱一般会将用户名变成特定用户名从而该病毒进行检查;

检查用户名列表: Cuckoo sandbox nmsdbox wilbert xpamast

0x19996921为explorer进程hash,获取线程进行劫持


Windows 进程名称列表在初始化的buffer中被加密,通过索引选择,Explorer中读取到某32位进程信息,explorer.exe。


记录下的进程列表为:

explorer.exe,wininit.exe,cmmon32.exe, svchost.exe,lsass.exe,raserver.exe,netsh.exe,rundll32.exe,control.exe, services.exe,ipconfig.exe等等

FormBook 随机获取 explorer.exe 返回的悬挂如上进程列表的进程信息,将 FormBook 有效负载文件复制到这些进程当中中,并将其主线程的入口点代码修改为注入的 FormBook 的OEP,执行 FormBook 的恶意代码,调用exitprocess来终止注入的formbook。


该病毒使用explorer主线程来劫持以及进行APC注入且创建一个挂起的进程,在该挂起进程中实现迁移从而实现explorer进程中没有创建新的进程,而创建挂起的进程父进程为explorer。

在C:\Program File(x86)下建立了随机的文件夹里面有病毒程序formbook的重载;


并通过注册表进行注册;


并使用这两个文件进行记录获取键盘等的数据,并进行通信;


与c2服务器进行通信,随机选择十六台主机作为它自己的 c 2服务器,并将窃取的数据发送到这台服务器。

C2列表:

34.102.136.180:80, 45.56.79.23:80, 52.200.25.77:80, 75.126.163.75:80, 167.114.6.31:80, 52.79.124.173:80, 163.44.239.71:80, 176.104.107.18:80, 162.0.239.203:80 ........


构造的新的控制块;


获取样本的路径,设置当前的互斥,将病毒文件重载内存;







请到「今天看啥」查看全文