AsyncRAT
AsyncRat 样本分析
1. 样本信息
AsyncRat是一种远程访问工具 (RAT),旨在通过安全的加密连接远程监视和控制其他计算机。它是一个开源远程管理工具,因此它也可能被恶意使用,AsyncRat可以通过鱼叉式网络钓鱼、恶意广告、漏洞利用工具包和其他技术等多种方式进行交付。

ioc
| 类别 | 特征值 |
|---|---|
| MD5 | 0ab8714feb584bd232ed461615d4cfac |
| SHA1 | 649e98ae73a023a5892ac0f9eec2988119299e91 |
| SHA256 | 5da9e7a1817e5ac56efd07be9ce8d943f443707cbcb0d8a22e9b065b451c56dd |
| C2 | money14.ddns.net:5555 |
2. 样本分析
2.1. 自动休眠
恶意程序会根据配置进行休眠:

当前样本的配置为3s:

2.2. 初始化设置
恶意程序内存在加密字符串,将通过AES256解密字符串:

其中关键字符串整理如下:
| 名称 | 值 |
|---|---|
| Key | QGjeYaXwfNBH8Fh4Udv9UB6mz2EU1Zvo |
| Ports | 5555 |
| Hosts | money14.ddns.net |
| Version | 0.5.7B |
| Install | false |
| MTX | AsyncMutex_6SI8O89Q |
| Pastebin | null |
| Anti | false |
| BDOS | false |
| Group | Default |
| Hwid | A3B53DC9D45BCF299437 |
其中Hwid是由处理器数量,当前用户名,NetBIOS名称,OS版本号及系统卷磁盘大小组成的字符串经过定制的Hash计算得出:

Hash计算函数如下:

为防止配置字符串被篡改,恶意程序还进行了一次自校验:

2.3. 创建互斥体
恶意程序会创建一个名为AsyncMutex_6SI8O89Q的互斥体:

2.4. 反分析技术
当Anti为true时,将调用Anti_Analysis.RunAntiAnalysis()进行反分析操作,其中包含了:虚拟机检测、调试检测、沙箱检测、磁盘空间检测、XP系统检测,一旦满足其中一条,将终止自身进程:

恶意程序会在系统制造数据中检测是否包含VIRTUAL、vmware或VirtualBox字段:

通过NativeMethods.CheckRemoteDebuggerPresent()检测当前进程是否正在被调试:

通过检测沙箱的动态链接库SbieDll.dll是否存在,判断是否在杀向中运行:

判断系统卷磁盘大小是否大于61000000000B大约56.8GB:

判断操作系统是否为xp:

2.5. 设置自启动
当Install为true时,将执行NormalStartup.Install()函数,将判断当前文件完整路径是否为%AppData%/svchost.exe,如果不是则杀掉进程中的svchost.exe项:

其中InstallFolder和InstallFile数值如下:

然后判断当前是否是admin权限,如果是,则调用cmd执行下列命令,添加最高运行等级的开机自启计划任务:
cmd /c schtasks /create /f /sc onlogon /rl highest /tn "svchost.exe" /tr '"%AppData%/svchost.exe"' & exit

如果不是admin权限,则修改注册表(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\)实现开机自启:

接着会判断%AppData%/svchost.exe是否存在,存在则删除,然后读取当前执行文件字节,写入生成%AppData%/svchost.exe:

完成自我复制后,如果当前执行权限是admin则通过调用RtlSetProcessIsCritical关闭进程保护,关闭互斥锁,解除SslClient和TcpClient客户端连接:

然后创建一个临时的.bat文件并向其中写入命令,启动%AppData%/svchost.exe,然后自我删除。当所有指令执行完成后退出:

2.6. 切换至特殊模式运行
调用Process.EnterDebugMode()将进程以特殊模式运行:

2.7. 构建 Socket 通信
如果Pastebin为null,构建TcpClient连接域名money14.ddns.net,端口5555:

如果Pastebin不为null,则解析Pastebin结构,连接指定域名端口:

当成功构建Socket通信连接,将以初始化设置中解密的ServerCertificate证书进行加密通信:

首先发送的数据报文结构如下:

3. 参考资料
https://labs.k7computing.com/index.php/github-home-to-asyncrat-backdoor/
https://app.any.run/tasks/51782c07-64b8-4c8c-b5ba-66a04fa2a61e/
https://www.virustotal.com/gui/file/5da9e7a1817e5ac56efd07be9ce8d943f443707cbcb0d8a22e9b065b451c56dd