揭秘APT团体常用的秘密武器——AsyncRAT
AsyncRAT 是 2019 年 1 月在 [GitHub](https://github.com/NYAN-x-CAT/AsyncRAT-C-
Sharp)上开源的远控木马,旨在通过远程加密链接控制失陷主机,提供如下典型功能:
截取屏幕
键盘记录
上传/下载/执行文件
持久化
禁用 Windows Defender
关机/重启
DOS 攻击
GitHub 上提供了免责声明,但 AsyncRAT 仍然被许多攻击者,甚至是 APT 组织所广泛使用。Netskope
的研究人员最近发现了一个零检出的恶意脚本,该脚本通过 Amazon S3 存储桶下载 AsyncRAT 恶意软件。在分析时,VirusTotal
上的所有检测引擎都没有检出。
攻击链
阶段 01 - 零检出 Downloader
起始的批处理脚本,就是 VirusTotal 零检出的文件。
零检出
Downloader
尽管没有检测引擎检出,但该样本仍然能够被沙盒动态分析中的 Sigma 和 IDS 规则进行检出。
Sigma
规则检测恶意行为
检测引擎未能静态检出可能是由于攻击者在文件中增加了超过一百个长字符串进行干扰。
注释字符串
字符串都是相同的日文文本,翻译过来都是无用的废话。
文本翻译
恶意的命令反而非常简单,夹杂在无意义的长字符串间。经过了混淆也可能是导致没有检出的原因之一。
恶意命令
恶意命令通过 PowerShell 从 Amazon S3 存储桶下载并执行后续阶段攻击。
阶段 02 - PowerShell
从 Amazon S3 存储桶下载的文件是一个 PowerShell 脚本。它首先在 C:\ProgramData
中创建一个名为 Not
的文件夹。
创建目录
随后在目录中创建五个文件,链式执行另一个 PowerShell 脚本。
链式执行
最后一个 PowerShell 脚本中包含两个 PE 文件:
PowerShell
脚本
第一个文件名为 RunPE
,第二个文件用于将 AsyncRAT 注入到的合法进程中。
运行命令
PowerShell 脚本将 RunPE 直接加载到内存中,因此所有 PE 文件都不会落地。
阶段 03 - RunPE
该文件负责使用 Process Hollowing 技术将 AsyncRAT 注入另一个进程,攻击者使用 .NET 开发该恶意软件并使用 Confuser
进行加壳。
RunPE
文件信息
后续由 PowerShell 脚本将 RunPE 加载到内存中,调用 Execute
方法。该方法接收可执行文件路径
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe
与参数中的
AsyncRAT 数据。
执行函数
去除混淆后,可以明确看出 AsyncRAT 是通过 Process Hollowing 注入的。
函数调用
阶段 04 - AsyncRAT
AsyncRAT 样本在 2022 年 7 月 22 日编译。
AsyncRAT
样本
样本没有经过混淆,可以直接进行反编译。
反编译
AsyncRAT 样本
AsyncRAT 样本的主要执行流程如下所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Na9wvjd3-1690462041362)(https://image.3001.net/images/20220911/1662825819_631cb55bc207361da612b.png!small)]多个方法
AsyncRAT 的配置在 InitializeSettings
函数中被解密。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4FKJhWaj-1690462041363)(https://image.3001.net/images/20220911/1662825820_631cb55cb113821d3ebc0.png!small)]解密的配置参数
AsyncRAT 在 CBC 模式下使用 AES-256 算法来解密字符串:
使用
AES 解密
该函数读取 base64 编码的字符串,前 32 个字节代表 HMAC,后面 16 个字节是解密向量 IV,其余字节是加密数据。
加密数据
研究人员提供了解密 AsyncRAT 的 Python
脚本。
配置解密
该样本并未启用反分析功能,但也使用了反虚拟化的技术,检查了硬盘大小、操作系统制造商和型号等。
AsyncRAT
反分析
样本还通过注册表与计划任务来实现持久化。
持久化机制
AsyncRAT 将 C&C 地址和端口存储在其配置中,还提供了从 Pastebin 下载获取配置的选项。
从
Pastebin 下载获取配置
AsyncRAT 与 C&C 服务器进行加密通信,通过界面控制设备。
AsyncRAT
控制面板
结论
本文介绍了 AsyncRAT 完整攻击流程的一个示例,攻击者甚至动用了完全未检测的脚本。由于 AsyncRAT
开源,攻击者都可以根据自己的需要进行功能修改。
IOC
6d49c55e6231ae7af3b09287df08f440> 96e6e83b2a8e85153bcf6756403ae3e0> 228c44b9cc0e8c86c51fddaf3294bcf8> 370a1f36b649d6a041afca88c6ac0e55> 9c7994acb861283eab4675bb06ba4159> bed7fd2f5fc7183c0a509fc8f9d48ec9> 192a7c188e6ede340bdb4d518a4ed036> 2cb-586884e131b1c0ba96396ea4e70f6> fbf876a3676d0b6959639bc5c603d8e4> hxxps://buckotx.s3.amazonaws[.]com/x.png> bashamed[.]org:6666
参考来源
[Netskope](https://www.netskope.com/blog/asyncrat-using-fully-undetected-
downloader)
这时候你当然需要一份系统性的学习路线
如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。
一些我收集的网络安全自学入门书籍
一些我白嫖到的不错的视频教程:
上述资料【扫下方二维码】就可以领取了,无偿分享
相关文章:

揭秘APT团体常用的秘密武器——AsyncRAT
AsyncRAT 是 2019 年 1 月在 [GitHub](https://github.com/NYAN-x-CAT/AsyncRAT-C- Sharp)上开源的远控木马,旨在通过远程加密链接控制失陷主机,提供如下典型功能: 截取屏幕 键盘记录 上传/下载/执行文件 持久化 禁用 Windows Defender 关机/…...

Flutter Widget Life Cycle 组件生命周期
Flutter Widget Life Cycle 组件生命周期 视频 前言 了解 widget 生命周期,对我们开发组件还是很重要的。 今天会把无状态、有状态组件的几个生命周期函数一起过下。 原文 https://ducafecat.com/blog/flutter-widget-life-cycle 参考 https://api.flutter.dev/f…...

LeetCode面向运气之Javascript—第2600题-K件物品的最大和-94.68%
LeetCode第2600题-K件物品的最大和 题目要求 袋子中装有一些物品,每个物品上都标记着数字 1 、0 或 -1 。 四个非负整数 numOnes 、numZeros 、numNegOnes 和 k 。 袋子最初包含: numOnes 件标记为 1 的物品。numZeroes 件标记为 0 的物品。numNegOn…...

数学建模学习(4):TOPSIS 综合评价模型及编程实战
一、数据总览 需求:我们需要对各个银行进行评价,A-G为银行的各个指标,下面是银行的数据: 二、代码逐行实现 清空代码和变量的指令 clear;clc; 层次分析法 每一行代表一个对象的指标评分 p [8,7,6,8;7,8,8,7];%每一行代表一个…...

PHP之Smarty使用以及框架display和assign原理
一、Smarty的下载 进入Smarty官网下载,复制目录libs目录即可http://www.smarty.net/http://www.smarty.net/ 二、使用Smarty,创建目录demo,把libs放进去改名为Smarty 三、引入Smarty配置,创建目录,index.php文件配置 <?php…...

《TCP IP网络编程》第十一章
第 11 章 进程间通信 11.1 进程间通信的基本概念 通过管道实现进程间通信: 进程间通信,意味着两个不同的进程中可以交换数据。下图是基于管道(PIPE)的进程间通信的模型: 可以看出,为了完成进程间通信&…...

Folx Pro 5 最好用的Mac磁力链接BT种子下载工具
除了迅雷,还有哪个支持磁力链接下载?Mac电脑如何下载磁力链接?经常有小伙伴问老宅。今天,老宅给大家推荐Folx Pro For Mac,Mac系统超好用的磁力下载工具。 Folx是一款功能强大且易于使用的Mac下载管理器,并…...
Redis 数据库的高可用
文章目录 Redis 数据库的高可用一.Redis 数据库的持久化1.Redis 高可用概念2.Redis 实现高可用的技术2.1 持久化2.2 主从复制2.3 哨兵2.4 Cluster集群 3.Redis 持久化3.1 持久化的功能3.2 Redis 提供持久化的方式3.2.1 RDB 持久化3.2.2 AOF 持久化(append only file…...

elementPlus dialog组件设置可拖动,当内容高度大于视口高度拖动显示异常的解决办法
elementPlus UI的dialog弹框组件在设置了draggable属性后就可拖动弹框,但是当弹框的内容高度大于视口高度时去拖动弹框就会出现显示问题。 解决办法(修改源码) 去node_modules下面找到element-plus文件夹,按照以下路径修改onMou…...

亲测解决Git inflate: data stream error (incorrect data check)
Git inflate: data stream error (incorrect data check) error: unable to unpack… 前提是你的repository在github等服务器或者其他路径有过历史备份/副本,不要求是最新版本的,只要有就可能恢复你做的所有工作。 执行git fsck --full检查损坏的文件 在…...

Ansible 自动化运维工具
Ansible 简介 Ansible 自动化运维工具(机器管理工具)可以实现批量管理多台(成百上千)主机,应用级别的跨主机编排工具。现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstac…...

node.js 爬虫图片下载
主程序文件 app.js 运行主程序前需要先安装使用到的模块: npm install superagent --save axios要安装指定版,安装最新版会报错:npm install axios0.19.2 --save const {default: axios} require(axios); const fs require(fs); const superagent r…...

VAE-根据李宏毅视频总结的最通俗理解
1.VAE的直观理解 先简单了解一下自编码器,也就是常说的Auto-Encoder。Auto-Encoder包括一个编码器(Encoder)和一个解码器(Decoder)。其结构如下: 自编码器是一种先把输入数据压缩为某种编码, 后仅通过该编…...

【LangChain】检索器之上下文压缩
LangChain学习文档 【LangChain】检索器(Retrievers)【LangChain】检索器之MultiQueryRetriever【LangChain】检索器之上下文压缩 上下文压缩 LangChain学习文档 概要内容使用普通向量存储检索器使用 LLMChainExtractor 添加上下文压缩(Adding contextual compression with an…...

uniapp 语音文本播报功能
最近uniapp项目上遇到一个需求 就是在接口调用成功的时候加上语音播报 , ‘创建成功’ ‘开始成功’ ‘结束成功’ 之类的。 因为是固定的文本 ,所以我先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了。 这里用到的工…...
腾讯云高IO型云服务器CPU型号处理器主频性能
腾讯云服务器高IO型CVM实例CPU处理器主频性能说明,高IO型云服务器具有高随机IOPS、高吞吐量、低访问延时等特点,适合对硬盘读写和时延要求高的高性能数据库等I/O密集型应用,腾讯云服务器网分享高IO型云服务器IT5和IT3的CPU处理器说明…...

【数据结构】实验八:树
实验八 树 一、实验目的与要求 1)理解树的定义; 2)掌握树的存储方式及基于存储结构的基本操作实现; 二、 实验内容 题目一:采用树的双亲表示法根据输入实现以下树的存储,并实现输入给定结点的双亲结点…...

kafka消费者api和分区分配和offset消费
kafka消费者 消费者的消费方式为主动从broker拉取消息,由于消费者的消费速度不同,由broker决定消息发送速度难以适应所有消费者的能力 拉取数据的问题在于,消费者可能会获得空数据 消费者组工作流程 Consumer Group(CG&#x…...

【驱动开发day4作业】
头文件代码 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #…...

Ubuntu 20.04 Ubuntu18.04安装录屏软件Kazam
1.在Ubuntu Software里面输入Kazam,就可以找不到这个软件,直接点击install就可以了 2.使用方法: 选择Screencast(录屏) Fullscreen(全屏)-----Windows(窗口)--------Ar…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...