使用WAZUH检测LD_PRELAOD劫持、SQL注入、主动响应防御

目录

1、检查后门

使用工具检测后门

1.chkrootkit

2.rkhunter

手动检查文件

检查ld.so.preload文件

2、检测LD_PRELOAD

ubuntu配置

wazuh配置

3、检测SQL注入

ubuntu配置

攻击模拟

4、主动响应


wauzh的安装以及设置代理可以参考本篇:WAZUH的安装、设置代理-CSDN博客

前面我们也介绍过使用LD_PRELOAD劫持动态链接库 ,然后本篇就介绍一下如何使用wazu来检测LP_PRELOAD劫持和SQL注入

1、检查后门

使用工具检测后门

1.chkrootkit

可以直接在命令行中进行安装

apt-get install chkrootkit

然后直接执行chkrootkit就会自动进行后门检测

2.rkhunter

该工具也同样可以使用apt命令直接安装

apt install rkhunter

安装完成后,执行rkhuter -c就会进行后门检测

手动检查文件

虽然工具会提高查找效率,但是我们进行后门检测时,不能仅仅依赖工具,还需要检查一些文件中是否有恶意的文件

检查ld.so.preload文件

/etc/ld.so.preload文件是Linux系统中的一个配置文件,它用于指定在程序加载时要预先加载的共享库,这些共享库会在程序启动时被加载到内存中,以便提供额外的功能或修改程序的行为。

我们如果发现这个文件里面有东西,那么大概率都是攻击者的恶意文件

2、检测LD_PRELOAD

那么下面就演示一下使用wazuh来检测LD_PRELOAD劫持的过程

ubuntu配置

(1)首先我们需要在代理设备上安装监控软件

这里的代理设备以Ubuntu为例,安装监控软件

apt-get install -y auditd

(2)加入对ld_preload劫持的监控规则

echo "-w /etc/ld.so.preload -p wa -k possible_preload_hijack" >> /etc/audit/rules.d/audit.rules

这条规则的意思就是:监控这个/etc/ld.so.preload文件的写入或者增加,就会发出告警 possible_preload_hijack

增加完成后我们可以看一下该文件

可以看到这条规则已经加入到文件里面了

(3)加入规则后需要重新加载以下规则文件

auditctl -R /etc/audit/rules.d/audit.rules

(4)可以查看一下规则是否成功加载 

auditctl -l

(5)然后需要修改一下配置文件

vim /var/ossec/etc/ossec.conf

将一下内容增加到locafile文件的最后

  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/auidt/audit.log</location>
  </localfile>

这里的意思就是监控环境变量

最后重启客户端的wazuh-agent代理服务即可

systemctl restart wazuh-agent

(6)我们现在可以在服务端监控客户端的ld.so.preload文件中试着写一个文件看看规则是否会生效

然后试着执行任意命令:

可以看到,由于在执行命令前会加载该文件中的so文件,但是由于我们随意写了一个文件,就报错说没有该文件,但是确实是加载了

然后我们查看一下日志文件:

tail /var/log/audit/audit.log

可以看到日志文件也记录了该日志

wazuh配置

(1)编辑触发规则

进入到目录:/var/ossec/etc/rules
增加规则:vim local_rules.xml
规则内容:
将一下内容增加到该文件下面
    <rule id="100125" level="10">
    <if_sid>80700</if_sid>
    <field name="audit.key">possible_preload_hijack</field>
    <description>[Config file "ld.so.preload" has been added, modified, or deleted]: Possible dynamic linker hijacking</description>
    <mitre>
      <id>T1574.006</id>
    </mitre>
  </rule>

注:这里不在/var/ossec/ruleset/rules目录中写而是在ossec/rules/ruleset/etc/rules/用户自定义目录写,是因为当wazu升级后如果写在前面的目录由于系统会自动更细,自己写的规则会被删除,但是自定义的规则就不会被删除

(2)重启服务

systemctl restart wazuh-manager.service

(3)然后在客户端模拟恶意用户试着给ls.so.preload文件中增加一个.so文件

(4)然后在wazuh中查看一下安全事件

可以看到了因为客户端的ld.so.preload文件被修改因此wazu上产生了该事件的警告

3、检测SQL注入

不知道SQL注入的小伙伴可以简单的这样理解sql注入即可:SQL 注入是一种攻击,攻击者将恶意代码插入到传输到数据库服务器的字符串中进行解析和执行。成功的 SQL 注入攻击会导致对数据库中包含的机密信息进行未经授权的访问。

本实验中,我模拟sql注入的行为,对ubuntu主机的服务进行sql注入行为然后在wazuh中进行检测

ubuntu配置

执行以下步骤安装 Apache 并配置 Wazuh 代理以监视 Apache 日志。

  1. 更新本地软件包并安装 Apache Web 服务器:

    sudo apt update
    apt install apache2
  2. 如果防火墙已启用,请将其修改为允许外部访问 Web 端口,如果防火墙已禁用,请跳过此步骤。

    ufw app list
    ufw allow 'Apache'
    ufw status
  3. 检查 Apache 服务的状态以验证 Web 服务器是否正在运行:

    systemctl status apache2

  4. 使用curl命令或http://<UBUNTU_IP>在浏览器中打开查看Apache登陆页面并验证安装:

     
  5. 将以下行添加到 Wazuh 代理/var/ossec/etc/ossec.conf文件中,这允许 Wazuh 代理监控 Apache 服务器的访问日志:

      <localfile>
        <log_format>apache</log_format>
        <location>/var/log/apache2/access.log</location>
      </localfile>
    

      6 . 重新启动 Wazuh 代理以应用配置更改:

systemctl restart wazuh-agent

攻击模拟

(1)我们模拟攻击者的SQL注入行为

curl -XGET "http://<UBUNTU_IP>/users/?id=SELECT+*+FROM+users";

当然也可以在浏览器中使用GET传参的方式注入

(2)然后查看以下apache2的日志 

cat /var/log/apache2/access.log

可以看到有记录我们访问的日志

(3)那么再看来看看wazuh那么有没有产生安全事件

可以看到这里产生了安全日志

有的小伙伴会说,为什么这里在wazuh上没有像上面检测ld_preload那样编辑一个sql注入的触发规则呢?原因是wazuh已经将sql注入相关的规则内置在规则里面了,不需要我们手动编写,直接使用即可

4、主动响应

现在我们已经可以检测一些攻击者的攻击事件了,那么检测后如何进行主动响应来进行防御呢?

下面我们就以SQL注入为例来演示一下使用wazuh来进行主动响应

主动响应我们主要是在服务端配置,本例中使用wazuh主机上进行配置

(1)进入/var/ossec/etc目录中

(2)编辑配置文件: vim ossec.conf

找到active respone部分,将以下内容增加进去:

<command>
  <name>host-deny</name>
  <executable>host-deny</executable>
  <timeout_allowed>yes</timeout_allowed>
</command>

这里的意思是增加了一个命令,名为host-deny

但是只有命令是不行的,还需要有调用命令的调用

(3)增加调用

<active-response>
  <command>host-deny</command>
  <location>local</location>
  <rules_id>31103,31171</rules_id>
</active-response>

(4)添加完成后重启

systemctl restart wazuh-manager

(5)现在我们模拟恶意用户使用SQL注入攻击ubuntu主机

可以看到,现在我们再次访问时就已经无法访问了

 那么我们来看看ubuntu主机中的host.deny文件

(6)使用firewall命令也可以实现同样的效果

只需要将调用修改为调用firewall命令即可

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

 (7)然后使用同样的方法来访问,就会发现出现同样的效果

 (8)在iptables中查看

当然,wazuh还可以检测防御的还有很多,这里就不再介绍,详细的可以见参考链接

参考链接:

Detecting common Linux persistence techniques with Wazuh

How to configure active response - Active response

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/283890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自行车服务PEDALWAYS 网站bootstrap5模板

一、需求分析 自行车服务网站的作用是为骑行爱好者和自行车用户提供便捷的信息、工具和服务&#xff0c;以满足他们的需求。以下是一些常见的自行车服务网站的功能&#xff1a; 自行车租赁&#xff1a;提供自行车租赁服务&#xff0c;用户可以在线预订自行车并选择租赁期限&am…

【Java 数组解析:探索数组的奇妙世界】

数组的引入 我们先通过一段简单的代码引入数组的概念。 import java.util.Scanner; public class TestArray01{public static void main(String[] args){//功能&#xff1a;键盘录入十个学生的成绩&#xff0c;求和&#xff0c;求平均数&#xff1a;//定义一个求和的变量&…

C语言与人生:数组交换和二分查找

少年们&#xff0c;大家好。我是博主那一脸阳光&#xff0c;今天和分享数组交换和二分查找。 前言&#xff1a;探索C语言中的数组交换操作与二分查找算法 在计算机编程领域&#xff0c;特别是以C语言为代表的低级编程语言中&#xff0c;对数据结构的理解和熟练运用是至关重要的…

【小白专用】winform启动界面+登录窗口 更新2024.1.1

需求场景&#xff1a;先展示启动界面&#xff0c;然后打开登录界面&#xff0c;如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面&#xff0c;使用ShowDialog显示界面&#xff0c; 然后在启动界面中添加定时器&#xff0c;来实现显示一段时间的效果&#xff0c;等…

Spring 是如何解决循环依赖问题的方案

文章目录 Spring 是如何解决循环依赖问题的&#xff1f; Spring 是如何解决循环依赖问题的&#xff1f; 我们都知道&#xff0c;如果在代码中&#xff0c;将两个或多个 Bean 互相之间持有对方的引用就会发生循环依赖。循环的依赖将会导致注入死循环。这是 Spring 发生循环依赖…

电机(一):直流有刷电机和舵机

声明&#xff1a;以下图片来自于正点原子&#xff0c;仅做学习笔记使用 电机专题&#xff1a; 直流电机&#xff1a;直流有刷BDC&#xff08;内含电刷&#xff09;&#xff0c;直流无刷BLDC&#xff08;大疆的M3508和M2006&#xff09;,无刷电机有以下三种形式&#xff1a;&a…

超市订单管理系统

比较简单的超市订单管理系统

十大排序的个人总结之——选择排序

一、选择排序&#xff1a; 选择排序是所以用到它的时候&#xff0c;数据规模越小越好。 时间复杂度&#xff1a;无最好最坏&#xff0c;永远都是O(n) 不占用额外空间&#xff08;唯一好处&#xff09; 还不稳定&#xff08;几乎已经被淘汰了的排序算法&#xff09; 1. 算法…

基于Springboot实现天天生鲜销售电商平台

SSM毕设分享 基于Springboot实现天天生鲜销售电商平台 1 项目简介 Hi&#xff0c;各位同学好&#xff0c;这里是郑师兄&#xff01; 今天向大家分享一个毕业设计项目作品【】 师兄根据实现的难度和等级对项目进行评分(最低0分&#xff0c;满分5分) 难度系数&#xff1a;3分 …

MySQL基础笔记(1)基础理论

一.基本概念 DB&#xff1a;数据库&#xff0c;存储数据的仓库&#xff0c;数据是有组织地进行存储DBMS&#xff1a;操纵和管理数据库的大型软件 SQL&#xff1a;结构化查询语言&#xff0c;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库的统一标准 &…

uniapp:实现手机端APP登录强制更新,从本地服务器下载新的apk更新,并使用WebSocket,实时强制在线用户更新

实现登录即更新&#xff0c;或实时监听更新 本文介绍的是在App打开启动的时候调用更新&#xff0c;点击下方链接&#xff0c;查看使用WebSocket实现实时通知在线用户更新。 uniapp&#xff1a;全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket&#xff0c;ap…

ECharts与Excel的火花

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、ECharts&#xff1a;现代数据可视化的利器 二、Excel&#xff1a;经典的数据处理与分析工具 三、ECharts与Excel的结合&#…

Linux软件包管理器——yum命令

如何使用yum 一、快速认识yum(简单介绍)二、快速使用yum2.1 rzsz2.2 linux命令行小游戏和彩蛋 三、yum的整个生态问题 一、快速认识yum(简单介绍) Linux中我们也要进行工具/指令/程序&#xff0c;安装&#xff0c;检查卸载等&#xff0c;需要yum的软件 安装软件的方式&#xf…

视频合并软件,重塑你的创意世界

在数字化的世界里&#xff0c;视频已经成为了我们表达自我、传递信息的重要方式。而合并视频&#xff0c;更是将这种表达推向了一个新的高度。通过简单的操作&#xff0c;我们不仅能够将不同的视频完美地融合在一起&#xff0c;更能赋予它们全新的含义。 所需工具&#xff1a;…

HarmonyOS4.0系统性深入开发11通过message事件刷新卡片内容

通过message事件刷新卡片内容 在卡片页面中可以通过postCardAction接口触发message事件拉起FormExtensionAbility&#xff0c;然后由FormExtensionAbility刷新卡片内容&#xff0c;下面是这种刷新方式的简单示例。 在卡片页面通过注册Button的onClick点击事件回调&#xff0c;…

ShuffleNet V2:高效CNN架构设计实用指南

摘要 目前&#xff0c;神经网络架构设计主要以计算复杂度的间接指标&#xff08;即 FLOPs&#xff09;为指导。然而&#xff0c;直接指标&#xff08;如速度&#xff09;还取决于其他因素&#xff0c;如内存访问成本和平台特性。因此&#xff0c;这项工作建议在目标平台上评估…

C语言之sizeof详解,5点透析,帮你真正了解它

今天也要继续坚持 前言 今天复习C语言了解到不少和她有关的知识&#xff0c;才知道之前对他了解甚少&#xff0c;于是写下博客及时记录自己的所得&#xff0c;与大家分享一下 第一点&#xff1a;sizeof不是函数 sizeof是一个关键字而不是函数&#xff01;是的&#xff0c;他…

一起学量化之KDJ指标

KDJ指标,也称为随机指数,是一个常用的技术分析工具。它由三条线组成:K线、D线和J线,分别代表不同的市场动态。KDJ指标通过分析最高价、最低价和收盘价计算得出。 1. KDJ指标理解 J线是移动速度最快的线,可以提供更加敏锐的市场信号。K线是指标的核心,显示市场的即时动态。…

ubuntu22.04安装anacoda遇到的坑

这几天把用了3年的windows10换成了ubuntu22.04 各种环境都得配置&#xff0c;本文记录下遇到的坑。 1、anacoda在ubuntu上也可以用官方也提供了安装包&#xff0c;但是没有图形界面&#xff0c;需要以命令行的方式安装和运行配置 1.1 安装&#xff1a;官网下载后&#xff0c;…

C++ 递归函数 详细解析——C++日常学习随笔

1. 递归函数 1.1 递归函数的定义 递归函数&#xff1a;即在函数体中出现调用自身的函数&#xff0c;即函数Func(Type a,……)直接或间接调用函数本身&#xff1b; 递归函数&#xff1a;在数学上&#xff0c;关于递归函数的定义如下&#xff1a;对于某一函数f(x)&#xff0c;其…