技术恶意软件分析报告:基于 Python 的 RAT 恶意软件

本报告分析的恶意软件是一款基于 Python 的远程访问木马 (RAT),利用 Discord 作为命令与控制 (C2) 平台。该恶意软件伪装成良性脚本,利用内置的 Python 库和 Discord 机器人界面执行各种恶意操作。

该恶意软件旨在破坏和控制系统。它能够锁定用户屏幕、强制系统进入蓝屏死机 (BSOD)、操纵鼠标光标以及窃取基于位置的数据。其基于 Discord 的界面允许攻击者通过简单的按钮点击来执行这些功能,这使得它对恶意行为者来说非常容易访问且易于使用。由于该 RAT 易于使用、隐蔽性强,并且具有监视和破坏的潜力,因此构成了巨大的威胁。

介绍

无论是个人还是工作,人们越来越依赖 Discord 等通讯平台,这为网络犯罪分子创造了新的攻击面。恶意软件开发者正在迅速适应这些平台,将其攻击活动嵌入到常用且受信任的环境中。本报告调查了一种基于 Python 的远程访问木马 (RAT),该木马通过将 Discord 转变为一个操作指挥中心,体现了这一趋势。

它在规避或混淆技术方面并不特别先进,但其优势在于其简单易用以及对合法服务和库的有效利用。它利用了 Discord 流量通常未经过滤的宽松网络环境,并使用了广泛使用的 Python 库来融入良性系统活动。这使得该 RAT 难以通过传统的反病毒软件或行为分析检测到,尤其是在其执行的早期阶段。

本次分析旨在解析该恶意软件的攻击方法,了解其攻击生命周期,并提供检测、缓解和响应方面的战略建议。通过分析其静态和动态行为,本报告旨在帮助防御者全面了解此类模块化恶意软件所带来的威胁。

静态分析

1. 持久性机制:
该恶意软件会将自身复制到 Windows 启动文件夹中,并使用欺骗性名称“WindowsCrashHandaler.exe”,以确保其在系统中持续存在。具体实现方式是利用 Python 的 os 和 shutil 库来确定相应的 AppData 路径并复制文件。使用类似系统组件的名称旨在逃避用户检测和管理员审查。一旦进入启动文件夹,恶意软件就会在每次系统重启时自动启动,无需攻击者或​​受害者进行任何进一步的交互。

2. 通过 Discord 进行命令与控制 (C2)
该恶意软件使用硬编码的 Discord 机器人令牌进行身份验证,并通过 discord.py API 连接到特定频道。连接后,它会监听事件并响应通过 Discord 基于按钮的用户界面发送的用户交互。Discord 充当了接收命令和窃取数据的隐蔽通道。这种方法非常有效,因为 Discord 通常可以通过网络防火墙和代理,并且其流量经过加密,这使得在不干扰合法使用的情况下对其进行检查或阻止变得更加困难。

3. 信息收集
初始化成功后,RAT 会收集各种系统信息:

• os.getlogin() 检索当前登录用户的用户名。

• platform.node() 获取设备的网络主机名。

• socket.gethostbyname(socket.gethostname()) 尝试解析机器的 IP 地址。虽然通常会返回本地 IP(例如 192.168.xx),但在某些配置下也可能返回 127.0.0.1。

• platform.system() 和 platform.release() 返回操作系统及其版本。

此外,该恶意软件会通过请求库调用 http://ip-api.com/json/ 来确定受害者的地理位置。它会返回一个 JSON 响应,其中包含国家、地区、城市、邮政编码、ISP 和 GPS 坐标等字段。这些数据会被组织成一条嵌入 Discord 的消息,并发送到 C2 频道,让攻击者可以立即概览目标环境。

4. 恶意功能
该恶意软件的功能分为几个不同的模块:

**屏幕阻塞:**利用 tkinter 启动一个全屏、始终在最顶层的 GUI 窗口,并显示阻塞消息。overrideredirect(True) 函数禁用标准窗口控件(关闭/最小化/最大化),并覆盖 WM_DELETE_WINDOW 协议处理程序,以防止用户关闭窗口。

**动画屏幕干扰:**屏幕拦截器的一个变体包含使用三角函数实时绘制的动画螺旋图案。这些图案通过 tkinter.Canvas 渲染,并使用定时回调进行更新,这不仅会阻止访问,还会增添一种令人迷惑的视觉元素。

**BSOD 触发器:**这是最具破坏性的功能之一。它使用 ctypes.windll.ntdll 调用未记录的 Windows 函数 RtlAdjustPrivilege 和 NtRaiseHardError。通过设置系统权限 19 (SeShutdownPrivilege) 并触发错误代码 0xDEADDEAD,它会强制引发不可恢复的系统故障,从而导致 BSOD。这本质上是一种模拟的内核崩溃,会在没有警告的情况下导致系统崩溃,并可能导致数据丢失。

**鼠标干扰:**该脚本通过 pyautogui 库,无限循环地将鼠标指针移动到屏幕上的随机坐标。这会妨碍用户交互,并可能严重影响生产力,尤其是在设计或管理工作区中。

5. 使用的模块
为了实现这些功能,使用了以下 Python 库:

• pyautogui:自动化鼠标移动和 GUI 控制。

• tkinter:提供用于屏幕阻塞的 GUI 窗口。

• ctypes:授予对低级 Windows API 的访问权限,以实现权限操作和系统崩溃。

• 请求:促进对外部 API 的 HTTP 请求以进行地理定位。

• discord:连接到 Discord 并处理基于机器人的交互。

这些库通常是良性的,并且被广泛使用,但在这种情况下,它们却被武器化以用于恶意目的。它们的使用使得静态分析不那么明显,因为不需要可疑的第三方工具或有效载荷。

动态分析

执行后,会观察到以下行为:

1. 自动执行设置
该脚本会检查自身是否存在于启动目录中。如果不存在,它会将自身复制到该位置并重命名。此操作静默进行,无需用户交互。完成后,恶意软件会将自身注册为每次计算机重启时运行。

2. 实时远程控制
攻击者可以使用 Discord 的按钮界面锁定屏幕、破坏系统或操控鼠标。这些命令会被实时解释,从而实现实时利用。

3. 机器人初始化:
在引导其存在后,RAT 使用预定义的机器人令牌登录 Discord。然后,它会向攻击者的频道发送详细通知,其中包含以富消息格式嵌入的系统和位置详细信息。这既可以确认感染,也可以用于目标侦察。

4. 用户交互(远程)
在 Discord 频道中,攻击者可以点击标有“屏幕屏蔽”、“触发 BSOD”和“鼠标乱动”等操作的交互按钮。点击后,这些按钮会向机器人发送命令,机器人会立即在受害者的机器上调用相应的 Python 函数。机器人 UI 与本地脚本的无缝集成消除了基于 CLI 的控制或手动编写脚本的需要,降低了新手攻击者的使用门槛。

建议

**加强端点安全——**部署强大的防病毒和端点检测和响应 (EDR) 解决方案,可以识别和阻止未经授权的访问尝试,尤其是利用 Discord 的 API 的访问尝试。

**实施网络监控——**定期监控网络流量,发现与 Discord 相关的可疑活动,例如异常的 API 请求或未经授权的机器人连接,这可能表明存在活跃的 RAT 感染。

**增强用户意识——**教育用户下载未经验证的 Discord 机器人和运行未知脚本的危险,因为这些可以作为攻击者的入口点。

**限制 Discord API 的使用——**组织应考虑限制或监控公司环境中 Discord 的使用,应用严格的访问控制以防止未经授权的机器人执行。

**提高凭证安全性——**鼓励使用密码管理器和多因素身份验证 (MFA),通过降低被盗登录数据对攻击者的利用率来减少凭证盗窃的影响。

**定期更新和修补系统——**确保所有软件(包括网络浏览器和安全应用程序)定期更新,以防止已知漏洞被利用。

**调查并删除未经授权的机器人——**定期审核 Discord 服务器并删除任何可能执行恶意命令的未知或可疑机器人。

**制定事件响应计划——**建立明确的事件响应计划,以便在发生攻击时快速检测、遏制和减轻与基于 Discord 的 RAT 相关的威胁。

结论

该恶意软件展现了经典的 RAT 行为,并借助 Discord 将其增强为易于使用的 C2 平台。它具备信息窃取和拒绝功能。其基于 GUI 的控制按钮体现了该恶意软件的易用性和高破坏潜力。尽管缺乏混淆技术或复杂的规避策略,但它通过利用受信任的平台和库实现了显著的运营影响。其持久性机制和破坏性命令(例如 BSOD)使其成为需要立即缓解的高风险威胁。及时检测、清除以及审查端点和网络控制对于防范未来类似威胁至关重要。

尽管该 RAT 目前已具备功能并可主动使用,但似乎仍在开发中。其模块化结构以及对灵活、高级 Python 库的依赖表明,未来版本可能会引入更多功能,从而进一步增加其威胁潜力。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容