经典病毒上线流量分析-Lokibot

一、概述

Lokibot于2015年面世,持续活跃至今,是一种高度危险且隐匿的恶意软件,旨在窃取受害主机的敏感信息,包括存储的密码、浏览器登录凭据以及加密货币钱包等,并将这些信息上送到远程C2服务器上。本文将重点针对Lokibot家族的上线包进行分析,让读者可以更深入了解经典病毒Lokibot的流量特征,进行有效防御。

二、本地行为分析

文件基本信息如下:

经典病毒上线流量分析-Lokibot

2.1 脱壳

使用反编译工具分析文件发现该文件使用了壳保护。为了更好的分析病毒行为,需要对样本进行脱壳处理。尝试在沙箱运行发现如下行为:

经典病毒上线流量分析-Lokibot

根据行为可知,文件调用WriteProcessMemory(),向进程中注入文件

WriteProcessMemory()作用:将数据写入指定进程中的内存区域。

BOOL WriteProcessMemory(
  [in]  HANDLE  hProcess,
  [in]  LPVOID  lpBaseAddress,  ;目标地址
  [in]  LPCVOID lpBuffer,     ;预备写入的地址
  [in]  SIZE_T  nSize,        ;写入数据大小
  [out] SIZE_T  *lpNumberOfBytesWritten
);


定位可疑函数位置,对该函数下硬件断点

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

查看stdcall窗口,主要关注2,3,4这三个参数,通过这三个参数可以判断出需要进行dump文件的起始地址以及文件大小。经调试确定WriteProcessMemory()被调用五次,整理可知写入数据大小为0x1A000。

经典病毒上线流量分析-Lokibot

通过savedata命令dump数据到文件中

savedata命令格式:文件名,起始地址,文件大小。实际命令如下:savedata 1234,0x040AF0F8,0x1A000

经典病毒上线流量分析-Lokibot

使用反编译工具查看保存的文件,可以看到清楚的逻辑,确定脱壳成功。

2.2 动态获取API

该样本未通过导入表使用关键API,只有当需要调用API时才会接收索引值以及名称的hash值获取对应API的地址直接调用,而非将API恢复或者存储到某个地方以后再运行。使用该方式可以防止分析者一次性恢复使用的所有API,实现细节见下文。

GET_dll_base函数会以a1作为索引值从包含DLL名称的内存数组中获取DLL名称,进而获取其基址。

经典病毒上线流量分析-Lokibot

parse_export_tbl函数会加载DLL并解析导出表,遍历导出表中函数并通过LO_caculate_hash函数计算出函数名字符串的hash与参数api_hash对比,相同则成功获取到API地址。

经典病毒上线流量分析-Lokibot

LO_caculate_hash函数负责计算当前调用API的HSAH值,计算步骤如下:该函数使用了循环嵌套,外层循环运行n次(n为API名称字符串的长度)。每循环一次获取当前存储在*api_str中的字符与v3进行异或后存储在v3中,并将*api_str的值修改为下一个字符存储的地址。接着进行内层循环,内层循环运行8次 判断v3的值是否为0,不为0则与常数0x4358AD54进行异或,再右移1位。最后将输出结果v3取反。通过上述过程最终获取当前API名称的hash。

经典病毒上线流量分析-Lokibot

使用x64dbg调试相关逻辑

系统API调用示例如下:

经典病毒上线流量分析-Lokibot

计算并对比API名称的hash获取相应地址

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

上述分析确定了获取API地址与调用函数的地址,由于该样本是通过API_HASH去获取相关API地址,同时也可以获取相关API的名称。获取被调用API名称的方法如下:

通过下条件断点,直接输出API的名称和相关地址。

在地址0x403260下条件断点,断下后可从EAX获取API名称,从栈顶获取调用API的函数信息。

经典病毒上线流量分析-Lokibot

最终获取的API信息与相关地址如下:

经典病毒上线流量分析-Lokibot

2.3 创建互斥量

调用成功会根据受害者主机系统的GUID创建互斥量。

经典病毒上线流量分析-Lokibot

2.4 窃取数据

Lokibot会构造两个数组,第一个数组中的值作为全局变量充当标识符,第二个数组中的函数实现了各种窃取数据的逻辑。

经典病毒上线流量分析-Lokibot

firefox窃密函数功能为:判断是否存在firefox浏览器信息,根据不同的系统版本执行对应的窃密操作。其他窃密函数的逻辑类似。

经典病毒上线流量分析-Lokibot

Lokibot会给每个窃密函数绑定一个全局变量标识符,C2服务器会根据这些全局标识符来存储/解析被盗数据。

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

窃取信息的目标程序包含浏览器,远控,邮件等常用工具,部分工具示例如下:

firefox browser 火狐浏览器notepadplusplus Notepad++myftp myftp上传工具 ftpgetter ftp上传软件syncovery Super Flexible Synchronizer自动备份工具bitkinex bitkinex手机ftp工具putty putty远控工具incredimail incredimail邮件管理软件 outlook outlook邮件

同时,LoKibot会尝试从 Windows Credential Manager 中窃取凭据信息。

经典病毒上线流量分析-Lokibot

为了窃取凭证信息,Lokibot遍历读取指定目录下以“.lck”为后缀的所有文件。

经典病毒上线流量分析-Lokibot

elevate_privilege函数的主要功能是调整进程令牌的权限。以便find_file获取凭据信息。

经典病毒上线流量分析-Lokibot

find_file函数主要功能是查找%s\\Microsoft\\Credentials与%s\\Microsoft\\Credentials下的凭据信息。

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

将窃取的数据再次打包发送到C2服务器。

经典病毒上线流量分析-Lokibot

2.5 持久化

为了实现持久化,Lokibot 将自身复制到%APPDATA%内的一个文件夹,创建注册表启动项,隐藏创建的目录和复制的可执行文件。

创建目录并复制原始可执行文件。

经典病毒上线流量分析-Lokibot

创建注册表启动项并隐藏文件夹和可执行文件。

经典病毒上线流量分析-Lokibot

三、网络行为分析

3.1 解密并连接C2

Lokibot会将获取的信息和系统信息一起打包发送至目标服务器。

经典病毒上线流量分析-Lokibot

获取宿主机用户名、桌面等相关信息。

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

将获取的信息拼接在一起,并传入send_data。

经典病毒上线流量分析-Lokibot

Lokibot将C2以3DES加密算法加密后存储在样本中,建立连接前先进行解密,解密结果如下图。

经典病毒上线流量分析-Lokibot

上线报文示例如下:

经典病毒上线流量分析-Lokibot

3.2 上线包详细分析

将上线报文的关键数据导出,使用Imhex标注,各部分含义如下

1.下图标记处四个字节为样本中硬编码的定值数据

经典病毒上线流量分析-Lokibot

2.下图标记处为定值,使用了Lokibot存储数据的特殊结构

字节[0,1]代表是否为宽字节,宽字节为1否则为0

字节[2,5]代表后续数据长度

字节[6,12]代表存储的数据,此处为“ckav.ru”

经典病毒上线流量分析-Lokibot

3.下图标记处使用了Lokibot特殊数据结构,含义为用户名

经典病毒上线流量分析-Lokibot

4.下图标记处使用了Lokibot特殊数据结构,含义为主机名

经典病毒上线流量分析-Lokibot

5.下图标记处使用了Lokibot特殊数据结构,含义为widnows域名称

经典病毒上线流量分析-Lokibot

6.下图标记处表示屏幕宽高

字节[0,3]代表屏幕宽度

字节[4,7]代表屏幕高度

经典病毒上线流量分析-Lokibot

7.下图标记处值如下

字节[0,1]代表检索指定用户账户信息成功

字节[2,3]代表当前用户不属于管理员组

字节[4,5]代表当前系统为x64框架

经典病毒上线流量分析-Lokibot

8.下图标记处表示操作系统的版本号为6.1 次版本为1

经典病毒上线流量分析-Lokibot

9.下图标记处为定值,为“k.r.o.t.i.k.\.W.i.n.b.o.x.”的第一个字符

经典病毒上线流量分析-Lokibot

经典病毒上线流量分析-Lokibot

10.下图标记处为定值

经典病毒上线流量分析-Lokibot

11.下图标记处使用了Lokibot特殊数据结构,含义为机器的GUID

经典病毒上线流量分析-Lokibot

12.下图标记处为随机生成的字符串

字节[0,3]代表生成的字符串长度

字节[4,8]代表生成的字符串

四、防护方案

处置建议

  1. 定期修改重要账户的密码
  2. 重要数据做好备份工作
  3. 及时更新系统补丁,减少系统漏洞带来的风险

IPS特征库

针对Lokibot家族上线流量,新华三IPS特征库能够有效检测并拦截,请及时开启相关功能。

经典病毒上线流量分析-Lokibot

from https://www.freebuf.com/articles/network/370629.html