GOAD ELK 扩展:在 AD 攻击靶场中部署 ELK 栈实现 Windows 事件日志集中采集与分析

发布时间:2026/9/25 5:22:47

GOAD ELK 扩展:在 AD 攻击靶场中部署 ELK 栈实现 Windows 事件日志集中采集与分析 网络安全渗透测试【免费下载链接】GOADgame of active directory项目地址https://gitcode.com/gh_mirrors/go/GOAD点击查看免费下载本篇基于 GOAD 文档 docs/mkdocs/docs/extensions/elk.md 及其配套实现 extensions/elk/系统讲解如何向任意 GOAD 实验环境安装 ELKElasticsearch Logstash Kibana扩展从sshpass依赖与 ludus 模板准备等前置条件到install_extension elk的完整安装链路、各 Provider 下 ELK 虚拟机的资源规格再到服务端 Elasticsearch/Kibana 配置参数与 Windows 端 Winlogbeat Sysmon 日志采集代理的实现细节。读完本文你将能够独立完成 ELK 扩展的安装、理解其底层 Ansible 调用链并通过 Kibana 界面跟踪实验室内的攻击与日志事件。扩展概览向实验环境添加一台 ELK 日志服务器GOAD 的扩展机制允许在已加载的实验lab上动态追加机器。ELK 扩展的元数据定义在 extension.json 中{ name: elk, description: Add an ELK to the current lab, machines: [ elk ], compatibility: [ * ], impact: add a linux machine and add a logbeat agent on all windows machine }从该文件与 extensions/elk/README.md 可以确认该扩展的关键属性属性值说明扩展名elkinstall_extension命令的参数兼容性*适用于所有 GOAD 实验GOAD、GOAD-Light、GOAD-Mini、DRACARYS 等支持的 Providervirtualbox / vmware / aws / azure / ludus见各 provider 子目录新增机器elk{{ip_range}}.50实验网络 IP 段的第 50 位机器命名{{lab_name}}-ELKludus 等 provider 下使用lab-elk主机名影响添加一台 Linux 机器并在所有 Windows 机器上部署日志代理见impact字段安装完成后Kibana 可通过http://ip_range.50:5601访问用于跟踪实验室lab内的安全事件。排查日志字段含义时文档建议参考 Windows Security Log Encyclopediaultimatewindowssecurity 的日志事件百科作为事件 ID 的查询字典。部署拓扑与 Ansible InventoryELK 扩展的机器定义由 Ansible inventory 驱动见 extensions/elk/inventory; EXTENSION : ELK ------------------------------------------ [default] elk ansible_host{{ip_range}}.50 ansible_connectionssh ansible_ssh_common_args-o StrictHostKeyCheckingno ; Recipe associations ------------------- [elk_server] elk ; add log agent for elk ; usage : elk.yml [elk_log:children] domain这里定义了两个关键分组elk_server仅包含elk主机是 ELK 服务端组件Elasticsearch、Logstash、Kibana的安装目标连接方式为 SSHansible_host由实验的{{ip_range}}变量渲染为.50段。elk_log以children方式继承主实验的domain组即所有已加入域的计算机都会安装日志采集代理。这正是extension.json中impact描述的 add a logbeat agent on all windows machine 的实现载体。各 Provider 下的 ELK 机器规格扩展为每个 provider 提供了独立的机器模板资源规格保持一致Ubuntu 22.04、2 核 CPU、约 4 GB 内存VirtualBoxproviders/virtualbox/Vagrantfile 使用bento/ubuntu-22.04公共镜像将宿主机 2210 端口转发到虚拟机 22 端口便于从宿主机 SSH 调试。VMwareproviders/vmware/Vagrantfile。Ludusproviders/ludus/config.yml 声明template: ubuntu-22.04-x64-server-template、ip_last_octet: 50、ram_gb: 4、cpus: 2。AWSproviders/aws/linux.tf 使用22_04-lts-gen2SKU 与t2.medium2 CPU / 4 GB。Azureproviders/azure/linux.tf 使用Standard_B2s2 CPU / 4 GB。前置条件文档列出了两条前置要求均直接关系安装成功与否1. 宿主机安装 sshpassELK 安装过程中涉及 SSH 登录目标机器需要sshpass辅助免交互输入密码sudo apt install sshpass2. Ludus 用户准备 Ubuntu 22.04 模板在 ludus provider 下ELK 机器依赖ubuntu-22.04-x64-server模板需预先添加并构建ludus templates add -d ubuntu-22.04-x64-server ludus templates build其他 providerVirtualBox/VMware 使用 Vagrant 拉取bento/ubuntu-22.04镜像AWS/Azure 使用托管的 Ubuntu 22.04 镜像无需此步骤。安装流程在 GOAD 命令行goad中的操作步骤为# 1. 选择/加载你的实验实例 load instance_id # 2. 安装 elk 扩展 install_extension elkinstall_extension elk执行时GOAD 会按 provider 创建 ELK 虚拟机然后执行扩展的 Ansible playbook extensions/elk/ansible/install.yml# LOGS and Monitoring - name: Install ELK hosts: elk_server become: yes roles: - { role: elk, tags: elk } - name: Install log agent on windows vms hosts: elk_log roles: - { role: logs_windows, tags: agent }playbook 分为两个 playInstall ELK对elk_server组提权become: yes执行elk角色完成服务端部署Install log agent on windows vms对elk_log组即全部domain机器执行logs_windows角色完成 Windows 端采集代理部署。两个 play 分别打了elk与agent标签可单独重跑。服务端Elasticsearch Logstash Kibana 的安装实现服务端角色位于 extensions/elk/ansible/roles/elk/版本参数定义在 defaults/main.ymlelasticsearch_version: 7.x es_cluster_name: elasticsearchelk/tasks/main.yml 的安装链路依次为刷新 apt 缓存cache_valid_time: 86400安装依赖apt-transport-https、gnupg2添加 Elastic 官方 GPG 公钥https://artifacts.elastic.co/GPG-KEY-elasticsearch与软件源deb https://artifacts.elastic.co/packages/7.x/apt stable main通过 apt 安装logstash、openjdk-11-jre、elasticsearch、kibanaElastic 7.x 栈要求 Java 11 运行时拷贝配置文件并修正 systemd 参数依次enablestart三个服务。其中两处值得注意的实现细节Elasticsearch 启动超时放宽lineinfile将/usr/lib/systemd/system/elasticsearch.service中的TimeoutStartSec改为1803 分钟。Elasticsearch 首次启动需要完成集群引导与索引目录初始化默认超时在资源受限的虚拟机上容易触发启动失败这是 2 核/4 GB 规格下保证稳定性的关键补丁。配置文件属主/权限kibana.yml以root:kibana、0660写入/etc/kibana/kibana.ymlelasticsearch.yml以root:elasticsearch、0660写入/etc/elasticsearch/elasticsearch.yml避免服务账户因权限读取失败。elasticsearch.yml 关键参数模板 files/elasticsearch.yml 只保留了少数必要项path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0 http.port: 9200 discovery.type: single-nodenetwork.host: 0.0.0.0http.port: 9200让 Windows 端 Beats 代理可以从实验网络内直连写入日志discovery.type: single-node单节点模式跳过集群发现适合实验室单机部署数据与日志路径分别为/var/lib/elasticsearch与/var/log/elasticsearch。kibana.yml 关键参数模板 files/kibana.yml 中实际生效的两项server.port: 5601 server.host: 0.0.0.0server.host从默认的localhost改为0.0.0.0正是文档中 Kibana is configured onhttp://{{ip_range}}.50:5601 的来源——只有绑定到非回环地址攻击者/分析者才能从跳板机远程访问 Kibana。elasticsearch.hosts未显式配置Kibana 默认连接本机http://localhost:9200与单机部署吻合。客户端在域计算机上部署 Winlogbeat 与 Sysmon文档原文描述为 Install filebeat agent on domain computer machines而在当前仓库实现中该filebeat 系代理具体落地为WinlogbeatBeats 家族中专用于 Windows 事件日志的成员加上Sysmon增强系统日志。实现位于 extensions/elk/ansible/roles/logs_windows/。版本与路径默认值defaults/main.ymlsysmon_download_url_base: https://download.sysinternals.com/files sysmon_install_location: c:\\sysmon sysmon_download_file: Sysmon file_ext: .zip sysmon_config_url: https://raw.githubusercontent.com/SwiftOnSecurity/sysmon-config/master/sysmonconfig-export.xml winlogbeat_service: install_path_64: C:\\Program Files\\Elastic\\winlogbeat install_path_32: C:\\Program Files (x86)\\Elastic\\winlogbeat version: 7.17.6 download: true从默认值可以看出Winlogbeat 版本锁定为7.17.6与服务端elasticsearch_version: 7.x匹配同一大版本栈安装到C:\Program Files\Elastic\winlogbeatdownload: true表示 Ansible 会直接从 Elastic 官方源下载false时则使用角色files/目录下预置的 zip。Sysmon 配置模板采用业界常用的 SwiftOnSecurity sysmon-config仓库内随角色附带了 sysmonconfig-export.xml 与 Sysmon 安装包 Sysmon.zip。安装逻辑角色入口 tasks/main.yml 的流程导入子任务 tasks/winlogbeat.yml 安装 Winlogbeat创建 64 位安装目录 → 检测 winlogbeat 服务是否已装、版本目录是否存在 → 下载/拷贝 zip → 解压 → 用模板渲染winlogbeat.yml→ 执行官方install-service-winlogbeat.ps1注册服务 → 清理旧版本目录将渲染后的winlogbeat.yml再win_copy一份到C:\ProgramData\chocolatey\lib\winlogbeat\tools\安装 Sysmon创建c:\sysmon目录 → 拷贝 Sysmon 压缩包并解压 → 拷贝sysmonconfig-export.xml到c:\sysmon\→ 通过win_service检查sysmon64服务是否存在容错ignore_errors未安装时执行sysmon64.exe -accepteula -i c:\sysmon\sysmonconfig-export.xml带配置注册驱动启动 Winlogbeat检查winlogbeat服务状态若已安装但未运行先win_reboot超时 600 秒、重启后等待 100 秒再执行winlogbeat setup -e初始化并设置服务自启动。winlogbeat setup -e会自动加载 Elastic 官方集成模板Elastic integrations到 Elasticsearch后续在 Kibana 中即可用官方的 Security/Sysmon 仪表盘与解析规则。Winlogbeat 采集配置渲染模板 templates/winlogbeat.yml.j2 定义了完整的日志通道清单这正是 AD 攻击链检测的核心数据源winlogbeat.event_logs: - name: Application ignore_older: 30m - name: System - name: Security processors: - script: lang: javascript id: security file: ${path.home}/module/security/config/winlogbeat-security.js - name: Microsoft-Windows-Sysmon/Operational processors: - script: lang: javascript id: sysmon file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js - name: Windows PowerShell event_id: 400, 403, 600, 800 processors: - script: lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js - name: Microsoft-Windows-PowerShell/Operational event_id: 4103, 4104, 4105, 4106 processors: - script: lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js - name: ForwardedEvents tags: [forwarded] # 按转发通道分别套用 security / sysmon / powershell 处理器 - name: Microsoft-Windows-WMI-Activity/Operational event_id: 5857,5858,5859,5860,5861各通道的检测意图从源码结构看相当清晰SecurityAD 攻击的核心证据4624/4625 登录、4662 对象访问、DCSync 相关事件等Microsoft-Windows-Sysmon/OperationalSysmon 事件进程创建 1、网络连接 3、注册表 13 等捕获横向移动与工具落地Windows PowerShell Microsoft-Windows-PowerShell/Operational只采集脚本块日志4103-4106与命令执行事件400/403/600/800过滤无用的 4104 之前噪声聚焦 PowerShell 攻击脚本Microsoft-Windows-WMI-Activity/Operational仅采集 5857-5861WMI 消费者/筛选器变更这是 WMI 持久化与远程 WMI 横向的典型痕迹ForwardedEvents域环境中部分日志通过事件转发到达模板按来源通道二次匹配处理器保证转发日志同样被解析。每个通道都挂接了 Elastic 模块的 JavaScript 富化处理器winlogbeat-security.js/winlogbeat-sysmon.js/winlogbeat-powershell.js在入库前完成字段解析。网络端点指向模板中的连接参数直接引用 Ansible inventory 中 ELK 主机的地址setup.kibana: host: {{ hostvars[elk].ansible_host }} output.elasticsearch: hosts: [{{ hostvars[elk].ansible_host }}:9200] username: elastic password: changeme数据面所有域计算机的 Winlogbeat 将日志推送到 ELK 机的9200端口Elasticsearch控制面setup.kibana.host指向 ELK 机winlogbeat setup -e时通过 Kibana API 加载仪表盘认证模板使用elastic用户、默认密码changeme直连实验室环境无安全认证生产环境应替换为密钥或专用账户。安装结果与使用安装完成后ELK 机器{{lab_name}}-ELK/ 主机名{{ range_id }}-elkIP{{ip_range}}.50上运行 Elasticsearch9200、Logstash5044 等默认端口、Kibana5601三个常驻服务域内每台 Windows 机器上安装了 Winlogbeat 服务与 Sysmon 驱动事件日志按上述通道清单持续上报在 Kibanahttp://ip_range.50:5601中即可通过 Elastic 内置的 Security 与 Sysmon 集成视图追踪实验内发生的安全事件对照 Windows Security Log Encyclopedia 的事件 ID 释义进行判读。关于卸载extensions/elk/README.md 明确标注 Uninstall : Not implemented yet即当前版本不提供扩展卸载流程删除 ELK 机器需按所选 provider 手动处理。可继续深入的文件路径内容路径扩展文档docs/mkdocs/docs/extensions/elk.md扩展元数据extensions/elk/extension.jsonInventory 与机器分组extensions/elk/inventory安装 playbookextensions/elk/ansible/install.ymlELK 服务端角色extensions/elk/ansible/roles/elk/tasks/main.ymlElasticsearch 配置extensions/elk/ansible/roles/elk/files/elasticsearch.ymlKibana 配置extensions/elk/ansible/roles/elk/files/kibana.ymlWindows 代理角色extensions/elk/ansible/roles/logs_windows/tasks/main.ymlWinlogbeat 渲染模板extensions/elk/ansible/roles/logs_windows/templates/winlogbeat.yml.j2各 Provider 机器定义extensions/elk/providers/赞分享网络安全渗透测试【免费下载链接】GOADgame of active directory项目地址https://gitcode.com/gh_mirrors/go/GOAD点击查看免费下载相关推荐Kue 与 ELK 栈集成集中式日志收集与分析Kue 与 ELK 栈集成集中式日志收集与分析 你是否还在为分布式系统中 Kue 任务日志分散、问题排查困难而烦恼本文将详细介绍如何通过 ELK 栈Ela任务调度后端消息队列Krea2_FP8完整指南如何用普通显卡快速生成高质量AI图像Krea2_FP8完整指南如何用普通显卡快速生成高质量AI图像 想要体验最新的AI图像生成技术却被巨大的模型文件和高配置要求劝退Krea2_FP8正是为你SequoiaDB日志收集ELK栈集中式日志管理SequoiaDB日志收集ELK栈集中式日志管理 概述 在分布式数据库环境中日志管理是运维工作的核心挑战之一。SequoiaDB作为一款分布式文档型数据库数据库分布式数据库文档数据库后端大数据上一篇libdatachannel轻量级WebRTC网络库的实战指南下一篇Obsidian LiveSync 快速入门3分钟搭建私有云同步服务的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/25 5:17:47

工业互联网智慧运维落地:从数据采集到预测性维护闭环

简介:本资源是一份面向工业互联网从业者、智能制造工程师及企业数字化转型决策者的《工业互联网智慧运维整体解决方案》PPT课件,聚焦破解传统设备维护响应慢、定位难、成本高、协同差等痛点,系统阐述基于云计算、物联网、AI与数字孪生的智能维…

2026/9/25 6:12:48

毕业论文降AI处理中的格式保留技巧与工具选择

1. 毕业论文降AI格式保留的核心痛点每年毕业季,最让学生头疼的不是论文写作本身,而是最后的降AI环节。很多同学发现,辛辛苦苦写好的论文,经过降AI处理后,格式全乱了套。标题层级消失、表格错位、公式变成乱码、参考文献…

2026/9/25 6:12:48

Keil5同时安装STM32与C51冲突原因及共存方案

1. 为什么Keil5同时装STM32和C51会“打架”?——从许可证机制看根本矛盾我第一次在实验室电脑上装完Keil MDK-ARM v5.38,兴冲冲点开C51安装包准备给老学长的8051课程项目配环境时,弹窗直接把我钉在原地:“Keil C51已检测到现有ARM…

2026/9/25 6:12:48

AC6328A主从一体蓝牙透传实战:AT指令配置与避坑指南

1. 项目概述与主从一体架构拆解1.1 AC6328A是什么,为什么它值得用AC6328A是珠海杰理科技推出的一款低功耗蓝牙SoC芯片,这颗料在消费电子、物联网透传、智能家居控制这类场景里出镜率很高。它内置了BLE 5.x协议栈,原生支持串口透传&#xff0c…

2026/9/25 6:12:48

庐山派K230 Web监控实战:H.264+WebSocket+MSE低延迟方案

1. 庐山派K230做Web监控,我为什么选这条路庐山派K230这颗板子最近在创客圈里热度不低,6TOPS的NPU算力、双核RISC-V加一颗专用AI核、自带MIPI CSI接口和千兆网口,价格还压在两百块以内。很多人拿到手第一反应是跑个YOLO做目标检测,…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑