Azorult变种病毒样本分析笔记

环境:

Win 7 x32 专业版

工具:

Exeinfope、火绒剑、PCHunter32、Wireshark、OD、IDA、ImpREC

样本信息:

文件: Shipping Documents_pdf.exe
大小: 585728 bytes
MD5: 39472797F6E85849B9FD0E3C5D939681
SHA1: 07395D87B1F558C968D83E2F546E9C9874C9B706
SHA256:11d68fdd3d5011259d6fb21d0366efa80a27bd68a8ae559e8c5cd3b67693c3fe
CRC32: B666D2BE

一题面试题,见笑了,如有错误请各位朋友斧正。
首先开始

行为分析

行为分析可能有些主观臆断,或者猜测,可能不准确或者是完全错误的,但是至少能给我们一点线索和思路
在这里插入图片描述
扫一下看看,没有发现特别的信息
拖火绒剑里看一下行为

在这里插入图片描述
好像试试和设置代理服务器有关,看一下参数
在这里插入图片描述
在这里插入图片描述
下载到了一个脚本
在这里插入图片描述
还有github的地址
在这里插入图片描述
在这里插入图片描述
还有一些可能是窃取浏览器信息的行为,但是却没有保存或者通讯的行为
在这里插入图片描述
打开了一些设备可能是在检查通讯状况
还有一些打开键值,打开文件的操作,感觉都是像在判断运行环境
然后运行一段时间就主动退出了程序
IDA静态分析了一下也没看出什么

使用OD动态调试看看吧,跑了几次,发现代码段会被改变,在代码下写入断点,没断下来,可能有反调试,然后尝试VirtualAlloc下断点有没有解密出新的PE,然后发现一直在申请,取消了,跑起来后发现代码段的写入断点断了下来
清0
在这里插入图片描述
在这里插入图片描述
重新写入
在这里插入图片描述
CALL0x41A1F8就没有返回了
在这里插入图片描述
设置为OPE,dump,然后修复IAT
在这里插入图片描述
修改完成后dump,下来发现
在这里插入图片描述
变成了Delphi的程序了
IDA看一下
在这里插入图片描述
其中两个应该是库函数,主要分析4186C4看看

获取了GUID
在这里插入图片描述
获取版本
在这里插入图片描述
在这里插入图片描述
处理完成后
在这里插入图片描述
像base64
在这里插入图片描述
在这里插入图片描述
解密出了个地址
在这里插入图片描述
在这里插入图片描述
解密
像是加密了
后面有一段是IDA没有反汇编出来的那段分析 大概流程是这样
InternetCrackUrlA 分解URI http://sg-fujitsu.com/oshimili/index.php
InternetOpenA 返回一个有效句柄 该句柄将由应用程序传递给接下来的WinINet函数
InternetSetOptionA 设置Internet选项 6=INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT
InternetSetOptionA 设置Internet选项 5
InternetConnectA 建立 Internet 的连接 sg-fujitsu.com 服务类型3=HTTP 成功返回非0
HttpOpenRequestA 创建HTTP请求句柄,把请求参数送到HTTP服务器 请求POST /oshimili/index.php
HttpSendRequestA 将指定的请求发送到HTTP服务器 发送的是上面获取的信息总的加密数据
InternetReadFile HttpOpenRequest函数打开的句柄中读取数据
InternetCloseHandle 关闭一个Internet句柄
call sub_417820()
sub_417820()

获取了 wsock32.dll 的函数
WSAStartup Windows异步套接字的启动命令
socket 创建套接字 参数:2 1 0
gethostbyname 回对应于给定主机名的包含主机名字和地址信息的hostent结构的指针 参数 :sg-fujitsu.com 这里获取失败了,可能域名失效了,成功了会进行一些socket通讯

在这里插入图片描述
这里下面调用了个gethostbyname获取失败了
不然可能有些socket通讯
struct hostent
h_name – 地址的正式名称。
h_aliases – 空字节-地址的预备名称的指针。
h_addrtype –地址类型; 通常是AF_INET。
h_length – 地址的比特长度。
h_addr_list – 零字节-主机网络地址指针。网络字节顺序。
h_addr - h_addr_list中的第一地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里对比了一个地址的大小来确定下面的恶意代码是否执行,但是地址是空的,判断失败了,经过回溯发现其实是

在这里插入图片描述
IDA里整体看这段
在这里插入图片描述
没看出来V162是传入sub17D84,但是在汇编里能看出来,这里IDA反汇编的有点错误
在这里插入图片描述
汇编里能看出来是传入了IDA里看到的V162,也能通过下面的参数推测出来
IDA对sub_41D84这个函数反汇编也有误,据我在OD里调试跟踪后面的流程大概是这样的
在这里插入图片描述
画出来的上面两步失败了,也就是请求没有返回相应的数据
在这里插入图片描述
现在有两个方法:
1.查找这个样本的攻击资料,然后自己搭设服务器尝试还原攻击
2.改掉判断,继续尝试分析
先尝试第一种
找到了一些资料,发现其实样本是Azorult病毒的变种:
最早发现在2016年,Azorult是一个特洛伊木马家族,通过垃圾邮件活动以恶意的宏文件形式攻击,近年攻击的频率非常高,而且变种非常迅速,攻击一般持续几天或者几个小时,攻击者搭设的主机就会失效。
但是从分析资料上来看,不论是攻击方式和病毒的架构,可以判断是同一个组织所为(据说组织为TA516),可以通过获取最新的样本的一些数据来尝试还原分析,或者直接分析最新的样本
这里由于时间的关系我选择第2种方法
改掉判断往下跑
在这里插入图片描述
解密的C2内容分为三部分。 </ n>标记内包含的部分包含48个用于信息窃取的合法DLL。 </ d>标记内的部分包含信息窃取的应用程序信息:应用程序路径,相关注册表和凭证文件名。 </ c>标记中的部分包含样本的C2配置,C2配置如下所示
在这里插入图片描述
“+”:启用特定的恶意功能。
“- “:禁用特定的恶意功能。
“I”:收集主机IP信息。
“L”:从远程服务器下载并执行文件

总的恶意行为大概分为12种,由于IDA反汇编的代码篇幅过长就不一下展开
1.窃取浏览器密码凭证;
2.窃取浏览器cookie、自动填充凭证,从FTP客户端、Email客户端窃取凭证;
3.窃取浏览器历史;
4.窃取比特币钱包;
5.窃取Skype聊天信息main.db;
6.窃取telegram凭证;
7.窃取steam凭证(ssfn)和游戏metadata(.vdf);
8.截图并发送给攻击者;
9.清除临时恶意软件;
10.从桌面收集文件;
11.发送GET请求到ip-api[.]com/json来获取主机IP信息;
12.下载和执行C2指定的文件;

信息偷取

在这里插入图片描述
样本会从32中浏览器中窃取凭证和用户数据,包括Chrome, Firefox和Qihoo 360等主流浏览器。为了从浏览器窃取凭证,样本会从C2响应中下载48个合法的dll文件到%AppData%\Local\Temp\2fd文件夹,是在sub_409668加载的
https://www.joesandbox.com/analysis/71598/0/irxml 在这里可以看到DLL的资料
在这里插入图片描述
这一动作的目的是加载nss3.dll和下面的函数:
sqlite3_open
sqlite3_close
sqlite3_prepare_v2
sqlite3_step
sqlite3_column_text
sqlite3_finalize
NSS_Init
PK11_GetInternal
KeySlotPK11_Authenticate
PK11SDR_Decrypt
NSS_Shutdown
PK11_FreeSlot
这些函数都用于复制敏感的浏览器信息。比如恶意软件会用sqlite3_*函数来获取Firefox浏览器历史信息,如下所示
在这里插入图片描述
使用nss3.dll中的APIs窃取Firefox敏感信息

下面是从保存的Chrome数据中窃取用户名和密码。恶意软件样本会在路径%LOCALAPPDATA%\Google\Chrome\User Data\下搜索Login Data。绕过搜索到,就复制Login Data文件到%AppData%\Local\Temp,并调用nss3.dll中的sqlite3_prepare_v2函数来窃取凭证
如下所示:
在这里插入图片描述
从窃取的浏览器凭证中选择字符串

恶意软件样本也会从前面提到的浏览器中提取cookie、书签和自动填充信息。凭证信息保存在PasswordsList.txt,cookies保存到CookieList.txt

样本还会从窃取以下加密货币钱包:
Ethereum
Electrum
Electrum-LTC
Jaxx
Exodus
MultiBitHD
恶意软件会找到含有加密货币钱包敏感信息的特定文件。比如,下面就是样本尝试在Coins\MultiBitHD中找到并发送mbhd.wallet.aes文件
在这里插入图片描述
恶意软件样本会从主流应用中窃取凭证和用户数据,包括Thunderbird, FileZilla, Outlook, WinSCP, Skype, Telegram, Steam。样本也会窃取桌面的文件。下面是样本从%appdata%\Telegram Desktop\tdata目录中找到D877F783D5*.map*文件来从Telegram中窃取敏感信息。
在这里插入图片描述
恶意软件样本会收集用户信息,包括当前进程,安装的软件,系统语言和时区。窃取的凭证和用户信息都会发送给C2。下面是收集的一些系统信息
在这里插入图片描述
恶意软件上传文件到C2响应中的路径。
发送GET请求到ip-api[.]com/json,来获取受害者主机IP信息。保存json响应到ip.txt。
收集以下信息,保存为system.txt:

机器GUID
Windows产品名
用户名
计算机名
系统架构
屏幕宽和高
系统语言
当前时区
CPU核数
调用CreateToolhelp32Snapshot来获取当前进程列表
显示版本
安装的软件(Software\Microsoft\Windows\CurrentVersion\Uninstall\)
获取当前账户权限
在这里插入图片描述
执行指定文件
攻击者可以通过Create Process或ShellExecute远程控制受感染的系统执行任意文件。恶意软件还访问恶意URL来获取文件
在这里插入图片描述
Azorult新变种还可以以本地系统权限执行恶意软件。通过以下逻辑来检查当前SID和token
如果当前级别是local_system
调用WTSQueryUserToken和CreateProcessAsUser来创建一个系统权限的新进程

检查SID和token
在这里插入图片描述
以本地系统权限创建进程
在这里插入图片描述
擦除痕迹和删除文件
恶意软件会擦除%temp%\2fda中的所有文件,并根据C2命令删除文件
在这里插入图片描述
根据C2命令删除文件
在这里插入图片描述
总结:
预防就是不要轻易打开不明邮件发送的文件,禁用office宏,及时升级系统和浏览器。
查杀可以通过MD5和静态字符串分析识别特征。

参考:
New Wine in Old Bottle: New Azorult Variant Found in FindMyName Campaign using Fallout Exploit Kit
https://unit42.paloaltonetworks.com/unit42-new-wine-old-bottle-new-azorult-variant-found-findmyname-campaign-using-fallout-exploit-kit/

Deep analysis of AZORult
https://blogs.quickheal.com/86983-2/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值