写点什么

针对一个有意思的钓鱼免杀样本的详细分析

  • 2024-08-06
    湖南
  • 本文字数:1018 字

    阅读完需:约 3 分钟

前言概述

近日跟踪到一个钓鱼样本,比较有意思,沙箱没有跑出行为,如下所示:

针对这种沙箱跑不出行为的免杀对抗型样本,都值得深入的分析和研究,笔者对这个样本进行了详细分析,分享出来供大家参考学习。

详细分析

  1. 钓鱼样本解压缩之后,如下所示:

  1. MACOSX 目录下的文件信息,如下所示:

  1. LNK 快捷方式相关信息,如下所示:

  1. 调用执行对应目录下的 VBS 脚本,VBS 脚本内容,如下所示:

  1. 重命名目录下的相关文件并启动 DS_Strore.exe 程序,最后执行 PING 操作,如下所示:

  1. DS_Strore.exe 程序,主函数代码,如下所示:

  1. 直接定位到关键函数,如下所示:

  1. 分配内存空间,然后将 ShellCode 代码拷贝到分配的内存空间,如下所示:

  1. 拷贝完成之后,再跳转执行到分配的内存空间 ShellCode 代码处,如下所示:

  1. ShellCode 加载相关的 DLL 模块,并获取相关函数地址,如下所示:

  1. ShellCode 包含很多混淆垃圾代码,防止 IDA 静态分析,如下所示:

  1. 解密相应的字符串信息,如下所示:

  1. 解密出来的随机字符串信息为 LRcOSGV0ewEDBAQCQAA=,如下所示:

  1. 创建互斥变量 Yh-ioklsdf-san,如下所示:

  1. 调用 VirtualAlloc 分配相应的内存空间,如下所示:

  1. 连接远程服务器 service-h87kxr41-1319584009.bj.tencentapigw.com.cn,如下所示:

  1. 通过 URL 链接发送 POST 请求,如下所示:

  1. 将之前解密出来的随机字符串 LRcOSGV0ewEDBAQCQAA=发送到远程服务器,如下所示:

  1. 接受服务器端返回的加密数据,如下所示:

  1. 查询服务器端加密数据信息,如下所示:

  1. 调用 VirtualAlloc 分配内存空间,如下所示:

  1. 从服务器端读取加密数据到内存空间,如下所示:

  1. 读取的加密数据,如下所示:

  1. 将返回的加密数据拷贝到之前分配的内存空间当中,如下所示:

  1. 拷贝完成之后,如下所示:

  1. 重复上面的操作,循环读取服务器端加密的数据,并返回到分配的内存空间,如下所示:

  1. 将返回的加密数据再拷贝到之前的内存空间的后面,请求完成之后,返回的加密数据,如下所示:

  1. 解密字符串,如下所示:

  1. 解密接收的服务器端数据,如下所示:

  1. 解密后的服务端器加密数据,如下所示:

  1. 设置解密后的 PayLoad 内存属性为可执行,如下所示:

最后执行解密出来的 PayLoad,笔者在调试的时候会遇到接收数据不完整的情况,解密出来 PayLoad 不完整,可能是服务器网络或笔者网络不稳定,也可能是程序 BUG 吧,不过猜测最后的 PayLoad 应该是一个 CS 木马之类的,后面应该还有机会拿到完整的 PayLoad 笔者再分析。

威胁情报

总结结尾

做安全,免杀是一个永恒的话题,是一场猫捉老鼠的游戏,通过研究一些对抗型的攻击样本,可以更好的了解攻击者在使用什么技术。

用户头像

欢迎关注,一起学习,一起交流,一起进步 2020-06-14 加入

公众号:做梦都在改BUG

评论

发布
暂无评论
针对一个有意思的钓鱼免杀样本的详细分析_黑客_我再BUG界嘎嘎乱杀_InfoQ写作社区