陇剑杯2025-siem

本文最后更新于 2025年9月7日 晚上

题目:siem

某企业内网被攻破了,请分析出问题并给出正确的flag

虚拟机系统密码:wazuh-user/wazuh

账号密码admin/admin

介绍

wazuh/wazuh: Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.

Wazuh 是一个 开源的安全平台,集成了 XDR(扩展检测与响应)SIEM(安全信息与事件管理) 功能。它通过在终端、服务器、容器和云平台上部署代理,收集系统日志、文件完整性信息、网络事件等数据,再由中心服务器统一分析、存储和告警。

主要能力包括:

  • 入侵检测:发现恶意进程、Rootkit、可疑网络行为。
  • 完整性监控:检测文件和配置篡改。
  • 日志分析与威胁情报:结合规则与情报库进行威胁识别。
  • 合规与审计:支持 PCI DSS、GDPR、HIPAA 等要求。
  • 云与容器安全:监控 Docker、Kubernetes 以及 AWS、Azure 等环境。

它支持本地、虚拟化、Docker、云原生等多种部署方式,配套有可视化仪表板和搜索引擎,适合企业做 集中化安全监控与响应


那么本题大概率就是和安全信息与事件管理有关,需要对相关的信息进行排查

flag1:攻击者的ip是什么

执行netstat -antlp看有443端口,访问对应的web端,账户admin:admin

Wazuh Agent 会收集原始日志到 /var/ossec/logs/alerts/alerts.json/var/ossec/logs/alerts/alerts.log

srcip → 攻击者 IP

这里直接匹配ip即可

1
sudo grep -rEo --include="*.json" '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/ossec/logs/alerts/ | sort | uniq -c | sort -nr | head -n 10

2025-09-07204040

可以cat内容,这里ip应该是192.168.41.143

2025-09-07204401

也可以前端查看,需要将查看的日志时间线拉开

flag2:在攻击时间段一共有多少个终端会话登录成功

应该会有PAM: Login session opened这个字段内容在日志里,也就是对应rule.description里的内容

1
sudo grep -r '"PAM: Login session opened."' /var/ossec/logs/alerts/ | grep '^.*"timestamp":"2024-12-18'| grep '"uid":"0"' | wc -l 

这个回显是14,一开始我认为的是直接登录到root权限,但实则不然

1
sudo grep -r '"PAM: Login session opened."' /var/ossec/logs/alerts/ | grep '^.*"timestamp":"2024-12-18'| grep '"name":"app"'|wc -l

实际通过第一问知道被攻击的服务是app,所以过滤的应该是agent.name:app,通过排查日志里的内容对应的rule.id:5501所以web端也可以进行简单的过滤获得答案(web端没精准过滤时间)

2025-09-07212008

flag3:攻击者遗留的后门系统用户是什么

一般如果写入后门都会尝试提权,那么可以关注Successful sudo to ROOT executed

1
sudo grep -r '"Successful sudo to ROOT executed."' /var/ossec/logs/alerts/ | grep '^.*"timestamp":"2024-12-18' 

执行这个命令可以用瞪眼法看到有个明显的用户

2025-09-07213322

众所周知,在linux环境添加用户的命令是useradd,那么也可以web端筛选

rule.description里有一个Attacks followed by the addition of an user也可以这么过滤(通过检索信息了解)

2025-09-07214031

flag4:提交攻击者试图用命令行请求网页的完整url地址

这个直接在日志里不太好找,首先的问题就是不了解具体文件是啥,也不知道具体的命令,可以配合agent.name查询data.uri来排查一下信息

2025-09-07214407

典型的文件加.坐简单隐藏,猜测开头的执行命令id这个就是对应的内容

2025-09-07215235

这里完整的ip一个是agent.ip

flag5:提交wazuh记录攻击者针对域进行哈希传递攻击时被记录的事件ID

1
sudo grep -r -i -E '"pass the hash"' /var/ossec/logs/alerts/ | grep '^.*"timestamp":"2024-12-18' 

比较麻烦,看的烦,去web端看具体的内容

对于pth用户应该定位到dc或者pc

2025-09-07220549

做题的流程是首先限制对应的用户为pc,然后pth是高危行为,设置为10及以上,然后点击第一个一看给了一个Possible Pass the hash attack(真巧吧)过滤一下具体看一下信息

pth肯定是针对administrator的,那么排除时间最早的

1
data.win.eventdata.targetOutboundUserName	user01

剩下来的我没什么好的方法(或者说理由)排除,硬要说的话,正常渗透的流程是先尝试,再明确攻击,所以选择偏后的那个,或者最后提交flag的时候挨个试一下1734511987.34749419

flag6:提交攻击者对域攻击所使用的工具

常见抓取的工具如下

  • mimikatz (经典的 hash 抓取与 PTH 工具)
  • impacketpsexec.pywmiexec.py 等远程执行模块)
  • evil-winrm (利用哈希或明文口令远程登录)

那么主要就是看这三个

这里我用的比较狗的方法

2025-09-07224036

flag7:提交攻击者删除DC桌面上的文件名

2025-09-07224233

询问了gpt,这里检索对应的id:553

这里我们先看json的内容,大致需要我们排查的就是syscheck.path,那么手动输入c:\users\administrator\d会跳出对应的文件信息

2025-09-07224637

以安全性原则来看conf文件通常是配置文件,所以我觉得大概率是这个文件

那么最后的答案应该是

md5{192.168.41.143-13-hacker-http://192.168.41.136/.back.php?pass=id-1734511987.34749419-mimikatz-ossec.conf}

3bfc26f5d9f932ccf73f356019585edf


陇剑杯2025-siem
https://0ran9ewww.github.io/2025/09/07/陇剑杯/陇剑杯2025-siem/
作者
orange
发布于
2025年9月7日
更新于
2025年9月7日
许可协议