Wazuh 是一个免费的开源安全平台,统一了 XDR 和 SIEM 功能。 它可以保护本地、虚拟化、容器化和基于云的环境中的工作负载,帮助组织和个人保护其数据资产免受安全威胁,被全球数千个组织广泛使用,从小型企业到大型企业。
目录
一、下载安装
🌂两种下载方式,其一直接去官网下载OVA文件;其二根据官网文档自行安装
官网下载地址:Virtual Machine (OVA) - Installation alternatives (wazuh.com)
🌂下载后,直接虚拟机打开使用该文件
🌂 开启虚拟机文件后,游览器访问https://你的wazuh ip即可加载Web端界面
#注意:此处"https://",必须加上,否则访问不了界面
二、功能测试
2.1 添加代理
🌂默认登录界面后(下图1)箭头位置有"add agents"字样,点击即可添加代理。
比如我们添加一台windows系统的虚拟机(下图2),选择MSI 32/64 bits
🌂 服务器地址填写自己的wazuh ip地址。代理名称自命名即可。
🌂 分组default默认即可,填写后,我们复制下方生成的命令至windows server 2019的Powershell(管理员)执行,系统会显示正在写入字节,我们等待其完成后,执行启动代理命令"NET START WazuhSvc"。
🌂 返回wazuh界面,就会发现其已经上线连接,显示为active状态。
2.1.1 问题故障及解决
🌂部分小伙伴可能在粘贴代理安装命令后,启动完成,Wazuh界面没有连接上线。此时,我们去agent也就是你想要连接的虚拟机(比如我这里是win2019)查看C:/Program Files(x86)/ossec-agent/ossec.conf 配置文件。
🌂 打开后,直接查看下图三个横线处 ①IP是否为你Wazuh的地址 ②agent_name标签是否为你命名的代理名称。如果不是,手动更改一致后,在Powershell执行"NET STOP WazuhSvc"先关闭该服务,在重新启动"NET START WazuhSvc"。
🌂更有甚者,可能这个文件中没有和我类似的标签代码,这时你直接执行"msiexec.exe /x wazuh-agent-4.7.3-1.msi /qn" 将此代理组件卸载,然后按照上面步骤再重装一次即可正常连接。
# 这里我只给出了Windows的卸载命令,其他centos、ubuntu系统参考官方文档的命令。
卸载 Wazuh 代理 - 卸载 Wazuh --- Uninstalling the Wazuh agent - Uninstalling Wazuh
2.2 SCA测试使用
🌂在我们添加代理后,默认SCA安全配置评估模块扫描时间为12h一次,但一般刚连接上线的系统,wazuh会自动为其扫描出一次结果。
🌂 点击其扫描结果,Passed表示通过(即你的代理主机已经满足了wazuh对该项的修改建议);Failed表示失败(即不满足);Not applicable表示不适用(即wazuh提供的建议在该系统不适用);Score表示得分(wazuh扫描后对你代理主机的评分)
🌂我们选择第一个Passed进行简要分析,可以看到(下图1)其通过注册表分析,建议将"最长密码期限"设置为"<60天,不为0",此项修改位置也给你提供了"计算机配置\策略\Windows 设置\安全设置\帐户策略\密码策略\最长密码期限"。那我们返回win2019虚拟机查看验证(下图2),发现设置为30天,因此满足。
# 以此类推,Failed失败也可以查看,并根据其建议进行更改,这无非是一种帮助用户基线检查的方式,还是很不错的
2.3 告警日志功能
🌂命令行查看:"cd /var/ossec/logs/alerts"目录下,cat查看 alert.logs 文件,随意查看60137规则,其描述为"windows用户注销登录",level等级3
图形化查看:wazuh主页-Modules模块-Security Events安全事件
# 根据此告警日志,用户可以查看一定时间内资产中出现的告警情况,及时做出响应
2.4 查看&修改规则
🌂"cd /var/ossec/ruleset/rules"目录,cat查看0095 sshd_rules.xml文件(下图1),就拿5710规则来讲,我们可以看到它的描述是"尝试用一个不存在的用户登录",level等级为5。
测试方法:使用Xshell或MobaXterm等远程连接软件,或者直接注销界面登录,使用一个不存在用户及密码进行登录(下图3),然后查看安全事件消息即可。
防御方法:既然有了该告警,那我们如何对其防御呢?只需要在 /var/ossec/etc/ossec.conf 配置文件中,找到<active-response>标签,另起一行输入下方几行代码即可(下图2)。当有攻击者尝试使用不存在用户登录时,防火墙会主动响应阻止100s(下图4),此时间范围期间我们游览器刷新访问界面是无法正常加载的。当然你想,也可以直接将时长增加。
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5710</rules id>
<tieout>100</timeout>
</active-response>
2.5 Hydra联动规则5710
🌂使用kali "hydra -l wazuh-user -w 10 -P password.txt -t 10 -v -f wazuh的IP地址 ssh",爆破wazuh ssh登录密码(因为nmap扫描发现开启22端口),连续的密码测试,出现了:
规则5712,等级10——试图访问系统的暴力破解;
规则5551,等级10——短时间内多次登录失败;
规则5760,等级5——身份验证失败;
规则5503,等级5——用户登录失败;
2.6 突发5108规则
🌂由于我也是第一次学习wazuh,在设置防火墙阻止100s响应后,开始认为是系统卡死(因为远程连接界面不动了...),后续才发现是正常现象。但为时已晚,当时的我在卡顿期间疯狂敲击回车、空格,也是意外出现吧,事后爆了5108规则,去查看该规则描述,可能是被我一顿袭击后,真的内存不足,卡死了....也罢,正好在这拿来,让大家伙都看看此规则描述。
2.7 rookit后门检测
🌂查看"/var/ossec/etc/rootcheck"基线检查文件中后门文件"rookit_files.txt",发现Bash_door(下图1),因此我们尝试在 tmp 目录下创建名为mcliZkohb文件(touch /tmp/mcliZkohb),并将配置文件中基线检查轮循时间改为180s(下图2,方便我们测试查看结果),等待后查看安全事件,出现异常告警,触发规则510,等级7(下图3)。
2.8 Vulnerabilities漏洞功能
🌂登录wazuh web界面后,我们发现漏洞模块默认是没有开启的,因此"cd /var/ossec/etc/ossec.conf"文件,设置vulnerabilities-detector模块,<enabled>标签改为yes,设置常规扫描5min(默认),完整扫描1h(本人更改后)一次。
# 确保设置完成时,有一个代理主机开启并连接状态
设置完成后,其会在后台进行扫描(我的笔记本当时是有风扇声音转了起来),等待一段时间后(没到一小时),出现漏洞结果。
# 下图2 是我添加的另外一个代理(win2016)扫描结果详细信息
2.9 SQL注入&XSS跨站脚本尝试
🌂本次sql尝试,我使用了centos7.6测试(windows系统多次尝试未果,还没搞明白什么原因...)。
"yum update && yum install httpd"在centos安装apache服务,然后将centos的httpd日志存放目录 "httpd/access_log" 写入Wazuh的 /var/ossec/etc/ossec.conf文件中(如下图,这样才可以监测到该系统日志信息)
🌂 httpd服务装好后,建议使用其他虚拟机或物理机进行访问(提前关闭centos防火墙),输入 http://centos IP地址,正常回显界面即可。
接下来我们使用sql语句 http://centos IP/?id=1%27%20%20 select%201,2,3%20--+ 进行测试,查看安全事件告警。
🌂使用sql-map工具(我这里用的是kali自带的,命令"sql-map -u http://centos IP/?id=1"),再次进行测试,触发以下规则:
规则31152,等级10——同一源IP多个web服务器400错误代码;
规则31152,等级10——同一源IP多次SQL注入尝试;
若sql-map入住尝试成功,则会触发规则31106,等级6——网络攻击返回代码200(成功)
🌂 访问"http://centos IP/<script>alert(111)</script>",触发规则31105,等级6,XSS跨站脚本尝试。
2.10 Wazuh小结
🌂总而言之,wazuh的功能还是比较丰富的,研究该解决方案,主要是围绕 /var/ossec/etc/ossec.conf /var/ossec/etc/rootcheck /var/ossec/ruleset/rules,还有你agents代理系统中的 /ossec-agent/ossec.conf (windows和linux系统该文件存放位置不一,自行搜索一下)文件进行分析,有兴趣的小伙伴可以根据 /var/ossec/ruleset/rules 中的各种xml文件,研究一下wazuh的各种规则如何触发
至此,Wazuh的学习测试就暂告一段落了,文章有不足的地方,请各位师傅批评指正~
参考文章: