alex-mtran/splunk-ad-attack-homelab

GitHub: alex-mtran/splunk-ad-attack-homelab

一个基于 Splunk SIEM 的 Active Directory 安全监控实验室教程,指导如何在 VirtualBox 中搭建完整的攻击检测环境并练习日志分析与威胁狩猎。

Stars: 0 | Forks: 0

# Splunk Active Directory 攻击家庭实验室(进行中) 用于练习 Active Directory 安全监控和攻击检测的家庭实验室,使用 Splunk SIEM。基于 Oracle VirtualBox 虚拟机构建,用于日志摄取和分析。服务器版本为本项目创建时的最新版本。 本项目演示: - Active Directory 安全监控与日志分析 - 使用常见技术和工具进行攻击模拟 - 用于 Windows 事件日志摄取的 SIEM (Splunk) 配置 - 威胁检测与应急响应工作流 ## 目录 1. [初始设置](#initial-setup-anchor-point) * [Windows 10](#windows-10-anchor-point) * [Kali Linux](#kali-linux-anchor-point) * [Active Directory 域控制器](#active-directory-domain-controller-anchor-point) * [Splunk Server](#splunk-server-anchor-point) ## 初始设置 ### 实验架构 宿主机:Windows 11 Home
虚拟机管理器:Oracle VirtualBox
网络:内部网络 (192.168.50.0/24) | 机器 | 操作系统 | IP 地址 | 角色 | |---------|-----|------------|------| | Splunk Server | Ubuntu Server | 192.168.100.10 | SIEM / SOAR | | Active Directory | Windows Server 2022 | 192.168.100.7 | 域控制器 | | Target-PC | Windows 10 | 192.168.100.3 | 目标机器 | | Attacker | Kali Linux | 192.168.100.200 | 攻击机 | Project architecture 本项目根据机器和安装内容分为不同部分,以明确角色和用途。但是,为了实际跟随本项目进行操作,你需要在各部分之间穿插进行,因为它们是相互构建的,而不是完成一部分后再进入下一部分。 ### Oracle VirtualBox Oracle VirtualBox 是一款免费的开源 Hypervisor,允许在单台宿主机上同时运行多个操作系统。它将作为整个实验环境的基础。 1. 下载 Oracle VirtualBox。 2. 运行安装程序并使用默认设置按照安装向导操作。 3. 通过打开 VirtualBox Manager 验证安装。 # ### Windows 10 Windows 10 机器将作为我们的目标端点,代表企业环境中典型的用户工作站。该机器将加入域,由 Sysmon 监控,并将日志转发到 Splunk。 #### 下载 Windows 10 1. 下载 Windows 10 ISO。 2. 点击 **Download Now** 下载 Media Creation Tool。 3. 运行该工具并选择 **Create installation media (USB flash drive, DVD, or ISO file)**。 4. 选择 **ISO file** 并将其保存到已知位置。 #### 创建虚拟机 1. 打开 **Oracle VirtualBox Manager**。 2. 点击 **New** 创建一个新的虚拟机。 3. 填写: **Virtual Name and OS** VM summary before creation **Virtual Hardware** VM hardware settings **Virtual Hard Disk** VM virtual hard disk settings 4. 点击 **Finish** #### 安装 Windows 10 1. 在 Oracle VirtualBox Manager 中,选择并启动 Windows 10 虚拟机。 2. Windows 安装屏幕将自动开始。配置 Windows 设置: Windows setup * 在语言/区域选择屏幕上点击 **Next** * 点击 **Install now** * 选择 **I don't have a product key** * 选择 **Windows 10 Pro**(加入域需要) * 勾选 **I accept the license terms** 并点击 **Next** * 选择 **Custom: Install Windows only (advanced)** * 选择未分配的磁盘空间并点击 **Next** Windows 现在将开始安装。此过程需要 10-15 分钟,并会自动重启几次。安装完成后,Windows 将启动到桌面并显示你配置的用户名。你的 Windows 10 虚拟机现已启动并运行。 #### Windows 设置 1. 选择 **Set up for personal use** 并点击 **Next**。 2. 点击 **Offline Account**。 3. 点击 **Limited Experience**。 4. 输入用户名和密码。 5. 点击 **Not now** 或 **Skip** 跳过可选功能,直到到达 Windows 主屏幕。 6. 将主机名更改为 `target-PC`。在搜索栏中搜索 `PC` 并点击 `Properties` > `Rename this PC`。然后重启机器。再次查看 PC 属性以验证主机名现在是否为 `target-PC`。 PC Properties Update PC name #### 配置静态 IP 1. 在 Windows 10 机器中,打开网络和 Internet 设置。 Open network and internet settings 2. 点击 `Change Adapter Options` > 右键点击 `Ethernet` > 点击 `Properties`。 Change adapter options 3. 选择 `Internet Protocol Version 4 (TCP/IPv4)` > `Properties`。然后,设置静态 IP。点击 `OK`。 Set static IP #### NAT 网络 NAT 网络适配器可实现互联网连接和虚拟机间通信。必须在网络中的所有机器上启用此网络适配器。 1. 在 **Oracle VirtualBox Manager** 中,导航到 **File > Tools > Network**。 Path to network tab 2. 选择 **NAT Networks > Create**。 * 将网络命名为 **SplunkNetwork**。 * 将 IPv4 范围设置为 **192.168.100.0/24**。 * 点击 **Apply**。 Create NAT Network 3. 打开 Windows 10 虚拟机的 **Settings**。 Open Windows 10 settings 4. 导航到 **Network** 并将 **Attached to** 设置为 **NAT Network**。 5. 从下拉菜单中选择 **SplunkNetwork**。 Enable NAT Network for Windows 10 machine 6. 点击 **OK** #### Splunk Universal Forwarder Splunk Universal Forwarder 是一个代理,旨在实时收集、监控数据并将其流式传输到 Splunk Enterprise 或 Cloud。它提供安全、可靠的数据转发,且资源消耗极低。 1. 在 Windows 10 机器中,打开浏览器访问 Splunk 网站 并登录。如果你尚未注册,请按照[此处](#sign-up-for-splunk-anchor-point)列出的注册说明操作。 2. 滚动到页面最底部并按 `Free Trials & Downloads`。 3. 按 `Splunk Universal Forwarder` 的 `Start Download`。 4. 按适合你操作系统的 `Download Now` 并接受条款和协议以开始下载。 5. 打开 `File Explorer` 并转到 `Downloads` 目录。在那里,打开我们刚刚下载的文件。 Downloads folder 6. 勾选方框以接受许可协议并点击 `Next`。Universal Forwarder 的默认设置应设为 `An on-premises Splunk Enterprise instance`。 7. 创建管理员用户名和密码并点击 `Next`。 8. 点击 `Next` 跳过部署服务器。 9. 接收索引器 是 Splunk Server。根据项目架构输入 `192.168.100.10:9997` > `Next` > `Install`。 #### Sysmon Sysmon (System Monitor) 通过检测恶意活动、监控对关键文件的未经授权更改以及分析网络连接或进程创建,向 Windows 事件日志提供详细、持久的系统活动遥测(或日志记录)。 1. 在 Windows 10 机器中,打开浏览器访问 Sysmon 网站 并点击 `Download Sysmon`。 2. 转到 olafhartong sysmon-modular github 页面 并打开 `sysmonconfig.xml` 文件。点击 `Raw` 并将文件保存在 `Downloads` 目录下。 Download sysmonconfig.yml file 3. 打开 `File Explorer`,右键点击 `Sysmon` 文件夹并点击 `Extract All...`。 4. 在解压后的 `Sysmon` 文件夹中,复制文件夹路径。 Copy extracted folder path 5. 使用管理员权限打开 `Windows PowerShell` 并运行以下命令以启动 `Sysmon64`。 Commands to start Sysmon64 6. 打开 `File Explorer`,在 `C:\Program Files\SplunkUniversalForwarder\etc\system\local\` 目录下创建一个名为 `inputs.conf` 的文件,方法是点击 `This PC` > `Local Disk (C:)` 并按照上述路径进入所需目录。 local directory inputs.conf 7. 通过服务器 IP 和端口 `192.168.100.10:8000` 打开 Splunk Web 门户,并使用[此处](#splunk-credentials-anchor-point)创建的凭据登录。 8. 在 Splunk Web 门户主页中,选择 `Settings` > `Indexes`。 Splunk web portal home page 9. `inputs.conf` 文件指示了一个名为 `endpoint` 的索引,我们尚未创建该索引。在这里我们将创建该索引。点击 `New Index`,将其命名为 `endpoint` 并保存。保留所有默认设置。 10. 接下来,我们需要配置 Splunk Server 以接收数据。选择 `Settings` > `Forwarding and receiving` > `Configure Receiving` > `New Receiving Port`。输入监听端口 `9997` 并保存。 Listen on port 9997 11. 现在,如果一切设置正确,我们应该开始看到来自 target-PC 机器的数据。通过选择 `Apps` > `Search and Reporting` > `Skip` > `Skip Tour` 进行验证。在搜索栏中,输入 `index=endpoint` 并搜索。 Splunk logs on index=endpoint #### Atomic Red Team Atomic Red Team 是一个基于 PowerShell 的执行框架,围绕 MITRE ATT&CK 框架构建。它提供了一个简单测试库,可在目标机器上生成真实、可检测的恶意遥测数据。 # ### Kali Linux Kali Linux 机器将作为我们的攻击者,代表安全环境中的威胁行为者。该机器将向 Active Directory 域和目标 Windows 机器生成恶意遥测数据,我们可以在 Splunk 中检测和分析这些数据。 #### 下载 Kali Linux 1. 从 Kali Linux 官方网站下载 Kali Linux 虚拟机镜像。 Kali Linux Download Page 2. 使用 7-zip 解压下载的归档文件。 Extract Kali Linux folder with 7-zip 3. 使用 **Oracle VirtualBox** 打开 Kali Linux `.vbox` 文件以导入机器。 Open Kali Linux .vbox file Oracle VirtualBox 4. 导入后,打开 Kali Linux 虚拟机的 **Settings** 并导航到 **Network** 选项卡。 5. 将 **Attached to** 设置为 **NAT Network**,然后从下拉菜单中选择 **SplunkNetwork**。 6. 点击 **OK**。 Enable NAT Network for Kali Linux machine #### 更新登录信息 Kali Linux 不允许通过标准方法更改默认用户的用户名。要重命名账户,我们必须先切换到 root 用户。 1. 启动 Kali Linux 虚拟机并使用默认凭据 `kali`/`kali` 登录。 2. 使用 **Ctrl + Alt + T** 打开终端,或点击顶部栏中的终端图标。 Open terminal 3. 切换到 root 用户并更新 root 密码。 Terminal sign into root user 4. 关闭机器并以 **root** 身份重新登录。 5. 按照本指南重命名默认用户名。 Change username 6. 关闭机器并以 **attacker** 身份重新登录。 7. 设置新密码。 Change password #### 配置静态 IP 1. 打开终端并运行以下命令以记录你当前的网络关、IP 地址和子网掩码: ``` ip r ifconfig ``` IP configuration 2. 右键点击任务栏中的网络图标并选择 **Edit Connections...** 3. 选择 **Wired connection 1** 并点击设置图标以打开其配置。 Path visual to wired connection settings 4. 导航到 **IPv4** 选项卡,并将 **Method** 从 **Automatic (DHCP)** 更改为 **Manual**。 5. 点击 **Add** 并输入以下值: | 字段 | 值 | |---------|-----| | Address | `192.168.100.200` | | Netmask | `255.255.255.0` | | Gateway | `192.168.100.1` | 6. 点击 **Save**。 Add static IP address 7. 重启机器并验证新 IP 地址。 Verify changed IP address # ### Active Directory 域控制器 Active Directory 域控制器 (ADDC) 既是基础设施骨干,也是我们监控是否存在入侵迹象的系统。DC 处理标准管理功能,如身份验证请求、组策略和复制,同时生成 Splunk 收集的日志以实现攻击检测和分析。我们将在 Windows Server 2022 上部署 Active Directory Domain Services。 #### 下载 Windows Server 2022 1. 从 Windows Server 官方网站下载 Windows Server 镜像。 2. 打开 **Oracle VirtualBox** 并点击 **New** 3. 填写: **Virtual Name and OS** Windows Server 2022 Virtual Name and OS **Virtual Hardware** Windows Server 2022 Virtual Hardware 4. 其余保留默认设置并点击 **Finish** #### 配置 Windows Server 2022 1. 启动 **ADDC01** 服务器机器。 2. 点击 **Next** 和 **Install Now**。 3. 选择 **Windows Server 2022 Standard Evaluation (Desktop Experience)** 作为操作系统。 Windows Server 2022 Operating System 4. 接受条款和协议并点击 **Next**。 5. 选择 **Custom: Install Microsoft Server Operating System only (advanced)** 并点击 **Next**。 Windows Server 2022 Installation Type 6. 创建密码并点击 **Finish**。 7. 将主机名更改为 `ADDC01`。在搜索栏中搜索 `settings: PC` 并点击 `View your PC name` > `Rename this PC`。然后重启机器。再次查看 PC 属性以验证主机名现在是否为 `ADDC01`。 #### Splunk Universal Forwarder 1. 在 ADDC01 机器中,打开浏览器访问 Splunk 网站 并登录。如果你尚未注册,请按照[此处](#sign-up-for-splunk-anchor-point)列出的注册说明操作。 2. 滚动到页面最底部并按 `Free Trials & Downloads`。 3. 按 `Splunk Universal Forwarder` 的 `Start Download`。 4. 按适合你操作系统的 `Download Now` 并接受条款和协议以开始下载。 5. 打开 `File Explorer` 并转到 `Downloads` 目录。在那里,打开我们刚刚下载的文件。 Downloads folder 6. 勾选方框以接受许可协议并点击 `Next`。Universal Forwarder 的默认设置应设为 `An on-premises Splunk Enterprise instance`。 7. 创建管理员用户名和密码并点击 `Next`。 8. 点击 `Next` 跳过部署服务器。 9. 接收索引器是 Splunk Server。根据项目架构输入 `192.168.100.10:9997` > `Next` > `Install`。 #### Sysmon 1. 在 ADDC01 机器中,打开浏览器访问 Sysmon 网站 并点击 `Download Sysmon`。 2. 转到 olafhartong sysmon-modular github 页面 并打开 `sysmonconfig.xml` 文件。点击 `Raw` 并将文件保存在 `Downloads` 目录下。 Download sysmon.config.yml file 3. 打开 `File Explorer`,右键点击 `Sysmon` 文件夹并点击 `Extract All...`。 4. 在解压后的 `Sysmon` 文件夹中,复制文件夹路径。 Copy extracted folder path 5. 使用管理员权限打开 `Windows PowerShell` 并运行以下命令以启动 `Sysmon64`。 Commands to start Sysmon64 6. 打开 `File Explorer`,在 `C:\Program Files\SplunkUniversalForwarder\etc\system\local\` 目录下创建一个名为 `inputs.conf` 的文件,方法是点击 `This PC` > `Local Disk (C:)` 并按照上述路径进入所需目录。 local directory inputs.conf 7. 通过服务器 IP 和端口 `192.168.100.10:8000` 打开 Splunk Web 门户,并使用[此处](#splunk-credentials-anchor-point)创建的凭据登录。 8. 现在,如果一切设置正确,我们应该开始看到来自 `ADDC01` 机器以及 `target-PC` 机器的数据。通过选择 `Apps` > `Search and Reporting` > `Skip` > `Skip Tour` 进行验证。在搜索栏中,输入 `index=endpoint` 并搜索。 Splunk logs on index=endpoint #### Active Directory Domain Services # ### Splunk Server Splunk Server 充当此实验室环境的中央日志聚合和分析平台。它摄取并索引通过 Splunk Universal Forwarder 从域控制器和其他端点转发的 Windows 事件日志,以便我们搜索、关联和可视化安全事件。我们将在 Ubuntu Server 24.04 上部署 Splunk Server。 #### 下载 Splunk Server 1. 从 Ubuntu Server 官方网站下载 Ubuntu Server 24.04.4 LTS 镜像。 2. 打开 **Oracle VirtualBox** 并点击 **New** 3. 填写: **Virtual Name and OS** Ubuntu Server 24.04.4 LTS virtual name and os **Virtual Hardware** Ubuntu Server 24.04.4 LTS virtual hardware **Virtual Hard Disk** Ubuntu Server 24.04.4 LTS virtual hard disk 4. 其余保留默认设置并点击 **Finish** #### 配置 Splunk Server 1. 启动 **Splunk** 服务器机器。 2. 选择 **Try or Install Ubuntu Server** 并按键盘上的 **Enter**。 3. 保留默认值并继续,直到到达配置文件设置页面。 Splunk server profile page 4. 填写配置文件页面。 5. 保留默认值并通过点击 **Reboot Now** 重启机器。 6. 当提示错误时,按键盘上的 **Enter** 以继续重启。 7. 重启完成后登录。 Sign into splunk server 8. 更新和升级软件源。 Splunk update and upgrade repository commands 9. 当终端完成更新扫描时,按键盘上的 **Enter**。 #### 配置静态 IP 和互联网连接 因为创建 NAT 网络时 DHCP 设置为启用,默认情况下,NAT 网络 下的每台机器都会获得自己的动态 IP。为了方便并始终与我们的项目图保持一致,我们将此机器配置为具有静态 IP 192.168.100.10。 在 **Splunk** 服务器机器中: 1. 输入命令 `sudo nano /etc/netplan/` 并按 Tab 键自动补全以进入机器的 config.yaml 文件。运行此命令。 Config.yaml command Config.yaml file 2. 更改 config.yaml 内容。按 `Ctrl + X` > `Y` > `Enter` 保存内容。 Change config.yaml contents 3. 运行命令 `sudo netplan apply` 并验证静态 IP 地址为 `192.168.100.10`。 Verify IP address Ping google.com to verify internet connection #### 注册 Splunk 在宿主机中: 1. 在 Splunk 官方网站注册 Splunk 账户。 2. 滚动到页面最底部并按 `Free Trials & Downloads`。 3. 按 `Splunk Enterprise` 的 `Start Download`。 4. 下载 Linux .deb 文件。 #### 安装 Splunk 在 Splunk 服务器机器中: 1. 输入命令 `sudo apt-get install virtualbox` 并按两次 `Tab` 键查看 guest additions。安装 `virtualbox-guest-additions-iso`。 Virtualbox splunk server guest additions options 2. 转到虚拟机顶部栏并点击 `Devices` > `Shared Folders` > `Shared Folder Settings...` Create share folder GUI path Create shared folder 3. 创建一个共享文件夹,路径与包含 Splunk 安装程序的文件夹相同。 Shared folder settings 4. 按 `OK` 直到返回主终端。 5. 运行命令 `sudo reboot` 重启机器。 6. 运行命令 `sudo adduser [username] vboxsf` 将用户添加到 vboxsf 组。 Add user to vboxsf group command Add user to vboxsf group command after installing guest-utils 7. 运行命令 `mkdir share` 创建一个名为 `share` 的文件夹。 Make share folder 8. 将共享文件夹挂载到名为 `share` 的目录。运行命令 `sudo mount -t vboxsf -o uid=1000,gid=1000 [folder name] share/` Mount shared folder onto share directory 9. 运行命令 `cd share/` 进入 `share` 目录并运行 `ls -la` 查看该目录中的所有文件,即 splunk.deb 安装程序。 10. 输入命令 `sudo dpkg -i splunk` 并按 Tab 补全。运行此命令以安装 splunk .deb 包。 Install splunk deb package 11. 运行以下命令以用户 `splunk` 身份运行,以便执行位于 `/opt/splunk/bin` 目录中的 `./splunk` 安装程序可执行文件。 Commands to run splunk executable 12. 通过重复按 `Spacebar` 滚动到底部并接受协议条款。输入管理员用户名和密码并等待安装完成。 13. 运行以下命令以使 Splunk 在每次虚拟机重启时启动(以用户 `splunk` 身份)。 Commands to run ./splunk on reboot
标签:Active Directory, AMSI绕过, OPA, Oracle VirtualBox, PE 加载器, PFX证书, Plaso, SOAR, SOC 模拟, Ubuntu Server, Web报告查看器, Windows Server, Windows 事件日志, 域控制器, 威胁检测, 安全实验环境, 安全运营, 家庭实验室, 扫描框架, 攻击检测, 攻击模拟, 模拟器, 网络安全, 虚拟化, 速率限制, 隐私保护, 靶场, 驱动签名利用