疫情背景下通过钓鱼邮件传播的LokiBot间谍软件分析 – 作者:leesinc1

概述

疫情背景下,黑产团伙正通过钓鱼邮件传播LokiBot间谍软件。攻击者将钓鱼邮件伪装为美国一家公司的业务咨询邮件以诱导用户点击打开附件。邮件正文声称其公司在美国有十多年的仓储和分销经验,业务范围遍布全国各地,并且希望大量采购贵公司产品进行销售,提示附件为最新的报价单,诱导用户打开。邮件署名处显示公司地址为美国马萨诸塞州,官网地址为www.randalphusa.com,但是无法打开(人类迷惑行为)。

1592475993_5eeb41591ac72.png!small

该程序执行之后会窃取本地FTP软件、邮箱、浏览器等软件的机密信息(如用户名和密码)、修改注册表实现自启动并将窃取得到的信息发送至C2端。

样本分析

邮件7z附件解压后,是一个伪装成PDF文档的exe可执行文件,文件名为“RFQ#10098764.pdf.gz..exe”(以下简称RFQ.exe),文件名中含有的pdf和gz字样,企图规避某些基于文件扩展名的邮件防护策略并迷惑收件人。而实际的原文件名为“vmmWPu.exe”,外壳名为Elfie_city,采样C#编写。

1592476076_5eeb41acec739.png!small

1592476117_5eeb41d514af0.png!small

可以发现其中Base64Decoder、Class1和OIADHUPDIJGO(太长,这里略写,一下简称OIA类)这三个类比较特殊。

在OIA类中的MatrixData函数中发现一个疑似被加密过的Payload字符串。MatrixData函数会调用其他函数对Payload字符串进行切割、替换之后在进行Base64解码。

1592476169_5eeb42091c9e2.png!small

MatrixData函数的被调用关系如下:

1592476182_5eeb4216c57c2.png!small

在AHUHD函数中下断点进行动态调试,解密Payload之后,存储在一个数组中,将该数组dump下来发现其原文件名为SnakeLib.dll,其中有大量无用代码(疑似贪吃蛇小游戏游戏),企图混淆视线,如下图。

1592476199_5eeb422751cb2.png!small

回头继续调试,调用Assembly.load()方法加载解压得到的SnakeLib.dll。再通过Type.InvokeMember()方法调用SnakeLib里面的SearchFigure函数。

1592476280_5eeb4278a9115.png!small

跟进到SearchFigure函数内部,把“fkgjUOTgREFLdSWbjj”和“Elfie_city”作为参数,调用同一父类下的CoreAttributeSet()函数,读取RFQ.exe资源里面名为fkgjUOTgREFLdSWbjj的一张像素图。

1592476309_5eeb429549075.png!small

1592476320_5eeb42a007f10.png!small

再调用FigurePoint()依次提取图上数据,再用CutFigure()函数解密得到ReZer0V4.exe。

1592476372_5eeb42d4550a6.png!small

1592476382_5eeb42de73dbf.png!small

再动态加载ReZer0V4.exe,通过Assembly.EntryPoint获取程序集的入口点,再执行。

1592530105_5eec14b9cf69e.png!small

跟进到ReZer0V4.exe内部,发现代码被混淆过,混淆方式为Eazfuscator。

1592476400_5eeb42f0bde93.png!small

创建互斥量Mutex。

1592476412_5eeb42fc4e023.png!small

通过多次分段解密得到病毒核心程序。

1592476817_5eeb44917030a.png!small

解密得到待启动的傀儡进程名vbc.exe。再通过调用系统函数,获取当前程序语言(.net)的安装路径。

1592476913_5eeb44f1abcef.png!small

创建傀儡进程vbc.exe,并将注入核心程序。

1592476965_5eeb452516aa5.png!small

病毒本体关键代码如下,分为窃取信息、获得持久性、连接C2端、清空内存四个部分。

1592476979_5eeb4533a4c45.png!small

该病毒主要窃取各类浏览器、邮箱、即时聊天软件的凭据(如账户、密码)。在代码中预先设置路径,方便读取。

1592477014_5eeb4556158e3.png!small

1592477022_5eeb455e7c105.png!small

获取注册表MachineGuid的值,计算MachineGuid的MD5哈希值。

1592477057_5eeb458101156.png!small

1592477079_5eeb4597a6e32.png!small

1592477088_5eeb45a089ca9.png!small

截取MD5值的第8到第13位作为文件夹名称(3b4e38)在%APPDATA%下创建文件夹。

1592477115_5eeb45bbb23d1.png!small

获取当前进程的文件名及路径,在%APPDATA%\3B4E38下复制当前文件,文件名为MD5值的第13到第18位字符,然后删除当前进程文件。

1592477153_5eeb45e183ef5.png!small

存储在x区段,被3DES加密的C2地址。

1592477180_5eeb45fcda3a8.png!small

解密得到C2地址。

1592477236_5eeb46343e7d1.png!small

1592477245_5eeb463d180fd.png!small

修改注册表,实现自启动。

1592477273_5eeb4659e09ff.png!small

与C2通讯。

1592477298_5eeb4672c7680.png!small

远端的后台登录界面

1592477509_5eeb474514ffa.png!small

IOC

Hash-SHA256:RFQ#10098764.pdf.gz..exe6391be18aaabf9e3a9bdea5a9f57a06c4e1e7fedf41ba73211290fffe95be92a

rob1nsonus.cf/Obi/fre.php

104.28.12.175

104.28.13.175

*本文作者:浦发银行安全团队

来源:freebuf.com 2020-07-02 21:13:17 by: leesinc1

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论