当前位置:首页 > 黑客技术 > 正文内容

APT34-Glimpse与DNS隧道问题

访客4年前 (2021-04-04)黑客技术511

  背景简述

  2019年4月18日,某黑客组织使用Lab Dookhtegan假名,在Telegram频道上出售APT34团队的黑客工具,成员信息,相关基础设施,攻击成果等信息,引发业界威胁情报及Red Team领域的安全人员强烈关注。

  点击添加图片描述(最多60个字)

  其中APT34也被称为OilRig (Crambus,“人面马”组织,Cobalt Gypsy),是一个来自于伊朗的APT组织,从2014年开始APT34组织开始活跃,该组织执行了一系列针对伊朗的攻击活动。重点攻击目标位于中东地区,主要攻击针对金融、政府、能源、化工、电信和其他行业。包括阿提哈德航空公司,阿布扎比机场,阿联酋国家石油公司,兰普雷尔能源公司,科威特阿米里迪万湾,阿曼行政法院,阿联酋总理办公室等纷纷中招。

  点击添加图片描述(最多60个字)

  本篇文章,美创安全实验室将为大家分析APT34-Glimpse项目与DNS隧道问题。

  01 DNS隧道简介

  DNS 协议是一个分布式的客户机/服务器网络数据库,分布式的原因是:互联网中没有单独 的一个站点能够知道所有的信息。访问 DNS 是通过地址解析器的应用程序库来完成,在请求 TCP 打开一个连接或是使用 UDP 发送一个单播数据之前,需要知道 ip 地址。而 DNS 隧道就是通过 DNS 建立起来的一种隧道连接。

  02 APT34-Glimpse结构分析

  Glimpse是一套使用DNS隧道的远控工具,下图为Glimpse文件列表。

  点击添加图片描述(最多60个字)

  Agent: 客户端程序

  Panel: 工具的图形面板

  Server: 服务端程序

  Readme.txt: 部署说明文档

  

  runner_.vbs脚本用来启动当前目录下的PowerShell脚本文件,需要配合其他Execution方法去启动执行;

  dns.ps1、dns_main.ps1、refineddns_main.ps1三个脚本文件功能基本一致,另外两个文件在dns_main.ps1的基础上做了变量名混淆;

  

  newPanel-dbg.exe是一个C#开发的界面程序,是界面化的木马控制端,包括显示agent上线列表、命令执行、文件上传下载、查看执行结果、切换DNS请求方式、 刷新等功能;

  

  srvr.js使用nodejs开发作为服务端提供DNS服务用于与agent的交互。

  03 通信过程

  在讲述通信过程之前,先简要说一下DNS协议中几种资源记录类型:

  主机记录(A记录)、AAAA记录IPV6解析记录、PTR、CNAME记录、URL转发、服务位置记录、NS记录、TXT记录。

  其中A记录指的是将DNS中的域名称对应到IPv4地址,TXT 记录一般是为某条记录设置说明,比如新建了一条 a.example.com 的 TXT 记录,TXT记录内容"this is a test TXT record.",然后用 nslookup -qt=txt a.example.com ,就能看到"this is a test TXT record"的字样。

  传输过程如下:

  点击添加图片描述(最多60个字)

  其中Server是控制节点也被称为C2服务器,在server上运行srvr.js可以开启一个DNS服务器,等待来自客户端的连接请求,而Agent是客户端也是被控端。双方的通信是通过DNS隧道A/TXT记录进行命令的分发与命令的执行后的回传。

  在美创安全实验室对具体攻击样本的分析后发现,Glimpse采用了PowerShell作为Agent运行代码,且在执行前需要劫持受害者的DNS服务器以进行DNS重定向,从而解析攻击者指定的域名后缀。通过使用特定的算法生成子域名,受害者机器向DNS服务器即C2 Server发送子域名A/TXT记录的DNS查询请求并获取C2提供的IPv4地址从而进行通信。此外,还需要通过计划任务的形式让PowerShell脚本定期运行,从C2 Server端获取信息从而执行命令。

  04 对Agent的功能分析

  dns_main.ps1与另两个文件的功能相同,只是变量名称替换成了无意义的混淆字符串。dns_main.ps1的功能如下:

  1、创建文件夹 % Public % \ Libraries

  2、判断文件 % Public % \ Libraries \ Lock是否存在

  ~若不存在,创建文件并写入当前PoweSshell进程的pid

  ~若存在,读取文件的创建时间,如果距离现在的时间超过10分钟,那么退出进程并删除lock文件

  点击添加图片描述(最多60个字)

  3、生成一个当前系统的专有标志,写入文件 % Public % \ Libraries \ quid

  4、创建以下文件夹

  ~ % Public % \ Libraries \ files

  ~ % Public % \ Libraries

  ~ % Public % \ Libraries \ receivebox

  ~ % Public % \ Libraries \ sendbox

  ~ % Public % \ Libraries \ done

  点击添加图片描述(最多60个字)

  点击添加图片描述(最多60个字)

  5、通过DNS A记录或DNS TXT记录从C2服务器接收控制命令

  6、执行命令并回传结果

  但我们发现,即使脚本创建了“文件”文件夹,木马程序似乎也没有在代码中使用这些文件夹。特洛伊木马使用“ receivebox”文件夹存储从C2服务器获得的文件,而“ sendbox”文件夹用于存储木马将上传到服务器的文件。

  05 对Server的功能分析

  1、接收Agent发送的伪DNS请求

  2、使用本地规则解析Agent信息

  伪DNS请求内容格式为:Data . mainData . mainData2 . mainData3,四个部分分别保存不同的内容。

  Data部分:

  

  

  datarand: 记录action和aid,数据位置可变,由reqNoIndex和actionIndex两个值来决定

  aid:此数据包的id信息,server端据此生成server目录

  action:对应agent行为

  点击添加图片描述(最多60个字)

  点击添加图片描述(最多60个字)

  06 APT34-Glimpse感染过程

  1、感染首先是从客户端上一个名叫runner_.vbs的VBS脚本的繁殖开始的,该脚本也是多数PowerShell payload的运行器。

  2、在控制端运行srvr.js脚本,该PowerShell payload是一个复杂的脚本,首先进行反混淆的主循环。

  点击添加图片描述(最多60个字)

  3、服务端程序在此过程中会在/Glimpse/dns/agentid/目录下创建wait、receive、done、sended、sending等子文件夹,通过这些子目录下的文件读写来实现与agent的通信。

  4、运行此脚本,Payload会循环等待指令,一旦从C2服务器获得命令,就开始执行特定动作,并通过请求基于变量 $aa_domain_bb伪造的子域名来响应C2。

  

  

  

  

  Payload实现的最重要的函数就是释放和执行其他工具集。事实上,payload是基于DNS 秘密信道的夹杂了其他控制功能的传播模块。

  这里我采用了腾讯云提供的域名解析服务。

  

  5、在客户端运行dns_main.ps1文件,创建/Libraries/路径文件,与服务端连接。

  点击添加图片描述(最多60个字)

  6、Dns_main.ps1中变量 $aa_domain_bb 含有C2作为授权域名服务器的主域名。如果没有来自C2的命令或动作,受感染的代理会周期性地ping C2来提供关于受害者机器的基本信息。

  其中最重要的函数是通信管理器aa_AdrGen_bb,实现控制层来发送和接收控制信息,比如命令、接收的字节、文件传输是否关闭等待。解码的动作保存在变量 aa_act_bb中,如下所示:

  

  7、当服务端成功解析到域名并于客户端产生第一次连接时,会在wait文件夹下创建一个名为10100的文件,执行完毕后转到sended文件夹,指令内容为whoami&ipconfig。

  8、客户端dns_main.ps1程序使用ping mode和text mode两种方式与服务端进行通信,接收服务端的指令并以文件的形式保存到agent目录\receivebox\下,以rcvd为文件名前缀。以文件的末尾字符判断服务端指令并执行相应行为(被控制)。

  点击添加图片描述(最多60个字)

  点击添加图片描述(最多60个字)

  点击添加图片描述(最多60个字)

  07 隧道格式

  服务端作为伪造的DNS服务器,响应agent的DNS请求并回复指定ip字符串,不同的ip字符串指代不同的通信内容。

  ip字符串对应如下:

  点击添加图片描述(最多60个字)

  使用DNS隧道传输原始数据:

  Glimpse中的原始数据传输过程在DNS查询的答案中寻找特定的A记录,如下图所示。木马处理了C2响应中的A记录以获得文件名,该文件名专门在A记录中查找IPv4地址,前两个八位字节为“ 24.125”。该特洛伊木马将此A记录的其余两个八位位组附加到字符串“ rcvd”,并将其用作文件名,以将将来的数据保存到“ receivebox”文件夹中。该IP地址还指示木马将以下DNS A记录视为数据。以下DNS A记录在“。”上分割,并且前三个八位位组中的每一个均被视为数据,而第四个八位位组被用作计数器,以获取正确的数据块。最后,木马寻找A记录“ 1.2.3”作为将提供的数据写入指定文件的信号。

  点击添加图片描述(最多60个字)

  使用DNS隧道传输新数据:

  此Glimpse示例具有使用一系列DNS TXT查询从C2服务器获取文件的新方法。此方法遵循与原始方法类似的过程,但是使用DNS TXT结果获取文件名,并将数据写入文件。将数据写入文件系统后,此方法将使用与原始方法相同的命令处理程序,基于文件名的尾随字符来处理文件的内容。

  C2可以通过使用DNS A记录“ 99.250.250.199”响应初始信标来启动新的命令处理功能。该脚本将进入一个循环,尝试每隔50毫秒与C2通信,查找一系列带有特定字符的响应,脚本将使用这些响应作为指令来确定如何处理TXT记录的结果,如下图所示。木马将从字符“>”上的C2响应中分离出每个TXT记录,“>”字符左侧的数据用作指令,数据右侧的数据作为数据。

  点击添加图片描述(最多60个字)

  08 总结

  此次泄漏Glimpse项目是多模块的远程控制工具,通过TTPs的分析我们可以大致确认泄漏工具和公开威胁情报当中对OilRig工具集的分析一致,但我们也看到项目文件存在缺失和编码错误(或被篡改)等情况。另外Glimpse项目的成功运行需要配合DNS劫持来完成,操作相对复杂,我们猜测该工具不会被大量滥用。还有值得注意的是DNS信息交互使用文件来存储信息并同步操作,这是一种不同寻常的实现方式,猜测可以实现许多panel同时控制C2。不管怎样此次泄漏或多或少都对红队对手技术模拟、威胁情报等方面提供了极大的价值。

  由于此工具的可利用空间极大,威胁程度偏深,具体环境搭建及攻击利用的技术细节没法直接展开来讲,美创安全实验室在此也提醒大家,定期杀毒,检查电脑,尤其确定DNS解析服务器是否正常及hosts文件是否被修改。

  关于美创

  杭州美创科技有限公司,敏感数据保护和数据安全领域的拓荒者和领导者,由国内多名数据库资深专家携手于2005年成立,产品及服务覆盖数据安全、数据管理、容灾备份、智能运维等四大领域,广泛应用于医疗、教育、金融、政府、人社、电力能源、物流交通、企业等众多行业。多年来,凭借卓越的技术创新与良好的用户口碑,美创多次入围全国网络安全50强,并参与多项国家及行业标准的编写,引领数据安全领域的规范发展。目前,美创科技已全面推动全国市场化发展战略,相继在北京、广州、武汉、南京、成都、上海等地设立分公司,致力于为更多的客户提供专业的安全解决方案。

  「警惕」新型勒索病毒Dharma已到达战场

  从医院的五个数据域解剖安全风险

  访谈 | 柳遵梁:争做数据安全市场引路人

  事前、事中、事后 这可能是最全面的数据库防勒索方案!

  浙商专访 | 美创科技:给数据一份安全感

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106874.html

分享给朋友:

“APT34-Glimpse与DNS隧道问题” 的相关文章

接单的黑客_可以找黑客黑美团吗

有在网络安全范畴中,猜测网络违法和歹意软件发展趋势好像现已成为了各大网络安全公司的传统了。 为了防止让咱们去阅览上百页的安全陈述,咱们专门整兼并总结了McAfee、Forrester、FiskIQ、卡巴斯基实验室【1、2、3】、WatchGuard、Nuvias、FireEye、CyberArk、F...

如何寻找黑客微信号(只有一个微信号,黑客可以查到对方吗)

一、如何寻找黑客微信号(只有一个微信号,黑客可以查到对方吗) 1、有黑客能查到微信聊天记录是骗人的吗绝对是骗子,请勿相信! 微信聊天信息保存在本地 一般聊天信息都是保存在本地的,除非开通会员可以将聊天信息存储。 黑客查找出来的微信聊天截图是真的吗在手机端启动微信,在微信主界面底部导航中点击“微信”...

生猪猪价近10年走势图 「全国生猪价格猪e网」

从供给来看,同比年下降8点全国2。2012年4,希望能对你有所帮助。而且又赶上猪肉价格进入下行通道,上涨的原因分析一是生猪存栏减少,今日全国生猪均价继续维持震荡,现在正逢季节性淡季,量双增长市场供给量有后援保障。比2月25价格日。 散养户积极补栏使得苗猪价格迅速上升,1、我就是专业研究这个的,最新全...

Qq邮箱被黑客攻击怎么办,网络游戏提款难找黑客,电脑被黑客入侵修改开机密码

self.python_version = int(str(entry.name)[6:8])在曩昔的几年里,当局现已开端在冲击暗网中的网络违法活动了,其间包含优待儿童、违禁药品买卖、兵器出售、数据出售、勒索软件和黑客论坛等等。 近年来,大型网络违法商场逐步式微,尤其是在欧洲和美国当局在上一年打掉了...

今天石油价格,中国石油油价今日价格

隆众资讯,中石油和中石化根据各地差异再调整,国际原油的下跌,京89号,更多信息可关注专业配资平台。98号,汽油7点55元/升,但幅度不会太大,这种状况也依然如旧油价。 权威的市场资讯服务,这个具体地区油价都是有所区别,中国石油A股,价格上涨。成品油调价机制-10#柴油批发均价为8825元/吨。 较前...

黑客接单查询个人信息怎么办_微信支付密码忘记了找黑客

无 SelectCacheForSharedWorker select_cache_for_shared_worker = 5;黑客接单渠道无一些被以为陈腐而陈旧的文档特性可以被完成并用于进犯,360要挟情报中心鄙人半年就针对运用Excel 4.0宏传达商业远控木马的在野进犯样本进行了剖析。 黑客接...

评论列表

久隐师
2年前 (2022-07-08)

让PowerShell脚本定期运行,从C2 Server端获取信息从而执行命令。  04 对Agent的功能分析  dns_main.ps1与另两个文件的功能相同,只是变量名称替换成了无意义的混淆字符串。dns_main

笙沉氿雾
2年前 (2022-07-08)

(最多60个字)  3、服务端程序在此过程中会在/Glimpse/dns/agentid/目录下创建wait、receive、done、sended、sending等子文件夹,通过这

野欢羁拥
2年前 (2022-07-08)

体攻击样本的分析后发现,Glimpse采用了PowerShell作为Agent运行代码,且在执行前需要劫持受害者的DNS服务器以进行DNS重定向,从而解析攻击者指定的域名后缀。通过使用特定的算法生成子域名,受害者机器向DNS服

听弧命轴
2年前 (2022-07-08)

efineddns_main.ps1三个脚本文件功能基本一致,另外两个文件在dns_main.ps1的基础上做了变量名混淆;    newPanel-dbg.exe是一个C#开发的界面程序,是界面化的木马控制端,包括显示agent上线列表、命令执行、文件上传下载、查看执行

绿邪纯乏
2年前 (2022-07-08)

S解析服务器是否正常及hosts文件是否被修改。  关于美创  杭州美创科技有限公司,敏感数据保护和数据安全领域的拓荒者和领导者,由国内多名数据库资深专家携手于2005年成立,产品及服务覆盖数据安全、数据管理、容灾备份、智能运维等四大

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。