对 APT34 泄露工具的分析——PoisonFrog 和 Glimpse

发布于 2024-11-03 19:50:47 字数 4350 浏览 4 评论 0

0x00 前言

最近 APT34 的 6 款工具被泄露,本文仅在技术角度对其中的 PoisonFrog 和 Glimpse 进行分析

参考资料: https://malware-research.org/apt34-hacking-tools-leak/amp/

0x01 简介

本文将要介绍以下内容:

  • 对 PoisonFrog 的分析
  • 对 Glimpse 的分析
  • 小结

0x02 对 PoisonFrog 的分析

对应泄露文件的名称为 posion frog

包括两部分文件:

  • agent,包含文件 poisonfrog.ps1,是通过 powershell 实现的木马程序
  • server side,对应木马控制端,使用 Node.js 开发

1、agent 实现的功能

1. 在%public%\Public 文件夹下释放三个文件

  • dUpdater.ps1
  • hUpdater.ps1
  • UpdateTask.vbs

释放文件的具体功能如下:

(1) dUpdater.ps1

  1. 生成一个当前系统的专有标志
  2. 读取当前系统的代理设置
  3. 通过 HTTP 协议从 c2 服务器下载文件
  4. 根据下载文件的内容进行下一步操作,包括执行命令,上传文件和下载文件

(2) hUpdater.ps1

  1. 生成一个当前计算机的专有标志
  2. 创建以下文件夹
  3. %public%\Public\
  4. %public%\Public\\reveivebox
  5. %public%\Public\\sendbox
  6. %public%\Public\\done
  7. 通过 DNS A 记录从 c2 服务器接收控制命令
  8. 执行命令并回传结果

(3) UpdateTask.vbs

内容如下:

command0 = "Powershell.exe -exec bypass -file C:\Users\Public\Public\hUpdater.ps1"
set Shell0 = CreateObject("wscript.shell")
shell0.run command0, 0, false
command1 = "Powershell.exe -exec bypass -file C:\Users\Public\Public\dUpdater.ps1"
set Shell1 = CreateObject("wscript.shell")
shell1.run command1, 0, false

用来加载 powershell 脚本 dUpdater.ps1 和 hUpdater.ps1

2. 创建两个计划任务

  • 名称为\UpdateTasks\UpdateTask,每 10 分钟运行一次,以当前用户权限执行 UpdateTask.vbs
  • 名称为\UpdateTasks\UpdateTaskHosts,每 10 分钟运行一次,以 System 权限执行 UpdateTask.vbs

2、 对 server side 的分析

通过 Node.js 实现

使用时需要先通过 npm 安装第三方包,具体安装的命令位于文件 install_pachages.bat 中

index.js 为主体程序

考虑到避免被滥用,控制端的代码不做具体分析,也不提供具体搭建的方法

使用 Node.js 实现 server side 有以下优点:

  • 语法简单易懂
  • 轻量又高效
  • 可同时部署在 Windows 和 Linux 系统

3、该工具的公开线索

  1. APT34 曾利用 CVE-2017-11882 传播该木马,FireEye 对样本进行过分析:https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html
  2. Palo Alto Networks 将其命名为 Early BondUpdater,对样本的分析资料:https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/

0x03 对 Glimpse 的分析

对应泄露文件的名称为 Glimpse

包括四部分文件:

  • Agent,包含四个文件 dns.ps1、dnsmain.ps1、refineddns_main.ps1 和 runner.vbs
  • panel,包含一个 c#开发的界面程序,是界面化的木马控制端
  • server,是 Node.js 开发的木马控制端
  • Read me.txt,配置说明文档

1、agent 实现的功能

dns.ps1、dns_main.ps1 和 refineddns_main.ps1 三个文件的功能相同

原始版本为 dns_main.ps1

dns.ps1 和 refineddns_main.ps1 只是变量名称替换成了无意义的混淆字符串

dns_main.ps1 的功能如下:

  1. 创建文件夹%public%\Libraries
  2. 判断文件%public%\Libraries\lock 是否存在
  3. 如果不存在,创建文件并写入当前 powershell 进程的 pid
  4. 如果文件存在,读取文件创建时间,如果距离现在的时间超过 10 分钟,那么会退出进程并删除 lock 文件
  5. 生成一个当前系统的专有标志,写入文件%public%\Libraries\quid
  6. 创建以下文件夹
  7. %public%\Libraries\files
  8. %public%\Libraries\
  9. %public%\Libraries\\reveivebox
  10. %public%\Libraries\\sendbox
  11. %public%\Libraries\\done
  12. 通过 DNS A 记录或 DNS TXT 记录从 c2 服务器接收控制命令
  13. 执行命令并回传结果

2、 对 server 的分析

通过 Node.js 实现

使用时需要先通过 npm 安装第三方包,具体安装的命令位于文件 Read me.txt 中

相比于 PoisonFrog,Glimpse 在代码结构上做了优化,并且添加了通过 DNS TXT 记录传输数据的功能

考虑到避免被滥用,控制端的代码不做具体分析,也不提供具体搭建的方法

3、该工具的公开线索

  1. Palo Alto Networks 将其命名为 Updated BondUpdater,对样本的分析资料:https://unit42.paloaltonetworks.com/unit42-oilrig-uses-updated-bondupdater-target-middle-eastern-government/

0x04 小结

对于 PoisonFrog 和 Glimpse,虽然这次泄露了工具源码,但它们早在 2017 年已经被捕获样本,也被分析的很清楚,个人认为该工具不存在被大规模滥用的隐患。而使用 DNS 协议传输数据也是一个很古老的方法,个人认为该工具不会导致恶意软件技术的升级。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

陌生

暂无简介

0 文章
0 评论
21 人气
更多

推荐作者

lee_heart

文章 0 评论 0

往事如风

文章 0 评论 0

春风十里

文章 0 评论 0

纸短情长

文章 0 评论 0

qq_pdEUFz

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文