跟踪OceanLotus的新下载程序KerrDown
攻击的方法
两种方法将KerrDown下载器传递给目标。一个是使用带有恶意宏的Microsoft Office文档,另一个是包含带有DLL side-loading合法程序的RAR存档 。对于RAR存档文件,用于欺骗目标的文件名都是越南语
* DLL Side-Loading 程序可以指定在运行时加载的DLL
https://attack.mitre.org/techniques/T1073/
恶意文件
两个不同的base64 blob插入到单独的表中,并且字体大小已更改为1。
图 1:诱饵文件
一旦增加了字体大小,base64 blob就会在两个不同的表中可见。解码后,可以在每个表的开头看到PE DLL的MZ头
图 2:作为文本嵌入文档的Base64 编码的 pe dll 文件。
根据iCheck变量检查应解码哪个base64 blob,如果受害者系统在64位系统上运行则设置为true,而在32-位系统。如果发现系统是64位,则左侧的base64编码blob将被解码,否则右侧的base64编码blob将被解码。
图 3 :基于系统检查的Base64 blob选择
重用了Motobit发布的VBS解码功能 。图4显示了宏代码中使用的base64函数与Motobit发布的VBS base64解码器函数之间的比较。
图 4 :Base64 解码器比较
* motobit Base64
https://www.motobit.com/tips/detpg_Base64/
JACC相似性分析一个RD指数
使用KerrDown样本的imphash值和随附的C2域在我们的数据集中找到多个其他样本。鉴于发现的样本数量很多,我们再次使用了使用Jaccard Index的相似性分析算法 提取所有样本之间的相似性。
使用networkx绘制Jaccard索引结果。
图 5 :使用JACC相似性分析一个RD指数
*Jaccard index :
https://en.wikipedia.org/wiki/Jaccard_index
KerrDown到Cobalt Strike Beacon
DLL将作为“main_background.png”放在目录位置“Users \ Administrator \ AppData \ Roaming”中。DLL从URL检索有效Payload,使用DES算法对其进行解密并在内存中执行。
恶意软件的目的是在内存中下载并执行Cobalt Strike Beacon有效负载。
RAR使用KerrDown存档
通过合法程序改变了从Office宏执行恶意代码到DLL端加载技术的方式。
有越南文件名'Don khieu nai.rar',翻译成英文“投诉信”。该存档包含一个合法的旧版Microsoft Word(Microsoft Word 2007)可执行文件,名为“Noi dung chi tiet don khieu nai gui cong ty.exe”,其翻译为“了解有关如何使用贵公司的更多信息”。攻击者使用DLL端加载技术加载旧版Microsoft Word的恶意DLL。在存档中打开可执行文件时,它会将恶意DLL加载到同一目录中。DLL执行多阶段shellcode,每个shellcode使用各种技术来隐藏下一阶段。整体安装步骤如下:
1.Microsoft Word exe将wwlib.dll加载到同一目录中并执行DLL的“FMain”功能。
2.DLL解码体内的base64编码shellcode并执行它。
3.shellcode解压缩用开源压缩代码UCL压缩的第二个shellcode 并执行它。
4.第二个shellcode用AES解密第三个shellcode。
5.第三个shellcode从以下远程位置检索shellcode并执行它:https:// cortanasyn [。] com / Avcv
6.第四个shellcode将嵌入的Cobalt Strike Beacon DLL加载到内存中并执行它。
图 6 :恶意下载程序的执行流程
查看数据集中所有KerrDown样本的编译时间戳,能够辨别出几个观察结果:
OceanLotus自2018年3月以来一直在其广告系列中使用新的下载程序,并继续在其广告系列中积极使用它。图7显示了KerrDown示例的时间轴:
图 7 :下载器DLL编译时间线
文章中的分析人员试图从数据集中的样本中找到可能的工作时间模式。根据GMT +7绘制了编译时间,发现了该APT组织可能是工作时间的清晰模式。OceanLotus的典型工作时间为上午9点至下午6点,大部分样本均在当天的这段时间内编制。图8显示了在数据集中找到的每个唯一样本的GMT +7恶意软件编译时间戳。
图 8 :GMT +7中的恶意软件编译时间
所有样本都是在工作日期间编制的 - 周一至周五。因此,很明显OceanLotus小组在工作日工作,并在周末休息。图9显示了本周编译的样本。
图 9 :工作日期间的恶意软件编译
结论
辨别出可能的工作时间模式,这表明该团体可能有正式的工作时间,并且在一个像越南或附近国家这样的地区开展业务。虽然观察到的大部分目标都是针对讲越南语的受害者。
来源
跟踪OceanLotus的新下载程序KerrDown的更多相关文章
- 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性
[源码下载] 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性 作者:webabcd 介 ...
- 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装
在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...
- STM32无法使用IAR下载程序问题
一开始建立了工程,然后程序下载都很正常.不知道什么情况自己下载代码之后,再重新下载代码无法成功. 我按照提示找了一下FlashStm32f30x8.flash这个文件,却发现IAR的目录下没并没有.又 ...
- 在U-Boot中添加自定义命令以实现自动下载程序【转】
本文转载自:https://gaomf.cn/2016/06/26/%E5%9C%A8U-Boot%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9 ...
- 【tomcat ecplise】新下载一个tomcat,无法成功启动,或者启动了无法访问localhost:8080页面/ecplise无法添加新的tomcat/ecplise启动tomcat启动不起来
今天转头使用ecplise,于是新下载一个tomcat7来作为服务器使用 但是问题来了: [问题1:全新的tomcat启动即消耗了不可思议的时间,并且启动了之前其他tomcat中的很多项目] [注意: ...
- php实现在线下载程序安装包功能
在线下载程序安装包可以很方便在服务器端下载各种程序安装包(Discuz!.phpwind.Dedecms.WordPress....等一些常用程序)并存储在服务器,大大减少站长上传程序安装包时间.默认 ...
- C#一个简单下载程序实例(可用于更新)
运行时的界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat ...
- LPC2378-Jlink 能下载程序,但是调试出现各种奇怪问题
LPC2378-Jlink调试经验 1.Jlink(d版的没有关系)不能下载程序? 把下载速率设置到500Khz及以下的速率. 2.Jlink能在500Khz的速率下载程序,但是不能调试?添加 ...
- 同花顺核新下单程序的"界面不操作超时时间"的设定
"界面不操作超时时间"的设定 同花顺核新下单程序的'界面不操作超时时间'的设定 系统> 系统设置> 界面设置> 界面不操作超时时间(分): 在这个输入框里填上个3 ...
随机推荐
- HTML DOM setAttribute()、与createAttribute()
setAttribute().与createAttribute() 都可以动态的为DOM 添加属性:但是用法却不一样: 1.setAttribute() setAttribute() 直接在DOM节点 ...
- MT【226】费马点两题
已知$z_1=2\sqrt{3}i,z_2=3,z_3=-3,|z_3-z_4|=2\sqrt{3},$则$|z_1-z_4|+|z_2-z_4|$的最小值为_____ 提示:费马点最小,取$Z_4( ...
- Rsync 客户端配置
安装rsync服务yum -y install rsync 创建密码文件rsync.passwordvi /etc/rsync.password只存储密码即可,无需用户名.密码为Rsync服务器端的/ ...
- 自学Linux Shell2.1-进入shell命令行
点击返回 自学Linux命令行与Shell脚本之路 2.1-进入shell命令行 进入文本命令行界面(CLI)两种方法: 控制台终端 图形化终端 1. 通过Linux控制台终端访问CLI 按下Ctrl ...
- luogu1712 区间 (尺取法+线段树)
先把区间按照长度从小到大排序,然后用尺取法来做 大概就是先一点一点把区间算上 直到某个点被覆盖了m次,然后一点一点把最前面的区间扔掉,直到没有点被覆盖m次,这样反复做(相当于是它选择的区间左右端点在那 ...
- 【LOJ#10002】喷水装置
题目大意:给定一段区间 [l,r] ,N 条线段,求至少用多少条线段能够覆盖整个区间,不能覆盖输出-1. 题解:每次在起点小于当前位置的线段集合中选择有端点最大的位置作为下一个位置,并更新答案,如果当 ...
- 【POJ2248】加法链 idfs
首先,在这道题的搜索框架中,在对每一位进行枚举时,复杂度为\(O(n^2)\),但是可知最优解序列的长度不会太长. 其次,采用 \(bool\) 类型返回值时,是一种存在性搜索,并不一定能够得到最优解 ...
- python(五)——运算符
1.成员运算符,判断某个东西是否在某个东西里包含:in,not in name = "abcd" if "ac" in name: print("ok ...
- 2018.10.19浪在ACM 集训队第一次测试赛
2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...
- 焦点监听事件FocusListener
public class Demo extends JFrame { public Demo() { setBounds(100, 100, 200, 120); setDefaultCloseOpe ...