LatentBot是一个用Delphi编写的多模块木马,从2013年开始就有了。最近,我们捕获并剖析了RIG Exploit Kit分发的一个样本。
主要可执行文件是一个持久的僵尸网络代理,它下载了其他模块并报告了对其命令和控制服务器的执行活动。根据已安装的模块,LateNtBot具有各种功能,包括:
- 作为一个键盘记录器和窗体抓取器
- 偷饼干
- 从受害者系统运行袜子代理
- 远程访问攻击者(VNC /远程桌面)
在这篇文章中,我们将通过分解几层模糊和加密来描述这些模块,以揭示它们的真实性质。
分析样品
- 011077A7960FA1A7906323DBDC7E3807-原始样品,在活动中分发
- 85年dcf88487ea412fe4960494713eed6b- 打开包装(装载机)
- 60 c3232b90c773ed9c4990da7cc3bbdb- - - - - -注入Svchost.
- e105d87cb79ed668c8b62297259a4dbb- - - - - -注入Iexplore.
- 60 c3232b90c773ed9c4990da7cc3bbdb- - - - - -注入Svchost.
- 85年dcf88487ea412fe4960494713eed6b- 打开包装(装载机)
下载模块,注入Svchost.:
行为分析
部署后。原始示例安装自身并从原始位置删除样本。它注射了Svchost.初始模块(60 c3232b90c773ed9c4990da7cc3bbdb).该模块执行另一个注入(模块:b622a0b443f36d99d5595acd0f95ea0e) -进入internetexplorer (iexplore.exe.):
注入的模块iexplore.exe.process负责与CnC建立连接并下载子模块。
在这个阶段,LatentBot创建两组注册表项:
... \ Software \ Google \ Update \ Network \ Secure
在命名为“0”的密钥中,存储初始PE文件:
另一个,添加了加密密钥:
...\ \ Adobe \ Adobe Acrobat软件
关键下的数据“在“通过自定义算法加密,典型的延迟塔,将进一步描述(它可以通过专用的应用程序).解码后,它给出了恶意软件所安装的路径,即:
C:\用户\ tester \ appdata \ local \ microsoft \ windows \ shfdnoh.exe
如果CNC处于活动状态并且BOT管理下载子模块,则运行将注入新实例Svchost.:
主模块已使用参数部署:-l mxn4viazcd.
此参数指定机器人所属的组ID(也由潜在Bot的自定义加密加密)。
MxN4ViazcD - - - >第1组
此外,与新模块相关的注册表项被添加到:
... \ Software \ Google \ Update \ Network \ Secure
解密的模块名称是非常描述性的:
ftufju5xp3c - >Formgrab.hdtWD3zyxMpSQB - - - >Bot_Enginel551X + rNDh3B4A - >Found_CoreQdG8eO0qHI8 / Y1G - >send_reportQdW / DoI2F9J - >安全RRrIibQs + WzRVv5B + 9 iiys + 17 huxid - >remote_desktop_serviceVRWVBM6UtH6F + 7 ucwkbkpb - >vnc_hide_desktopw97grmo - >袜子
一些模块正在受害者机器上收集数据,并以加密的形式将它们保存在%TEMP%目录中:
此外,它们正被上传到CnC。
坚持
潜在机器人的基本持久性很简单。初始样本被复制到:
当地C \[当前用户]\ AppData \ \微软\ Windows \ < random_name > . exe
它在每次系统启动时都被执行,这多亏了一个简单的Run键:
运行主模块后,它负责解密来自注册表并加载它们的所有子模块。
网络通信
通过发送信标,机器人开始与CNC的通信。如果标志成功,它就开始在加密表单中下载其他模块。他们假装是。压缩文件:
信标由两种算法编码:Latent的自定义加密算法和Base64算法:
qwrsn2srdjlxuuddyvp0atbmuzl2cstzy0por3vkwlntc3q1vzduwlj2shz6qjjjhnetutfo3runobvlokzjmbde0twxbuxr2nxdxelbtsk1aednanvrlavdzdfvhzg5ik0jwcep3nkfxvtlvc3jywpka3vztnlsbue =
Base64解码:
Adl7k + v9qQGCaZti0LS9vq + scJNGudZSmst5W7nZRvHvzB2a4KnLZ7EChmYN + 2 ll14mlaqtv5wqzpmjmzx3z5teiwstuadnh + BppJw6AWU9UsrIajJkusNyRmA
潜在的自定义解码:
论坛?Datael = US-70-789548274695&ver = 5015&ver = 5015&os = 5&acs = 1&x64 = 0&gr = group 1&wondam = mxmgkuusrfqdotm
如我们所见,它包含有关受感染机器的数据,以及组名和一个随机令牌。
但是,并非所有通信都是加密的。一些进一步的请求非常详细。每个操作的名称由字符串中的字母标识为大写字母。例子:
客户端通过HELLO命令向服务器发送信号。作为回报,CnC会给它一个cookie,进一步用作ID。客户端和服务器之间发布的内容是加密的:
分析流量,我们可以发现机器人发送到CNC一些被盗的数据,包装为机柜格式。内部内容通过自定义加密算法进行加密,典型为延期,稍后将描述。文件上载使用HTTP PUT方法:
内部
潜伏机器人的原始样本,是在活动中分发的,带有一个密码器。在移除第一层之后,我们得到一个带有以下sections结构的加载器:
所有使用的字符串都是模糊的-特定的字符串块被移动到连续的变量:
主要元素的基本作用是注入svchost.exe..在纪念svchost.exe.,另一个PE文件被解压缩并加载:
如果我们转储这个文件,就能找到另一个阶段。从这个元素开始,潜伏机器人的所有其他部分都有一些共同的模式。它们是用Delphi编写的,它们的字符串被同一组函数混淆了。例子:
为了破坏这种混淆,我准备了一个专门的IDA脚本(latent_dec.py.).没有使用其他混淆技术,因此在应用它之后,代码看起来更加理解:
另一件事,典型的atpentbot的作品是相关模式下的资源。当前的样本配有2个资源:CFG和R.两个都是加密的:
此元素解包另一个模块(b622a0b443f36d99d5595acd0f95ea0e),这一次被注入Iexplore..新模块的资源结构与前一个模块类似。它的CFG文件包含字符串加密的算法典型的bot:
该元素的配置包含bot组ID和CnC地址:
MxN4ViazcD -> Group 1 j5kmNVnZPcAt18wWBH3kfMOzGQ6ENA -> http://104.232.32.101/
模块
LatentBot的主要元素是一个下载和管理模块的引擎。LatentBot的每个模块都有一些不同的任务要做。总的来说,它具有典型的RAT病毒和窃取者的功能。对于不同的示例,下载的子模块是不同的。在分析的元素中,获取了以下名称的元素:
- Formgrab-128521-2
- bot_engine - 641712 - 8
- found_core - 147200 - 2
- send_report-325310-77
- 安全-945874-2
- remote_desktop_service-828255-2
- VNC_HIDE_DESKTOP-590642-47
- 袜子-400578-2
让我们看看其中一些......
BOT_ENGINE模块
作为名称状态,这是机器人的主模块。它负责与C&C的通信并加载插件。
它指纹环境并将收集的数据发送到CNC。
“tkNFKRA”- >“版本= '“tA8OqC”——>“os =”“t4M5zB”——>“av = "“t4c85aF”——>“acs =“tct4rwD”- >“x64 =“tgszOD”- >“gr =“tMc36A“- >”,= W4“t89KWAf3QyCh”- >“插件=“to8KKL6mYGs8”- >“&errcode =“t08rKTC”——>“bk = 1”“t08rKXC”——>“bk = 0 ' ' tEMeVgHimC”——>“注意= 1”“tEMeVgHinC”——>“注意= 0 ' ' tsMSYj / L ' - > ' dom = 1”“tsMSYjvL”- >“dom = 0”'tw9sex5WXDzsMB' -> '& socklog =' 'tk9H0psjw5Wv' -> '&vncpass=' 'tkNGWE8KNC+N' -> '&vidtype='
示例 - 检查安装的AV产品:
专用函数包含已选中的目录的长列表,即。
该模块通过执行各种命令,给予攻击者对受害者环境的远程控制,例如:
'/ tkvxgfblb' - >'testapi''slx6nffi' - >'get_id''5j5en0wp9a' - >'重启''4fea7fftrci' - >'shutdown''nxry + d / e' - >'logoff''slx6nlvh9et / qqi2eupf9d'- > 'get_label_engine' 'slx6nLVh9Et / qOCYBWP' - > 'get_label_load' 'slx6n7kxqMcKNsq0UkmG' - > 'get_plugin_list' '7hfCrPhOfgfTX28h8TZS' - > 'plugin_stop_all' '7hfCrPhOfkfbTM6EplCNCN1d' - > 'plugin_restart_all' '7hfCrPhOfg + PtNcXVAc8JLsPUA' - > 'plugin_clear_storage''41l3p17Xus / kRtagq7ObrZEM / WucXWH ' - > 'stop_engine_and_plugins' '+ FJV1v6mXl5SW7r8cB' - > 'uninstall_all' 'slx6njktomFaQ0F' - > 'get_version' '7hfCrPhOfgfTX2M' - > 'plugin_stop' '7hfCrPhOfkfbTM6EplC' - > 'plugin_restart'' 7hfCrPhOfgfTX28h8bppqx + BZM / CQDXSnB“ - > 'plugin_stop_and_uninstall' '7hfCrPhOf4vfz5NHktwwJB' - > 'plugin_uninstall' '7hfCrPhOfgfTZiCd' - > 'plugin_start' '7hfCrPhOfgfTZiCdhJwYvUM' - > 'plugin_start_auto' '7hfCrPhOfgfTX28h83I9CD' - > 'plugin_stop_autox' 'slx6n7kxqMcKNsazBUKWvC' - > 'get_plugin_start' 'o5SQ6EkjlBwmdJhahA' ->'clear_cookies'
示例 - 窃取和清除Cookie的功能的片段:
完成任务后,它还发送有关操作状态的报告:
安全模块
该模块对各种安全产品执行扩展环境检查。查看资源,我们可以找到三个元素:dfx,vbl,fdl包含典型方式加密的字符串列表:
解密它们提供了广泛的选中路径列表:DFX.那轮式侦察车,和模块(EXE,DLL,SYS):FLD.
Formgrab模块
与其他模块相比,这个模块不包含字符串或API混淆。
我们可以发现它抓取窗口字段的内容:
敲击键盘:
foud_core模块
这是唯一已用C ++代替Delphi编写的模块。它附带了Visual Studio添加到Windows项目中的默认图标。
它是原始名称是Installer.exe,它导出各种功能,可用于将注入到64位应用程序中:
它具有与其他模块不同的各种功能,即缺少字符串混淆。通过调试字符串报告执行的操作,它将在二进制中作为打开文本存储在二进制中,即
2017年2月的这个可执行点的编译时间戳:2017年:02:28 18:21:01 + 01:00。在过去几年中未观察到此元素,因此可能确实增加了今年,以扩展LateNtBot的注射能力到64位进程。
结论
LatentBot已经存在好几年了,但是,看看我们可以发现的模块,它仍然在积极地维护。分布式包是新旧模块的混合。
这个机器人的作者在恶意软件开发中并不是很进一步。他们在Delphi中编程并使用一些现成的模板。此外,他们使用的混淆可以很容易地击败。然而,他们提供了一个非常丰富的特征和易于扩展的机器人,因此它仍然构成了严重的威胁。
附录
https://www.cert.pl/news/single/latentbot-modularny-i-silnie-zaciemniony-bot/-波兰CERT on LatentBot(2016年12月)
https://www.fireeye.com/blog/threat-research/2015/12/latentbot_trace_me.html——《火眼大战LatentBot》
https://cys-centrum.com/ru/news/module_trojan_for_unauthorized_access- CYS CENTRUM报告(2015)
这是由Hasherezade,独立的研究员和程序员撰写的客座帖子,具有强烈的Infosec。她喜欢详细说明恶意软件并与社区分享威胁信息。在Twitter上检查她hasherezade.和她的个人博客:https://hshrzd.wordpress.com..
评论