模块化Python3攻击框架,用于自动化利用SIEM平台(Splunk、Graylog、OSSIM、QRadar、McAfee),通过凭证窃取、载荷部署和后渗透模块实现。
MultiSIEM 模块化 Python3 攻击框架
ElevenPaths https://www.elevenpaths.com/
用法: python3 ./siemsframework.py
SIEM 是网络安全领域日益常用的防御性工具,尤其是大型企业和那些需要监控高度关键系统与网络的公司。然而,从攻击者的角度来看,SIEM 在企业网络中对系统和账户所拥有的权限是极高的。此外,对 SIEM 的管理员访问权限可能被用来在安装该 SIEM 的服务器上执行代码,有时也会影响客户端机器,因为 SIEM 会收集来自 Active Directory 服务器、AWS 服务器、数据库以及网络设备(例如防火墙和路由器)的事件。
在我们的研究中,我们检测到大量可能被用于攻击各种 SIEM 的攻击向量,例如:
• 获取 SIEM 中存储的来自关键系统(LDAP/AD 服务器、数据库、网络设备、AWS 服务器)的用户账户和密码。
• 开发和安装恶意应用程序,例如 Windows/Linux 反向 Shell、Windows/Linux 绑定 Shell 或恶意脚本,目的是攻陷安装 SIEM 的服务器。
• 开发和安装恶意应用程序,例如 Windows/Linux 反向 Shell、Windows/Linux 绑定 Shell 或恶意脚本,目的是攻陷 SIEM 收集事件的机器。
• 创建并应用恶意操作或通知,当特定事件发生时执行命令,例如以获取安装 SIEM 的服务器上的反向 Shell 为目的。
• 利用 OVA 镜像配置中的默认密码和 SIEM 弱点,获取服务器、数据库甚至 SIEM Web 界面的管理员凭据。
• 对 Web 或管理界面,或 SIEM 客户端软件执行字典攻击或暴力破解攻击,以获取管理员凭据。
• 从安装 SIEM 的服务器上读取任意文件。
• 获取 SIEM 配置信息和其他相关参数,以执行进一步攻击。
基于研究结果,开发了开源 SIEM 框架工具。这是一款由 ElevenPaths 创新与实验室团队用 Python3 开发的模块化工具。它允许自动对市场上现有的多种 SIEM(包括商业和开源产品)进行潜在攻击。
SIEMs Framework 支持多种攻击载荷,可根据目标 SIEM 及其操作系统进行选择。可用的载荷格式包括 PowerShell、Python、Bash、Exe 等。执行选定攻击后,工具会在屏幕上显示结果,并且可以返回并在同一 SIEM 上执行任何其他攻击,或选择其他 SIEM 进行攻陷。它拥有简单、易用且直观的界面。目前可用于以下 SIEM:Splunk、Graylog 和 OSSIM。
SIEMs Framework 可以从我们的 Github 下载,通过下载 .zip 文件或克隆仓库,并具有以下要求,可通过 pip3 install -r requirements.txt 安装:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
安装依赖后,工具可按如下方式使用:python3 ./siemsframework.py
执行工具后,会显示主菜单,您需要选择是否扫描特定 IP(可能存在 SIEM)或扫描网络以检测其中的 SIEM。若要在特定 IP 地址上扫描并检测 SIEM,请使用选项 1;扫描网络则使用选项 2。
选择选项 1 “扫描并检测 SIEM”后,工具会请求输入 IP 地址,以便扫描支持的 SIEM 的特定端口,并连接到 Web 或管理界面以验证其确实是 SIEM。
一旦通过上述方法检测到 SIEM,工具会以红色显示检测到的 SIEM,并提供启动该 SIEM 攻击模块的选项。
选择选项 2 “在网络中查找 SIEM”后,工具会请求以 CIDR 格式输入要扫描的网络,例如:192.168.137.0/24。输入信息后,SIEMs Framework 首先执行发现以检测活跃系统;然后扫描支持的 SIEM 的默认端口;最后连接到每个系统的 Web 或管理界面以验证其确实是 SIEM。
一旦通过上述方法检测到 SIEM,工具会以红色显示检测到的 SIEM,并请求输入要攻击的 SIEM 的 IP 地址。
输入“y”并选择启动 Splunk 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。前两个攻击无需凭据,但第五个攻击需要 Splunk 管理员权限。
此攻击模块包含一个针对 Splunk 的专用字典 dict.txt,由 2018 年最常用的 100 个密码以及 SIEM 商标名和其管理员用户的各种排列组成,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /splunk/dict.txt,前提是保留文件名。Splunk 密码策略不适用于具有管理员角色的用户,因此关于密码或账户因登录失败而被锁定的限制不适用。 在开始字典攻击之前,工具会验证目标 Splunk 是否为免费版本(不使用任何身份验证),或者是否仍保留了旧版本默认密码“changeme”:
如果目标 Splunk 服务器的 Web 界面处于活动状态,此模块允许在不需认证的情况下从 Web 界面本身获取服务器和会话信息。8000 是 Splunk Web 界面的默认端口;使用此模块需要知道并输入 Web 界面公布的端口。
此模块可用于 Splunk Server 或 Universal Forwarder。使用需要 Splunk 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。模块结果是当前 Splunk 安装的信息:版本、操作系统、Splunk 配置等。
此模块仅用于 Splunk 服务器。使用需要 Splunk 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。模块结果是 Splunk 上用于连接事件源设备的应用所存储的所有凭据。
此模块可用于 Linux Splunk Server。使用需要 Splunk 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。该模块使用索引加载目标文件,结果是安装 Splunk 的服务器上 /etc/shadow 文件的内容。
此模块将在 SIEMs Framework 的下一个版本中提供。目前,为了攻陷 Universal Forwarder,可以执行攻击 1 获取凭据,然后执行攻击 7 根据平台安装恶意应用。
此攻击模块允许在 Splunk 上开发和安装旨在攻陷目标系统的恶意应用。首先,需要根据操作系统和要攻击的 Splunk 类型(Splunk Server 或 Universal Forwarder)选择载荷类型。可使用 Linux Python 反向 Shell 或绑定 Shell(适用于 Splunk Server 或 UF);Windows Python 反向 Shell 或绑定 Shell(适用于默认安装 Python 的 Splunk Server);以及可执行绑定 Shell 或用于在 Windows Universal Forwarder(默认未安装 Python)上添加管理员用户的脚本。然后,需要输入用户名、Splunk 管理员密码和攻击者的 IP 地址。
输入“y”并选择启动 Graylog 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。前三个攻击无需凭据,但第四个攻击需要 Graylog 管理员权限。
此攻击模块包含一个针对 Graylog 的专用字典 dict.txt,由 2018 年最常用的 100 个密码以及 SIEM 商标名和其管理员用户的各种排列组成,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /graylog/dict.txt,前提是保留文件名。
此攻击模块验证目标 Graylog 是否在 Web 界面上使用了默认凭据(admin/admin),以及是否使用了默认凭据通过控制台或 SSH 连接系统(ubuntu/ubuntu)。这两组凭据是 Graylog 虚拟机设备(OVA 和 AMI)的默认配置。
此攻击模块验证目标 Graylog 的 MongoDB 数据库是否配置为无认证。如果是,则连接到 MongoDB 并获取配置信息、LDAP 凭据(根据 Graylog 版本可能是明文或加密的)以及 AWS 插件中配置的访问密钥和秘密密钥。如果 LDAP 凭据已加密,则使用 AES CBC 加密。密钥是配置文件 server.conf(标准安装)或 graylog.conf(或 OVA 安装中的 graylog-secrets.json 文件中的 secret_token 字段)中 password_secret 字段的前 16 位,IV 是屏幕上显示的值。
此攻击模块从 Graylog REST API 获取配置信息和 LDAP、AWS 的明文凭据。使用此模块需要 Graylog 管理员凭据。
输入“y”并选择启动 OSSIM 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。第一个攻击无需凭据,后续攻击需要 OSSIM 管理员凭据。
此攻击模块包含一个针对 OSSIM 的专用字典 dict.txt,由 2018 年最常用的 100 个密码以及 SIEM 商标名和其管理员用户的各种排列组成,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /ossim/dict.txt,前提是保留文件名。
此攻击模块允许从 OSSIM 服务器获取配置信息。使用需要 OSSIM 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。模块结果是当前安装的相关配置信息:定义的用户、登录参数(包括 LDAP 配置和密码策略)。
此攻击模块允许从 OSSIM 服务器向攻击者系统获取反向 Shell。使用需要 OSSIM 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。该模块开发一个恶意操作,通过 netcat 连接到攻击者系统。然后,触发一个新策略,在发生任何安全事件时使用该操作进行警告,该事件通过向 OSSIM 服务器进行失败的 SSH 登录尝试触发。最终,以 root 权限从 OSSIM 服务器在端口 12345 上获取反向 Shell。
输入“y”并选择启动 QRadar 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。前两个攻击无需凭据,后续攻击需要 QRadar 管理员凭据或 API 密钥。
此攻击模块包含一个针对 QRadar 的专用字典 dict.txt,由 2018 年最常用的 100 个密码以及 SIEM 商标名和其管理员用户的各种排列组成,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /qradar/dict.txt,前提是保留文件名。此攻击非常慢,因为 QRadar 有保护机制,每 30 分钟只允许 5 次尝试。
此攻击模块包含一个针对 QRadar 的专用字典 apikeys.txt,由 1000 种不同的 API 密钥选项组成,这些密钥保持了此 SIEM 所需的结构。如果您希望使用其他列表,可以替换 /qradar/dict.txt,前提是保留文件名。程序提供随机生成 API 密钥文件的选项。
此攻击模块允许我们通过使用 API 密钥获取服务器配置。使用需要 QRadar API 密钥管理员权限,例如可通过字典攻击(第 2 次攻击)获取。模块结果是当前安装的相关配置信息:定义的用户、网络层次结构和部署主机。
此攻击模块允许我们获取保存在 Ariel 数据库中的用户列表。使用需要 QRadar API 密钥管理员权限,例如可通过字典攻击(第 2 次攻击)获取。模块结果是曾与 Ariel 数据库有过联系的用户的配置信息。
输入“y”并选择启动 McAfee 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。第一个攻击无需凭据,后续攻击需要 McAfee 管理员凭据。
此攻击模块包含一个针对 McAfee 的专用字典 dict.txt,由 7000 个随机生成的密码组成,包含 SIEM 商标名和其管理员用户的各种排列,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /mcafee/dict.txt,前提是保留文件名。此攻击非常慢,因为 McAfee 有保护机制,每 10 分钟只允许 3 次尝试。
此攻击模块包含一个针对 McAfee 的专用字典 dict.txt,由 7000 个随机生成的密码组成,包含 SIEM 商标名和其管理员用户的各种排列,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /mcafee/dict.txt,前提是保留文件名。
此攻击模块允许我们通过使用管理员凭据获取服务器配置。使用需要 SSH 管理员凭据,例如可通过字典攻击(第 2 次攻击)获取。模块结果是当前安装的相关配置信息:网络中的名称服务器、活动服务、网络配置和防火墙配置。
此攻击模块允许我们通过使用管理员凭据获取服务器配置。使用需要 SSH 管理员凭据,例如可通过字典攻击(第 2 次攻击)获取。模块结果是当前安装的相关配置信息:SIEM 发布号、硬盘数据、内存数据、处理器数据、运行时间、下次检查日期状态、规则检查日期状态和下次备份日期。
此攻击模块允许我们通过使用管理员凭据获取服务器配置。使用需要 SSH 管理员凭据,例如可通过字典攻击(第 2 次攻击)获取。模块结果是关于系统用户的相关信息。
输入“y”并选择启动 SIEMonster 攻击模块后,工具会显示所有可针对此 SIEM 执行的攻击。第一个攻击无需凭据,后续攻击需要 SIEMonster 管理员凭据。
此攻击模块包含一个针对 SIEMonster 的专用字典 dict.txt,由 7000 个随机生成的密码组成,包含 SIEM 商标名和其管理员用户的各种排列,包括大小写字母和将元音替换为数字。如果您希望使用其他列表,可以替换 /siemonster/dict.txt,前提是保留文件名。
此攻击模块允许我们通过使用管理员凭据获取服务器配置。使用需要 SSH 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。模块结果是当前安装的相关配置信息:网络中的名称服务器、活跃的 Docker 容器、活动服务列表、网络配置和防火墙配置。
此攻击模块允许我们通过使用管理员凭据获取服务器配置。使用需要 SSH 管理员凭据,例如可通过字典攻击(第 1 次攻击)获取。模块结果是关于系统用户的相关信息。### ElasticSIEM 攻击模块
输入“y”并选择启动ElasticSIEM攻击模块后,工具会显示可针对该SIEM执行的所有可能攻击。第一次攻击无需凭据,但后续攻击需要ElasticSIEM管理员凭据。
该攻击模块包含一个针对ElasticSIEM的特定字典文件 dict.txt,该文件由2018年最常用的7000个密码以及SIEM商品名及其管理员用户的各种排列组成,包括大小写字母和元音替换为数字。如果您希望使用上述列表以外的其他列表,可以替换 /elasticsiem/dict.txt 为任何其他单词列表,前提是保持文件名不变。
该攻击模块允许我们通过使用管理员凭据获取服务器配置。要使用它,需要SSH管理员凭据,例如可以通过字典攻击(第一次攻击)获得。该模块的输出是当前安装的相关配置信息:网络上的名称服务器、活跃的Docker容器、活跃服务列表以及网络配置。
如发现任何错误,请在GitHub中提出issue。非常感谢您的协作!