应急响应|记一次对lsp钓鱼的木马分析

应急响应|记一次对lsp钓鱼的木马分析

cf2775cf072d11b9205a415fa5a2c0fb

你看,健康上网多重要

来一段介绍

首先,这个东西我是无意发现的,那是一个平静的一天,我打开一个正常的网站,发现了这个让众多lsp 不会平静的病毒诱饵。

1642555929325.png

然后,本着无聊就简单分析一下的心态,我下载了它。PS:真的是无聊才下载的。

咳咳,为了方便过审,我重命名这个样本为test.exe。

文件名 MD5
test.exe 21a08a30b02b395c375616936e756a1d

扯皮结束,开始分析

拿到样本还是要分析一下的。首先拿到这个样本时,通过样本名称就大致知道这个样本多半会伪装为视频或者播放器之类的,解压后,嘿,雀食。

1642556007592.png

通过图标可以发现,这里利用一个类似视频播放器的图标进行伪装,隐藏的一点都深。

使用DIE 查看样本,发现时UPX 加壳,不多说,脱它。

1642556025132.png

UPX 的壳可以使用UPX 官网下的程序进行脱,也可以手动脱,这个壳比较简单,这里就不详细说明怎么脱了。

1642556046712.png

脱完后,OEP 定位到0x40F80C 并dump 出文件,修复IAT 后,就可以使用IDA 进行静态分析。

首先,打开IDA 并将dump 的文件(这里叫test_dump.exe)打开进行静态分析。

首先是可以看到,样本会打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ODBC 并在返回成功后进入接着执行后续代码。

在之后的代码中,使用了大量形如一下代码结构的花指令干扰IDA 分析

  1. call _CxxThrowException
  1. mov eax, next_eip_value
  2. ret

该花指令通过先跳转到异常处理函数并在执行异常处理函数的代码后回到下一条地址处接着执行,在IDA 使用反编译时,会因此受到干扰,无法正确反编译代码。直接匹配特征去花:

  1. #include <idc.idc>
  2. static main()
  3. {
  4. auto head, op, code,i;
  5. head = NextHead(0x00000000, 0xFFFFFFFF);
  6. while ( head != BADADDR )
  7. {
  8. op = GetMnem(head);
  9. code = GetOpnd(head,0);
  10. Message("--> %8x : %s %s\n",head, op, code);
  11. if(code == "_CxxThrowException")
  12. {
  13. //SetColor(currEA, CIC_ITEM, 0x010187);
  14. for(i = 0; i<5;i++)
  15. {
  16. PatchByte(head+i, 0x90);
  17. }
  18. }
  19. if(code == "eax" && op == "mov")
  20. {
  21. auto asmCode = GetDisasm(head + 0x5);
  22. if(asmCode == "retn")
  23. {
  24. //SetColor(currEA, CIC_ITEM, 0x010187);
  25. for(i = 0; i<6;i++)
  26. {
  27. PatchByte(head+i, 0x90);
  28. }
  29. }
  30. }
  31. head = NextHead(head, 0xFFFFFFFF);
  32. }
  33. }

当然,这个脚本是针对这个样本随便写的,遇到类似的样本或者其他的花指令,不能使用这个去,要不然出大问题。

出来这种静态去花之外,也可以直接动态调试,只是在理解整个代码的所要完成的工作的时候,较于直接分析比较打脑壳。不过小孩子才做选择,我都要【doge】

配合动态调试和IDA 静态查看,可以看到样本后续会通过解密一段PE 数据并加载到内存后定位到函数Shellex 处接着执行。

解密PE数据

1642556078574.png

解密算法如下:

1642556100317.png

在解密出PE 数据后,我们dump 出一份数据到桌面并命名为dump.bin

文件名 MD5
dump.bin 21bea12a54bc431003ebc3e7b5b7d75a

这个文件先暂时放一边,接着分析test_dump.exe.

在解密出dump.bin 并将其加载到内存空间后,通传入的Shellex 函数名字符串获取该函数地址并调用。

1642556115882.png

之后,在调用完成后,退出程序。

自此,test_dump.exe 程序功能分析完成,该程序主要就是一个加载器,通过解密自身携带的被加密的PE 结构数据并在解密完成的数据加载到内存后,调用指定函数执行后续功能。

接着就分析刚刚解密获得的dump.bin 文件,同样的,将文件拖入IDA 查看,可以知道这个文件是一个DLL 文件,并且导出上面提到的Shellex 函数以及DLL 函数入口函数。入口函数未实现任何功能,功能都在Shellex 函数内进行实现,所以后面就是从Shellex 函数作为入口点开始分析。

首先进入到Shellex 函数后,程序会初始化一些字符串到指定的内存,这些字符串包括所创建的服务名称、用户界面标识服务字符串、被加密的诸如版本号和C2 地址的字符串等。

1642556143980.png

  1. "tLPQtLS60L230LW1vaY=" // 23.224.97.119
  2. "pg=="
  3. "6gkIBfkS+qY=" // Default
  4. "tdC2pg==" // 1.0
  5. "PhXDxphx Qiyqh"
  6. "MeumeuDR Nevnevne Wnfwnfwn Gwog"
  7. "SkcsDRkbsk Ctlctkctk Duldtld Umeumdum Evn"
  8. "62970fcf3ea2b1319dd5c8e9116d7060"
  9. "%ALLUSERSPROFILE%\\Application Data\\Storm\\update\\"
  10. "PhxphFVX64.exe"

接着,创建互斥体,互斥体名称为Global\[module_path],其实,在这里就可以大致可以确定该样本家族:Gh0st.

1642556167319.png

之后获取当前程序执行所处时间并格式化写入到注册表中供之后代码使用。

1642556186448.png

此外,在分析中还发现该RAT 程序包含多种启动方式,如注册表启动、通过命令启动、通过服务启动、通过开始菜单启动等。在RAT 重新执行中,通过检测配置信息,对启动方式进行设置。如判断命令行内是否存在字符串“-acsi”。

1642556203307.png

通过判断是否存在对应服务以及判断服务是否正在执行进行服务启动。

1642556222139.png

如果上面两种情况都不满足,程序便会创建对应的服务并且复制当前模块文件到update 路径下,之后结束当前程序的执行,启动所创建的服务实现程序的启动。

1642556235040.png

此外,样本会以多种方式实现启动,包括使用服务启动、开始菜单进行启动、注册表启动以及文件绿色启动。

1642556252716.png

程序在运行中,还会通过匹配大量杀软进程的名称检查杀软。

1642556265694.png

1642556297271.png

该程序通过解密之前设置的字符串,得到C2 地址并与之创建链接实现通信。

1642556313692.png

解密函数如下:

1642556330561.png

在获取C2 地址23.224.97.119 后与之建立连接,实现通信。

1642556351497.png

通过接受服务器回传指令实现,通过分析,得到指令列表大致如下:

指令 功能
1 记录计算机磁盘和文件信息
A 获取计算机服务状态和服务配置信息
B 检测指定进程是否运行
C 检测指定窗口是否存在
0x10 实现屏幕远程
0x27 运行指定程序
0x28 结束指定进程的执行
0x29 清除IE 信息
0x2A 获取Chrome 数据
0x2B 获取Skype 数据
0x2C 获取Firefox 数据
0x2D 获取360 浏览器数据
0x2E 获取QQ 浏览器数据
0x2F 获取搜狗浏览器数据
0x30 向服务器传输获取的浏览器数据
0x3F 获取键盘操作记录
0x45 向服务器传输实时录音数据
0x48 获取计算机系统信息
0x5A 显示消息弹窗
0x5D 远程退出、注销、重启系统
0x5E 打开驱动相关服务
0x5F 停止并删除驱动文件
0x60 获取系统日志
0x64 实现远程控制系统
0x72 远程下载文件并执行
0x74 关闭相关进程并删除文件
0x75 设置分辨率
0x76 创建插件文件并执行
0x7F 打开3389相关服务

1642556369172.png

溯源

该样本在互斥体创建、数据解密、行为逻辑上与Gh0st 远控高度相似。

1642556381521.png

总结

洁身自好,没事别瞎下载一些奇奇怪怪的文件。

06a733e82a2268b6813e289f0cce57a3-1

本文来自投稿,不代表安强科技社区立场,如若转载,请注明出处:https://community.anqiangkj.com/archives/3501

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年1月23日 上午1:38
下一篇 2022年1月23日 下午9:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。