RTA 提供了一个脚本框架,旨在让蓝队测试其检测能力对抗恶意战术,模型基于 MITRE ATT&CK。
RTA 由 Python 脚本组成,生成超过 50 种不同 ATT&CK 战术的证据,以及一个编译好的二进制应用程序,可根据需要执行文件时间戳修改、进程注入和信标模拟等活动。
在可能的情况下,RTA 尝试执行所描述的实际恶意活动。在其他情况下,RTA 将模拟全部或部分活动。例如,某些横向移动默认会针对本地主机(尽管参数通常允许进行多主机测试)。在其他情况下,可执行文件如 cmd.exe 或 python.exe 将被重命名,使 Windows 二进制文件看起来正在执行非标准活动。
一些 RTA 需要第三方工具才能正确执行。你可以在没有其他工具的情况下运行许多 RTA,但要充分利用全套工具,某些功能需要额外下载。
下表提供了依赖信息:
| 依赖项 | RTA | 来源 |
|---|
| Sysinternals Suite | user_dir_escalation.py, sip_provider.py, system_restore_proc.py, trust_provider.py | Microsoft |
| MsXsl | msxsl_network.py | Microsoft |
Windows Defender 或其他防病毒产品可能阻止或以其他方式干扰 RTA 运行。在运行 RTA 之前,根据测试目标考虑如何在测试主机上配置安全产品。
通过修改 common.py,你可以自定义 RTA 脚本在你的环境中的工作方式。你甚至可以编写一个全新的函数,用于一个或多个新的 RTA。
要运行 powershell_args.py RTA,只需运行:
python powershell_args.py
要运行整个目录的 RTA,最简单的方法是使用提供的脚本运行器 "run_rta.py"。该脚本运行器能够运行 "red_ttp" 子目录中的所有脚本,并且默认情况下会这样做:
所有操作系统:
python run_rta.py
或者,可以使用循环:
Windows:
for %f in (*.py) do python %f
Linux/Mac:
for i in (*.py); do python $i; done
所有规则都不需要参数,但有些规则可以选择接受参数以进一步自定义技术。
为了帮助解决常见问题,请参考以下常见问题:
如果安装了 Python 3.x 而不是 2.7,则可能发生这种情况。请注意,先决条件指定了 2.7,但我们正在考虑使用 3.x 的长期方案。
要解决有关缺少依赖项的错误,请确保已按照说明下载第三方实用程序,例如 Sysinternals 套件,并将这些可执行文件提取到“bin”子目录中。
你的环境可能启用了基于主机的防火墙,阻止了你横向移动。这是好事,你不应在生产环境中禁用!相反,请注意你是否能检测到失败的尝试。
当 Windows Defender 或其他防病毒产品检测到恶意活动时,有时会锁定文件导致此错误。请查阅你的防病毒日志,看看是否是错误的原因。
Endgame 将在未来几周和几个月内继续发布与各种 MITRE ATT&CK 技术相对应的脚本。如果你已经编写了脚本,我们接受拉取请求,并很乐意审查和合并新增内容!为这个存储库做出贡献是扩展 RTA 以造福整个社区的好方法。