AsyncRAT分析
前言
AsyncRAT是一个APT组织喜欢使用的开源RAT之一,该木马最初由Github用户NYAN-x-CAT使用C#开发,此后该工具被多个黑客组织或者个人修改、增强用于各种网络间谍活动中。
AsyncRAT不仅包括通讯、守护、隐藏、自启动等常见功能模块,还包含加密、反沙盒、反虚拟机、反分析、反调试等对抗模块。并且将远程桌面监控、Webcam监控、键盘记录、文件查找、远程shell、Bots Killer以及DDos攻击等功能做成DLL放在了服务端,然后通过传输功能插件,在内存里加载运行,这样大大提高了木马的灵活性和扩展性,加大了安全人员分析的难度。是一款相对比较成熟、容易扩展的异步通讯开源木马。
AsyncRAT采用反向连接的方式,也就是Client(受控端)主动发送数据联系Server(控制端)。作为分析人员拿到的也是受控端,因此本次主要分析受控端。
Client
分析C#程序可以使用dnspy进行反编译、调试,以下使用VS直接对源码进行分析

其中比较主要的是Program.cs(入口文件)以及Settings.cs(配置文件)
入口主函数
入口函数位于Program.cs,主要代码如下:
1 | |
配置文件
配置文件为Settings.cs,包含控制端地址、端口、版本号等配置信息
在Debug和Release模式下编译不同的代码。Debug模式配置变量为明文字符串,Release模式配置变量需要经过解密。

解密函数。读取 base64 编码的字符串,前 32 个字节代表 HMAC,后面 16 个字节是解密向量 IV,其余字节是加密数据。
解密 AsyncRAT 的 Python 脚本 https://github.com/netskopeoss/NetskopeThreatLabsIOCs/tree/main/AsyncRAT

基本功能
创建互斥量

进行反虚拟化、反调试对抗

安装,实现持久化

复制自身到安装路径,释放bat文件

实现保护进程

设置线程始终处于执行状态方式

远控过程
首先,创建socket连接,根据配置文件与C2地址建立连接

然后,进行ssl身份验证,并收集受感染主机和木马自身版本等相关信息储存在MsgPack类中,发送给C2服务器


最后是最重要的,接受并处理控制端的消息

懒癌入骨,适可而止 = =
参考
https://www.4hou.com/posts/vDMr
https://www.freebuf.com/articles/network/344283.html
https://www.anquanke.com/post/id/184263
https://mp.weixin.qq.com/s/T15pdznZZ4ZsVVpcKrWlnQ
(侵删)