AgentTesla样本分析

AgentTesla样本分析

md5:fa548af33ac073be63464186b33198aa
在这里插入图片描述

行为分析

存在混淆在这里插入图片描述
使用exeinfo pe查壳,Eazfuscator.NET工具进行混淆。
在这里插入图片描述
使用de4dot去混淆
在这里插入图片描述
跳转到入口点分析
在这里插入图片描述
跟进YodaCoffeeShop类进行分析
先运行得是方法外的部分来进行环境变量得准备。
在这里插入图片描述
之后运行构造函数,构造函数在创建对象时自动执行,进行初始化工作。
在一些控件对象的准备后是实例化class3类,跟进分析。
在这里插入图片描述
跟进method_0方法中,先执行class20.smethod_4方法
在这里插入图片描述
获取资源文件
在这里插入图片描述

解密资源字节流得到dll载荷并加载

在这里插入图片描述通过使用基于 HMACSHA1 的伪随机数生成器来基于密码 “newworldorder” 派生密钥并存储在第二个参数 new byte[8] 中,第三个参数是生成密钥的迭代次数 。

RijndaelManaged 是一个实现高级加密标准 (AES) 的类,可用于加密和解密数据。
设置加密密钥Key和IV向量。
CreateDecryptor() 获取解密器。最后用 TransformFinalBlock来附上从Encrypted2 资源获取的加密流进行解密转换。

获取到解密流后通过 Copy 除去开头一些混淆用的 16 字节冗余数据后返回,确定解密出的数据是dll文件。
在这里插入图片描述
之后load 1800字节大小的dll在这里插入图片描述

method_1调用dll的Register方法,参数1是资源,参数2是资源管理集MycoffeeProject,从method_1中单步进入到dll中,
在这里插入图片描述
因为方法只是return false或者true,则修改方法名。
case 3:
获取资源,返回的是一个从指定的现有图像初始化的botmap类实例。
在这里插入图片描述
经过两层解密,得到pe文件,
在这里插入图片描述
在这里插入图片描述
加载解密出的exe文件并获取程序的入口点
在这里插入图片描述

在这里插入图片描述

dump exe 分析

使用相同的混淆,使用de4dot去混淆
在这里插入图片描述

调用 Assembly.GetEntryAssembly 可以拿到当前调用的入口函数所在的程序集
Assembly.GetEntryAssembly().Location获取当前调用的入口函数所在程序集的文件路径。
class3.string_4:xphBnwWXEWSZ,创建对应名称的互斥体。
在这里插入图片描述
根据int_x的值执行后续的流程。
在这里插入图片描述
跟进看到int_x的值是从string_2来的
在这里插入图片描述
通过split分割string_1的值获得string_2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从资源中获取xml数据,获取当前计算机用户名和临时文件路径,replace替换xml文件中的userid变量和location变量,将替换后的xml写入临时文件。
在这里插入图片描述
以隐藏窗口方式启动schtasks.exe进程创建计划任务。

之后获取ef3MQpgrT资源后经过两层解密得到pe文件

在这里插入图片描述
将解密出的pe注入到以自身创建的一个挂起进程
CreateProcess()---->GetThreadContext()---->ReadProcessMemory()---->NtUnmapViewOfSection()---->WriteProcessMemory()---->SetThreadContext()---->ResumeThread()---->Process.GetProcessById()---->processById.Kill()

在这里插入图片描述
将解密出的pe dump出来分析

2.dump 窃密文件分析

在这里插入图片描述
MD5:fa548af33ac073be63464186b33198aa

\u200f:解密字符串

在这里插入图片描述
跟进\u200f,先获取一个对象实例,\u206A函数中都是uint数组,存放的是加密的数据和解密的密钥。
在这里插入图片描述
解密操作,跟进\u206B
在这里插入图片描述
\u206B:Rijndael算法,设置key和iv向量,创建解密器,进行解密。
在这里插入图片描述
在这里插入图片描述
获取计算机用户名,环境变量,本地路径,
在这里插入图片描述
运行kqc-kqv次sleep函数,
在这里插入图片描述
创建线程并以后台模式运行,线程函数:与注册表操作相关,
在这里插入图片描述
禁用注册表

在这里插入图片描述
修改host文件
在这里插入图片描述
反调试:

System.Timers.Timer timer = new System.Timers.Timer();      //初始化 Timer 类的新实例,并将所有属性设置为初始值。
timer.Elapsed += kqb.kdv;       //达到间隔时发生的一个处理程序,这是一个函数。这个是反调试的检测时间函数。
timer.Enabled = true;       //默认重复触发事件
timer.Interval = 30000.0;   //设置30秒重复一次
timer.Start();          //开始引发 Elapsed 事件。

判断文件是否存在。
在这里插入图片描述
获取公共存储库目录,批量生成要检测的浏览器的路径,add进list2中
在这里插入图片描述

浏览器:
"Opera Browser"
"Yandex Browser"
"360 Browser"
"Iridium Browser"
"Comodo Dragon"
"Cool Novo"
"Chromium"
"Torch Browser"
"Amigo"
"Brave"
"CentBrowser"
"Chedot"
"Coccoc"
"Elements Browser"
"Epic Privacy"
"Kometa"
"Orbitum"
"Sputnik"
“Uran”
"Vivaldi"
"Citrio"
"Liebao Browser"
"Sleipnir 6"
"QIP Surf"
"Coowon"

qbu分析

拼接出两个路径:+\Login Data和 +\Default\Login Data,Login Data路径下存在SQLite数据库文件,包含浏览器的登录信息。
判断是否存在浏览器的目录。
在这里插入图片描述
如果存在浏览器文件夹,用Directories()得到浏览器所在路径的文件夹下面的所有文件夹以及路径。

在这里插入图片描述

判断子路径下是否包含profile字符串。edge浏览器的路径下不存在profile字符串。
在这里插入图片描述
判断\Login Data和 +Default\Login Data文件夹是否存在

从|Local State中获取Local Data 数据的加密密钥:读取文件,解密出字符串,
在这里插入图片描述
正则匹配到密钥,base64解密密钥。
在这里插入图片描述
使用api,利用获取的解密密钥,解密字段。
在这里插入图片描述

获取wifi配置
在这里插入图片描述

对程序窃密,如openvpn,FtpGetter,claws-mail,winscp等
在这里插入图片描述

coreftp
在这里插入图片描述
窃取到的数据都存在list列表中,如果list列表不是空的,则遍历获取窃密的信息,加入标识符按照格式写入。

在这里插入图片描述

传输窃密数据

根据zml的值选择不同的传输方式。
通过smtp传输数据
数据html格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过ftp传输
在这里插入图片描述

通过http传输
在这里插入图片描述

窃密总结

浏览器360Chrome7StarAmigoBlackHawk
BraveBrave BrowserCentBrowserChedot
ChromeChromiumCitrioCocCoc
Comodo DragonCoolNovoCoowonCyberFox
EdgeElementsEpic PrivacyFalkon Browser
FirefoxFlockIceCatIceDragon
IridiumK-MeleonKometaLiebao
OperaOrbitumPaleMoonPostbox
QIP SurfQQ BrowserSafari BrowserSeaMonkey
Sleipnir 6SputnikSRWare IronThunderbird
TorchBrowserUC BrowserUranVivaldi
WaterFoxYandex
电子邮件ClawsMaileM ClientFoxmailIncrediMail
MailbirdOpera MailOutlookPocoMail
TheBat
FTPcftpCoreFTPFileZillaFlashFXP
FTP NavigatorSmartFTPWS_FTP
远程连接RealVNCTigerVNCTightVNCUltraVNC
WinRDPWinSCPWinVNC3
VPNNordVPNOpenVPNPrivate Internet Access
即时通讯PaltalkPsi/Psi+Trillian
其他软件DynDNSJDownloaderMySQL WorkbenchVitalwerks DUC
系统信息

行为总结

原始样本使用Eazfuscator 壳混淆,AES解密内嵌的资源得到dll文件,加载dll文件执行后定位图片资源经过第一层解析rgb数据,第二层与密钥异或两层解密得到exe文件,exe执行后获取xml文件资源,创建计划任务。从资源中两层异或解密后得到pe文件(窃密文件),进程镂空技术注入执行。

窃取系统数据,浏览器,电子邮件,ftp,远程连接工具,vpn账号,即时通讯软件等,通过smtp,ftp,http传输。

  • 29
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值