APT34原型: Glimpse project

2024-03-06 07:18
文章标签 原型 project glimpse apt34

本文主要是介绍APT34原型: Glimpse project,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

APT34 Glimpse project可能是截止目前研究人员最了解的的APT 34项目了。研究人员观察到基于文件的C2结构、VBS启动器、PowerShell Payload和dns引擎之上的秘密信道。

背景

从2014年开始,伊朗黑客组织APT34开始活跃,该组织执行了一系列针对伊朗的攻击活动。重要攻击目标位于中东地区,主要攻击金融、政府、能源、化工、电信和其他行业。

下面主要介绍Glimpse project,研究人员认为这可以认为是APT 34的原型。

Glimpse Project

该package中有一个名为Read me.txt的README文件。文件的内容是教授如何设置nodejs服务器和运行standalone .NET应用的Windows服务器来来控制受感染机器。感染首先是从一个名为runner_.vbs的VBS脚本的繁殖开始的,该脚本也是多数熟练的PowerShell payload的运行器。该Powershell payload是一个复杂的脚本,有许多功能。下图是反混淆的主循环:中国菜刀

APT34原型: Glimpse project

Glimpse感染Payload主循环

Payload会循环等待指令,一旦从C2服务器获得命令,就开始执行特定动作,并通过请求基于变量$aa_domain_bb伪造的子域名来响应C2。Payload实现的最重要的函数就是释放和执行其他工具集。事实上,payload是基于DNS 秘密信道的夹杂了其他控制功能的传播模块。

变量 $aa_domain_bb 含有C2作为授权域名服务器的主域名。如果没有来自C2的命令或动作,受感染的代理会周期性地ping C2来提供关于受害者机器的基本信息。比如,函数aa_ping_response_bb 会组成一个编码的DNS消息 ( aa_text_response_bb ),发送最后的IP地址。在这一阶段,有2种通信方式,第一种是来自于子域名生成,比如59071Md8200089EC36AC95T.www.example.com,第2种方法来自于TXT DNS记录,比如control: 95 – ackNo: 0 – aid: 59071d8289 – action: M  >>>  59071Md8200089EC36AC95T。这两种方式的实现都会携带不同的信息。其中最重要的函数是通信管理器aa_AdrGen_bb,实现控制层来发送和接收控制信息,比如命令、接收的字节、文件传输是否关闭等待。解码的动作保存在变量 aa_act_bb中,如下所示:

APT34原型: Glimpse project

C2. 为新连接的代理创建Env

M。如果代理已经在C2上注册了,该命令的作用类似ping,更新其在agent文件夹中的基本信息。如果是第一次连接到C2,就开始注册,服务端创建一个文件夹和文件环境。如上图所示。

W。这是一个txt请求来列出等待的命令。注册后执行的第一个C2命令为1010,内容为"whoami&ipconfig /all"

· D。这是要实际执行的命令。输入标记的任务并将文件的base64编码的内容发

· 0。这不是一个txt请求。该请求会让授权DNS响应waiting文件夹中请求的文件。响应A记录的数据域是伪造的IP地址11.24.237.110,如果waiting文件夹中没有文件活动动作,C2就会响应A记录,数据域为"24.125." + fileNameTmp.substring(0, 2) + "." + fileNameTmp.substring(2, 5);,TTL值为0到360之间的随机数。

· 1。这不是一个txt请求。该请求会使授权DNS服务器进行含有文件内容的回答。根据RFC4408,它会实现多个响应链来发送大于255个字符的文件。

· 2。这不是一个txt请求。该请求会使授权DNS服务器接收来自代理的文件。它实现了来自域名请求的复杂多方链。在发送完所有数据后,代理会发送一个数据部分为COCTabCOCT 的DNS查询。该查询通知C2服务器木马完成了文件内容的发送。天空彩

APT34原型: Glimpse project

C2: COCTabCOCT通信结束

下图是运行在受控虚拟机环境中的感染链实例。下面的请求会在子域上实现数据,回答的IP会给出特定的响应。

10100*9056*****************.33333210100A[.]example[.]com

APT34原型: Glimpse project

Glimpse运行环境

可以看出Glimpse运行环境需要standalone .NET应用,nodeJS服务器运行和提供共有API并保存到代理的请求和来自代理的结果到名为UID-IP(agent ID)的文件中。Panel会读取这些文件并进行统计和其他动作。下图是C2 panel上的静态配置部分:

APT34原型: Glimpse project

C2 Panel硬编码设置

Control Panel主要由2个.net window组件组成。Main Windows是含有Agent ID, Agent IP, Agent Last Online Time, Attacker Comments等信息的连接的代理列表。当攻击者点击选定的代理后,就会调用 Control Window。事件onClick代码如下:

controlPanel = new controlPanel(agent.id, agent.ip, agent.lastActivity);
controlPanel.Show();

在初始化完成之后,控制panel会让攻击者写或上传命令列表或文件到代理。下图是controPanel函数从输入域TextFields中获取命令,创建新的文件到文件夹waiting。这类文件的内容会释放到选定的代理并执行。

APT34原型: Glimpse project

C2, controlPanel insert_command 函数

controlPanel提供一些额外的功能来更好地控制单个或一组代理。研究人员分析发现newPanel-dbg.exe的编译时间为9/1/2018 at 5:13:02 AM,而导入函数ToggleSwitch.dll的编译时间为9/8/2018 at 8:01:54 PM。

研究人员认为这是一个多模块的攻击框架,一方面通过DNS通信信道来传递命令到目标代理,一方面开发control panel到DNS通信系统中。如果将该框架看作一个开发者,DNS通信信道使用文件来保存信息和同步动作和代理,因此许多C2被修改来使用它作为通信信道。许多APT34单元都可以重用它作为通信信道。匿名用户于2018年8月在PasteBin上泄露了一个powershell代理,截止目前只有不到200个人阅读。而C2编译的时间刚好为2018年7月,使用的开发和实现技术也不同,比如使用了.NET和nodeJS。DNS通信信道是线性开发的,有许多功能驱动的编程风格,而standalone C2的开发使用的是更加复杂的面向对象的编程方法,攻击者将对象agent作为独立代理可以在没有直接控制的情况下工作。

这篇关于APT34原型: Glimpse project的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779246

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

SVN Cornerstone 报错信息 xcodeproj cannot be opened because the project file cannot be parsed.

svn点击update 之后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed. 发现项目中代码全没了。只有一个空的工程名字,因为xcodeproj工程文件冲突了,然后就是svn强制给你更新了,内部的文件冲突了,你们改了同样的地方的一段代码,可能是你们只是多加

Android Studio打开Modem模块出现:The project ‘***‘ is not a Gradle-based project

花了挺长时间处理该问题,特记录如下:1.背景: 在Android studio 下导入一个新增的modem模块,如MPSS.DE.3.1.1\modem_proc\AAA, 目的是看代码方便一些,可以自由搜索各种关键字。但导入该项目时出现了如下错误: The project '***' is not a Gradle-based project.造成的问题: (1) project 下没有代码,而

《GOF设计模式》—原型(Prototype)—Delphi源码示例:原型接口

 示例:原型接口 说明: (1)、定义 用原型实例指定要创建对象的种类,并且通过拷贝这些原型实例创建新的同类对象。 (2)、结构 原型 Prototype:抽象原型,声明一个克隆自身的接口。 ConcretePrototype:具体原型,实现一个克隆自身的操作。 客户端 Client:让一个原型克隆自身从而创建一个新的对象。 代码: unit uProtot

《GOF设计模式》—原型(Prototype)—Delphi源码示例:浅拷贝和深拷贝

 示例:浅拷贝和深拷贝 说明: Prototype模式最困难的部分在于正确实现Clone操作。例如,当所考虑的类已经存在时就难以新增Clone操作。当类内部包括一些不支持拷贝或有循环引用的对象时,实现克隆可能会很困难。 大多数语言都对克隆对象提供了一些支持。例如,Smalltalk提供了一个copy的实现,它被所有Object的子类所继承。C++提供了一个拷贝构造器。但这些措施并不

【办公效率】Axure会议室预订小程序原型图,含PRD需求文档和竞品分析

作品说明 作品页数:共50+页 兼容版本:Axure RP 8/9/10 应用领域:中小型企业的会议室在线预订 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为会议室预订小程序原型图,定位于拥有中大型组织架构的企业、办公楼、园区等群体,为其提供简易化的线上会议室管理的服务。 本作品从业务分析、竞品分析、用例图、原型设计,到需求清单,依照(敏捷开发)标准实战流程输出一套