恶意样本分析实战——SmokeLoader

一、样本概况

MD5:72ceccc9998a49d984bf8648262304f5

文件名称:bingdu.exe

文件类型:PE32

是否加壳:无壳

编写语言:C++

IOC

IP

URL

138.201.88.153

恶意远控

http://138.201.88.153:8998

沙箱检测结果

微步沙盒检测结果

初步判定样本为恶意远控,SmokeLoader家族木马

使用到的工具:

X32dbg(以及ollydump插件),IDA,火绒剑,DIE等

虚拟分析环境:

win10 虚拟机

样本恶意行为:

枚举进程模块

查询系统信息,包括用户名和计算机硬件信息

向远控IP发起HTTP post请求

存在的问题:

推测可能是样本具有反虚拟机的特性

二、详细分析:

在IDA中查看winmain反编译之后的代码,主要有两个call调用,

1. call sub_40CD60

发现内部存在大量的混淆逆向分析的无意义的代码

类似于:

在尾部找到了关键代码

以下是关于这些子函数的具体说明

sub_40C9C0

sub_40C9C0:返回加载到进程空间中的kernel32.dll 中的VirtualProtect的地址,用于修改内存的属性

BOOL VirtualProtect(
  [in]  LPVOID lpAddress,
  [in]  SIZE_T dwSize,
  [in]  DWORD  flNewProtect,
  [out] PDWORD lpflOldProtect
);

此处通过VirtualProtect将以dword_2CC6B8C为基址,大小为71944字节的内存属性修改为可读可执行

在堆栈区观察传入的四个参数

内存基址是dword_2CC6B8C中保存的数据0x0302A260

内存大小是0x00011908,也就是71944字节

要修改的内存属性为:0x40,即可读可执行

sub_40CD30

初步判断该函数可能是用来干扰逆向人员分析的

sub_40CA60

在循环体中,能够被执行一次,查看具体的内容

该函数的作用是改变dword_2CC6B8C中保存的值

sub_40CB60

该函数载入msimg32.dll

2. call dword_2CC6B8C

在X32dbg中动态调试,获取到动态导入的函数

首先F7步进call bingdu.[2CC6B8C],

再步进第一个call,

然后步过第一个call,在堆栈区获取到动态载入的函数地址,

在步过的代码处调用LoadLibrary和GetProcAddress获取函数地址

拍摄进程快照-枚举模块

调用CreateToolhelp32Snapshot获取进程快照

根据传递的第一个参数猜测之后可能是枚举模块

并且在动态导入的函数中有Module32First

数据解密

之后对02E5E200处的数据处理,循环次数为0xA1C9

VirtualAlloc分配空间

向申请的空间中写入数据

在申请的空间写完值之后,跳转到分配空间的基址处执行

申请空间的写入的代码的具有哪些功能呢?
向0x00400000处写数据

call 0X2E80CCE将00400000处大小为0x1E000的内存部分清零

之后将02EA0000处大小为400的数据写入0x00400000中,之后跳转到eax处执行

该样本使用了LoadPe技术,自己实现了类似于Createprocess 把第二个进程的代码拷贝到00400000

使用ollydump将其转储

转储得到的文件命名为 olly_dump.exe

3. olly_dump.exe

动态初始化

在olly_dump.exe中依然存在很多混淆指令

跟进sub_401000

该函数的作用是通过loadLibrary和GetProcAddress加载各种库和函数,完成初始化工作

检查互斥量

然后是一个互斥量的判断

条件语句实现的功能是:如果存在互斥体就结束,如果不存在则创建

网络行为
解密获取url

call bingdu.4127FD实现解密数据获得C2网址

连接C2

InternetOpen初始化应用程序对 WinINet 函数的使用

sub_40FB7C连接网络服务器

发起HTTP请求,请求类型为POST

request: POST http://138.201.88.153/

data: POST / HTTP/1.1 Accept: */* Content-Type: application/x-www-form-urlencoded; charset=utf-8 User-Agent: Zadanie Host: 138.201.88.153:8998 Content-Length: 102 Connection: Keep-Alive Cache-Control: no-cache

三、总结:

1.样本的基本执行流程

2.该样本中存在大量的混淆花指令,给分析人员的逆向工作增加了难度

3.应对措施:

  1.  
    1. 保持更新的安全知识:随时了解最新的无文件病毒攻击技术和防护措施,以保持对抗无文件病毒的能力。
    2. 及时响应和清除:一旦发现无文件病毒的存在,立即采取行动,隔离受感染的系统,并使用专业的工具进行彻底的清除和修复。
    3. 监控系统活动:定期监控系统日志和活动,以及使用安全信息和事件管理系统(SIEM)等工具来检测和响应无文件病毒的活动。
    4. 定期备份数据:定期备份重要数据,并将备份文件存储在离线和安全的地方,以防止无文件病毒对数据的损坏和勒索。
    5. 使用行为分析工具:使用行为分析工具来监测系统中的异常活动,例如不明进程、异常的网络连接等,以及检测无文件病毒的行为模式。
    6. 加强员工安全意识:教育和培训员工如何识别和避免钓鱼邮件、恶意链接和下载可疑附件,提高员工对无文件病毒的意识。
    7. 强化网络安全:使用防火墙和入侵检测系统(IDS)等工具来监控和阻止无文件病毒的入侵。配置强密码和网络访问控制,限制外部访问。
    8. 使用应用程序白名单:配置应用程序白名单,只允许运行经过授权的可信应用程序,以阻止未经授权的无文件病毒执行。
    9. 更新操作系统和软件:及时安装操作系统和软件的安全补丁和更新,以修复可能存在的漏洞,减少被无文件病毒利用的风险。
    10. 使用高级安全软件:选择一款具有高级防护功能的安全软件,例如终端安全解决方案    或高级终端保护软件。这些软件通常具有专门针对无文件攻击的检测和防护机制。

 参考博客:

某病毒样本实战分析篇 - 『病毒分析区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cnicon-default.png?t=N7T8https://www.52pojie.cn//thread-1822151-1-1.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tntlbb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值