wazuh环境配置及漏洞复现

wazuh

Wazuh 是一个用于威胁预防、检测和响应的开源平台,它能够跨场所、虚拟化、容器化和基于云的环境保护工作负载。

wazuh的功能

入侵检测

Wazuh 代理扫描被监控的系统,寻找恶意软件,rootkit 和可疑的异常。它们可以检测隐藏文件、隐藏进程或未注册的网络侦听器,以及系统调用响应中的不一致。除了代理功能之外,服务器组件还使用基于特征的入侵检测方法,使用其正则表达式引擎来分析收集的日志数据并寻找危害的指标。

日志数据分析

Wazuh 代理读取操作系统和应用程序日志,并安全地将它们转发给中央管理器,以便进行基于规则的分析和存储。当没有部署代理时,服务器还可以通过 syslog 从网络设备或应用程序接收数据。Wazuh 规则帮助您了解应用程序或系统错误、错误配置、企图和/或成功的恶意活动、违反政策以及各种其他安全和操作问题。

完整性检查

Wazuh 监视文件系统,识别需要密切关注的文件的内容、权限、所有权和属性的更改。此外,它本机识别用于创建或修改文件的用户和应用程序。完整性检查能力可以与威胁情报结合使用来识别威胁或被入侵的主机。此外,一些美国守规标准,如 PCI DSS,要求它。

漏洞检测

Wazuh 代理提取软件清单数据,并将这些信息发送到服务器,在服务器上与不断更新的 CVE 数据库相关联,以识别众所周知的脆弱软件。自动的漏洞评估可以帮助您找到关键资产中的弱点,并在攻击者利用它们破坏您的业务或窃取机密数据之前采取纠正措施。

配置评估

Wazuh 监视系统和应用程序配置设置,以确保它们符合您的安全策略、标准和/或加强指南。代理执行定期扫描,以检测已知存在漏洞、未打补丁或配置不安全的应用程序。此外,可以自定义配置检查,对其进行裁剪以适当地与您的组织保持一致。警报包括更好的配置建议,参考信息和与守规地图的映射。

事故应变

Wazuh 提供开箱即用的主动响应,以执行各种应对主动威胁的对策,例如在满足某些标准时阻止从威胁来源访问系统。此外,Wazuh 还可用于远程运行命令或系统查询,识别危险指标(IOCs) ,并帮助执行其他实时取证或事件响应任务。

合规

Wazuh 提供了一些必要的安全控制,以符合行业标准和规定。这些特性,结合其可伸缩性和多平台支持,可以帮助组织满足技术遵从性需求。Wazuh 广泛应用于支付处理公司和金融机构,以满足 PCI DSS (支付卡行业数据安全标准)的要求。它的 web 用户界面提供了报告和仪表板,可以帮助解决这个和其他规则(例如 GPG13 或 GDPR)。

云安全

通过使用集成模块从著名的云服务提供商那里获取安全数据,例如 Amazon AWS、 Azure 或 Google Cloud,Wazuh 帮助在 API 级别上监控云基础设施。此外,Wazuh 还提供了评估云环境配置的规则,可以很容易地发现弱点。此外,Wazuh 轻量级和多平台代理通常用于实例级监视云环境。

容器安全

Wazuh 提供对 Docker 主机和容器的安全可见性,监视它们的行为并检测威胁、漏洞和异常。Wazuh 代理与 Docker 引擎本地集成,允许用户监视图像、卷、网络设置和运行中的容器。不断收集和分析详细的运行时信息。例如,为以特权模式运行的容器、易受攻击的应用程序、在容器中运行的 shell、对持久卷或映像的更改以及其他可能的威胁发出警报。

wazuh环境搭建

  1. 打开wazuh官网下载OVA启动软件:https://documentation.wazuh.com/current/deployment-options/virtual-machine/virtual-machine.html

在这里插入图片描述

2.点击下载好的OVA,启动wazuh部署

3.准备好VMware,并且准备一台ubuntu虚拟机

4.将虚拟机的网络模式改为仅NET模式

5.重启

service network restart

在这里插入图片描述

6.打开小皮软件,启动Apache服务,然后就可以直接访问了。

在这里插入图片描述

wazuh案例复现

wazuh初体验

当我们使用本地的cmd通过ssh一直连接wazuh的时候便会出现十级报错,此次在后台可以明显的看到有爆破的提示扫描,通过分析其具体的数据包以及对应的规则理解到wuzuh在外来访问的时候,会触发到解码器,其作用是用来抓取关键信息,其中核心便是正则表达式进行正则匹配,当数据来了之后,wazuh程序会分析我们的日志,把这些日志信息发到相对应的解码器去,通过解码器去进行解码,解码完后,再发送到相应的规则,然后把解码完的数据通过规则,再次进行匹配,最终展示到仪表盘的Modules里的Security events里

上题

在这里插入图片描述

在Nginx的/var/www/html目录下创建index.php文件,并且写入以下内容

<?php
function fun($var): bool{
    $blacklist = ["\$_", "eval","copy" ,"assert","usort","include", "require", "$", "^", "~", "-", "%", "*","file","fopen","fwriter","fput","copy","curl","fread","fget","function_exists","dl","putenv","system","exec","shell_exec","passthru","proc_open","proc_close", "proc_get_status","checkdnsrr","getmxrr","getservbyname","getservbyport", "syslog","popen","show_source","highlight_file","`","chmod"];
 
    foreach($blacklist as $blackword){
        if(strstr($var, $blackword)) return True;
    }
 
    
    return False;
}
error_reporting(0);
//设置上传目录
define("UPLOAD_PATH", "./uploads");
$msg = "Upload Success!";
if (isset($_POST['submit'])) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$file_name = $_FILES['upload_file']['name'];
$ext = pathinfo($file_name,PATHINFO_EXTENSION);
if(!preg_match("/php/i", strtolower($ext))){
die("只要好看的php");
}
 
$content = file_get_contents($temp_file);
if(fun($content)){
    die("诶,被我发现了吧");
}
$new_file_name = md5($file_name).".".$ext;
        $img_path = UPLOAD_PATH . '/' . $new_file_name;
 
 
        if (move_uploaded_file($temp_file, $img_path)){
            $is_upload = true;
        } else {
            $msg = 'Upload Failed!';
            die();
        }
        echo '<div style="color:#F00">'.$msg." Look here~ ".$img_path."</div>";
}

前端页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="light"><span class="glow">
            <form enctype="multipart/form-data" method="post" action="./index.php">
                嘿伙计,传个火,点支烟,快活人生?!
                <input class="input_file" type="file" name="upload_file" />
                <input class="button" type="submit" name="submit" value="upload" />
            </form>
    </span><span class="flare"></span>
    </div>
</body>
</html>

运行结果

在这里插入图片描述

SQL注册测试

在CentOS虚拟机上安装apache服务器

在这里插入图片描述

在这里插入图片描述

然后写入SQL语句进行测试,会弹出以下窗口

在这里插入图片描述

在这里插入图片描述

这就是在告诉我们有人在尝试SQL注入

接下来我们尝试用wazuh来拦截这个SQL注入

wazuh有两种封堵方式:

  • 根据告警等级来封堵,比如说当告警等级大于7时,自动进行封堵,但这也容易造成误判,范围太大
  • 根据规则ID来封堵,当触发了某条规则时,自动进行封堵,但这范围太小,面对多条规则不便于写配置文件。

在wazuh服务器,也就是manager的配置文件里写入如下内容

当触发31103和31171这两条规则时,执行firewall-drop命令。

<active-response>
    <command>firewall-drop</command>
    <location>local</location>
    <rules_id>31103,31171</rules_id>
    <timeout>600</timeout>
</active-response>

然后在进行测试

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值