一. 样本综述
Banjori是被发现于2013年并活跃至今的银行木马。其攻击目标主要针对于法国、德国与美国的个人银行网上用户。当用户被感染后,木马会将恶意载荷注入至用户的活动进程实现持久威胁并对用户的信息进行收集。银行木马的盗窃重灾区多位于浏览器,Banjori亦不能免俗。相比IE与Chrome, 该木马尤为青睐于火狐浏览器,大部分被窃取的用户信息均通过对该浏览器的挂钩、数据库文件查询获取。值得一提的,该木马家族自2013年起就使用当年颇为时髦的动态域名算法获取CC服务器地址。这导致杀软传统的黑名单过滤形同虚设,但同时也为摧毁/接管该僵尸网络创造了条件。
绿盟伏影实验室针对该家族进行了一年的持续跟踪,共检测到僵尸网络1499个, 其数量呈逐月上升趋势。
二. 样本执行流程
样本首先解将恶意代码释放至堆中并通过注入的方式感染其他进程。被注入的恶意代码一致但表现出的行为不尽相同,这是因为恶意代码被指定了不同的执行入口点。这样的入口点一共有三个,即三个不同的执行阶段。
第一阶段发生于恶意进程内部,恶意代码首先被解压至自身的堆空间内,并跳转至第一阶段执行入口点。
第一阶段的主要功能如下:
1. 将堆中恶意代码注入所有运行中的进程。
2. 钩取被注入进程的’CloseHandle’函数。
3. 对被注入进程设置的标志位防止重复注入。被注入的进程载入的kernel32.dll的PE头第0x51个偏移的字节会被替换为’@’,替换后的PE头中的DOS部分变更为’Th@s program cannot be run in DOS mode’。
第二阶段发生于被感染进程内部,当CloseHandle函数被调用时,通过第一阶段设置的钩子跳转至第二阶段入口点。
第二阶段主要功能如下:
1. 将被注入的恶意代码继续向所有运行中的进程注入,实现持久威胁。
2. 创建svchost傀儡进程并将恶意代码注入该进程。
针对浏览器信息的窃取。
第三阶段发生于svchost傀儡进程,通过第二阶段创建的远程线程进入第三阶段入口点。
第三阶段主要功能如下:
1. 使用DGA动态获取C2域名,绕过杀软的恶意域名检测。
2. 将窃取到的用户信息上传至C2服务器。
三. 样本细节分析
1 持久威胁
第一与第二阶段的恶意代码循环判断互斥体’JbrDelete’是否被创建,当该互斥体未被创建时,持续检索、注入未被感染的活动进程。
第二阶段的恶意代码会创建一个隐藏窗口。该窗口的消息回调函数函负责创建循环判断终止条件的互斥体’JbrDelete’,当且仅当窗口收到了用户登出的消息’WM_QUERYENDSESSION’时才会创建互斥体’。
2 信息窃取
第二阶段被注入至各个活动进程的恶意代码负责偷取用户信息。 首先,对肉鸡操作系统语言进行判断,当且仅当操作系统语言属于美国时,搜索’Users%UserName%AppDataRoamingMicrosoftWindowsCookies’下包含银行名称的敏感文件,并复制在待上传文件夹。
当操作系统语言是德国、法国或美国时,注入的恶意代码会尝试firefox的根目录下寻找sqlite3.dll(该动态链接库并不属于于高版本的firefox浏览器组件)。恶意代码会使用该库的导出函数查询浏览器的缓存文件并将查询结果保存在本地。
样本会记录任意语言版本操作系统肉鸡所访问的域名;注入到各个进程的恶意代码判断自身是否firefox浏览器的进程空间内,若是,则会尝试在firefox加载的动态链接库中寻找ssl3.dll并对其导出函数’SSL_SetURL’进行挂钩。值得一提的是,早期的firefox使用的网络安全服务(NSS)库中包含ssl3.dll, 但在某一次版本迭代后更名为nss3.dll。
钩子函数会从参数中提取用户访问的域名并保存在本地等待被上传。
3 动态域名算法
样本使用字符串’antisemitismgavenuteq.com’作为种子域名,根据该种子域名的前四个字符计算后成真正的C2域名,计算方法如公式所描述
该算法生成的C2域名仅与种子域名的前四个字符不同,共有26^4种排列组合;生成的C2域名示例如下
’plhusemitismgavenuteq.com’
‘ckbrsemitismgavenuteq.com’
‘msfasemitismgavenuteq.com’
‘fbcpsemitismgavenuteq.com’
如果一直无法连接到C2域名,样本会一直使用该算法生成新的C2域名直到连接成功。由于四个字符的排列组合数量有限,因此该算法会多次生成相同的域名,即’回环域名’。举例,以’antisemitismgavenuteq.com’为种子域名,则生成的第2个与第15374个C2域名均为‘nzrvsemitismgavenuteq.com’。
有些域名在经过一定轮次后可被再次生成,有些则不可以。举例,对于域名’gfaqsemitismgavenuteq.com’,不存在使用该DGA算法后输出’gfaq’的输入。非回环域名可用于该DGA算法的种子,但不可作为C2域名,这是因为非回环域名不会被再次算出,首次连接失败就意味着C2永久性丧失了对肉鸡的控制权。我们可以提取回环域名特征后将其枪注,进而接管僵尸网络。
同理可证
若域名的前四个字符是回环域名,则生成这四个字符的必然存在。进步一的,若是回环域名,则该域名的前两个字节必然存在一组与之相对。
令做和,则有
显然,当与同时存在时,之和可以被2整除,即奇偶性相同时是回环地址的必要不充分条件。同时,当奇偶性不同时,必然不是回环地址。非回环地址占地址总数的,即[0.25,0.5]。
综上所述,无视之和可以被2整除的非回环域名,抢注总域名中小于等于75%的回环域名就可以接管该僵尸网络。
4 通信协议
位于scvhost傀儡进程第三阶段恶意代码负责与C2端通信。样本共生成了了两类管道,管道一使用HTTP协议, 负责向C2提供自身运行状态,管道二使用XMPP协议,负责上传第二阶段窃取到的用户信息。
管道一使用使用的消息格式包括如下字段,可用于提取流量特征。
{
&q= //可选
&data= //可选
&data_type= //可选
&action= //可选
&ver= //可选
&ch= //可选
&data_content= //可选
"0xA"task"0xA" //可选
&id= //硬编码
&versionf= //硬编码
&versiona= //硬编码
&vendor= //硬编码
&do= //编码后的C2域名
&check=chek //硬编码
}
样本使用管道一当进行与C2服务器的首次握手,上线包的action字段被赋值为’new’。
样本使用管道二上传本包含用户信息在内的各种文件。
首先,样本遍历待上传文件的目录。
之后,样本构建一个包含上传文件基本信息的数据包并发送给C2服务器,发送前为该数据包添加了PGP头,但仅对数据内容进行BASE64编码而没有根据PGP协议的要求对数据内容进行加密。
最后,样本将目录下的文件逐一上传。
四. IOC信息
种子域名 | MD5 | |
antisemitismgavenuteq.com | 538da019729597b176e5495aa5412e83 | |
bandepictom.com | 5592456E82F60D2222C9F2BCE5444DE5 | |
buckbyplaywobb.com | f9d02df23531cff89b0d054b30f98421 | |
telemachuslazaroqok.com | bc69a956b147c99f6d316f8cea435915 | |
texanfoulilp.com | 36a9c28031d07b82973f7c9eec3b995c | |
clearasildeafeninguvuc.com | 1e081e503668347c81bbba7642bef609 | |
marisagabardinedazyx.com | c2c980ea81547c4b8de34adf829ccc26 | |
pickfordlinnetavox.com | 4e76a7ba69d1b6891db95add7b29225e | |
snapplefrostbitecycz.com | abb80f23028c49d753e7c93a801444d8 | |
filtererwyatanb.com | eff48dae5e91845c2414f0a4f91a1518 | |
antwancorml.com | 5dda3983ac7cebd3190942ee47a13e50 | |
stravinskycattederifg.com | eaeb5a9d8d955831c443d4a6f9e179fd | |
forepartbulkyf.com | 080b3f46356493aeb7ec38e30acbe4f5 | |
fundamentalistfanchonut.com | 40827866594cc26f12bda252939141f6 | |
criterionirkutskagl.com | 8e1d326b687fc4aacc6914e16652c288 | |
criminalcentricem.com | a03971bff15ec6782ae25182f4533b92 | |
babysatformalisticirekb.com | b9fb8ae5e3985980175e74cf5deaa6fb | |
earnestnessbiophysicalohax.com | f555132e0b7984318b965f984785d360 |
参考资料:
[1]:https://www.johannesbader.ch/2015/02/the-dga-of-banjori/
声明:本文来自绿盟科技研究通讯,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。