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

栏目: Node.js · 发布时间: 5年前

内容简介:最近APT34的6款工具被泄露,本文仅在技术角度对其中的PoisonFrog和Glimpse进行分析参考资料:https://malware-research.org/apt34-hacking-tools-leak/amp/

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. 创建以下文件夹
  • %public%\Public<id>
  • %public%\Public<id>\reveivebox
  • %public%\Public<id>\sendbox
  • %public%\Public<id>\done
  1. 通过DNS A记录从c2服务器接收控制命令
  2. 执行命令并回传结果

(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——Downloader的实现》和《渗透测试中的Node.js——利用C++插件隐藏真实代码》曾介绍过Node.js的使用,Node.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

  1. 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、dns_main.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是否存在

  • 如果不存在,创建文件并写入当前powershell进程的pid
  • 如果文件存在,读取文件创建时间,如果距离现在的时间超过10分钟,那么会退出进程并删除lock文件
  1. 生成一个当前系统的专有标志,写入文件%public%\Libraries\quid

  2. 创建以下文件夹

  • %public%\Libraries\files
  • %public%\Libraries<id>
  • %public%\Libraries<id>\reveivebox
  • %public%\Libraries<id>\sendbox
  • %public%\Libraries<id>\done
  1. 通过DNS A记录或DNS TXT记录从c2服务器接收控制命令
  2. 执行命令并回传结果

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协议传输数据也是一个很古老的方法,个人认为该工具不会导致恶意软件技术的升级。

LEAVE A REPLY


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构与算法

数据结构与算法

2009-8 / 32.00元

《数据结构与算法》系统地介绍了数据结构的基本概念和基本算法,主要内容包括:绪论,线性表,栈与队列,串,数组、特殊矩阵和广义表,树,图,排序,查找,算法的分析与设计,实验与上机指导。《数据结构与算法》特别注重突出应用性和实践性,实例和习题丰富,并在附录中给出了各章习题的答案。 《数据结构与算法》适合作为应用型本科院校和成人教育计算机专业数据结构课程的教材,也可作为数据结构培训班的教材以及软件从......一起来看看 《数据结构与算法》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试