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

news2024/11/29 20:49:37

目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt之Quick模块】6. QML语法详解_3 QML对象特性

概述 每一个QML对象类型都包含一组已定义的特性。当进行实例时都会包含一组特性&#xff0c;这些特性是在对象类型中定义的。 一个QML文档中的对象类型声明了一个新的类型&#xff0c;即实例出一个类型。 其中包含以下特性。 the id attribute &#xff1a; id特性property a…

《教育观察》是什么级别的期刊?是正规期刊吗?能评职称吗?

教育类&#xff5c;《教育观察》知网收录 《教育观察》始终秉持“ 立足教育实践&#xff0c;展望教育未来”&#xff0c;致力于在教育实践中以“观察”为方法&#xff0c;以“观察者”为主体&#xff0c;以“新观察”为旨趣&#xff0c;打造从教育实践中洞察教育未来的教育研究…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 2

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第四节 参数传递对堆栈的影响 2 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理](htt…

c语言:打印平行四边形|练习题

一、题目 输入平行四边形的边数&#xff0c;用星号打印平行四边形 如图&#xff1a; 二、思路分析 图形分为两部分 1、左边的空格 2、右边的星号 因此&#xff0c;把空格和星号合起来&#xff0c;就是要求的图形 三、代码图片【带注释】 四、源代码【带注释】 #include <s…

你逛过凌晨四点的校园吗?--大四毕业生的年终总结

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 又是一年的年终总结&#xff0c;我也迎来了自己的毕业季&#xff0c;没错&#xff0c;我马上要毕业啦&#xff01;不知道大家是什么时候认识我的呢&#xff0c;又或者是第一次发现我~这一年&#xff0c;迎接过朝阳、拍下过…

手摸手系列之SpringBoot+Vue2项目整合高德地图实现车辆实时定位功能

前言 最近在做一个物流内陆运输的项目&#xff0c;其中的一个关键功能是根据车辆的GPS数据在页面上实时显示车辆位置信息。由于我们已经获得了第三方提供的GPS数据&#xff0c;所以接下来的任务是将这些数据整合到我们的系统中&#xff0c;并利用高德地图API来展示车辆的实时位…

机器学习分类

1. 监督学习 监督学习指的是人们给机器一大堆标记好的数据&#xff0c;比如&#xff1a; 一大堆照片&#xff0c;标记出哪些是猫的照片&#xff0c;哪些是狗的照片 让机器自己学习归纳出算法或模型 使用该算法或模型判断出其他没有标记的照片是否是猫或狗 上述流程如下图所…

解决windows系统找不到msvcr100.dll问题,vcomp100.dll缺失的5个解决方法

在日常使用计算机的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“找不到vcomp100.dll”的错误。那么&#xff0c;vcomp100.dll究竟是什么文件&#xff1f;为什么会出现丢失的情况&#xff1f;本文将为您详细解析vcomp100.dll的作用、丢失原因以及提…

C++的面向对象学习(9):文件操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、类的封装的多文件实现回顾二、文件操作1.对文件进行操作需要头文件<fstream>2.操作文件的三大类方法&#xff1a;读、写、读写 三、实现文本文件的读、写…

【STM32F103】SysTick系统定时器延时函数

SysTick SysTick是Cortex-M3内核中的一个外设&#xff0c;内嵌在NVIC中&#xff0c;叫系统定时器。 当处理器在调试期间被喊停时&#xff0c;SysTick也将暂停运作。 一共有四个寄存器&#xff0c;不过我们通常用前三个&#xff0c;不需要校准。下图出自《STM32F10xxx Cortex…

小兔鲜儿 uniapp - SKU 模块

目录 存货单位&#xff08;SKU&#xff09;​ 插件市场​ 下载 SKU 插件​ 使用 SKU 插件​ 插件类型问题​ 核心业务​ 渲染商品规格​ 打开弹窗交互​ 渲染被选中的值​ 存货单位&#xff08;SKU&#xff09;​ SKU 概念 存货单位&#xff08;Stock Keeping Unit&a…

【教学类-43-11】 20231231 3*3宫格数独提取单元格坐标数字的通用模板(做成2*2=4套、3*2=6套)

背景需求&#xff1a; 1、以前做单元格填充&#xff0c;都是制作N个分开的单元格 &#xff08;表格8&#xff09; 2、这次做五宫格数独的Word模板&#xff0c;我图方便&#xff0c;就只用了一个大表格&#xff0c;第六行第六列隐藏框线&#xff0c;看上去就是分开的&#xff…

Linux | 解决问题Ubuntu重启无法进入系统以及网络无法连接【图文详解】

Ubuntu18.04重启无法进入系统&#xff0c;重开后如图 一直在加载系统内核4.15.0-213-generic,无法加载 错误原因 原本的系统是Ubuntu16.04,使用命令升级到Ubuntu18.04版本&#xff0c;升级重启后&#xff0c;远程无法连接&#xff01; 错误解决 第一步&#xff1a;进入GRUB…

ZigBee案例笔记 - 无线点灯

文章目录 无线点灯实验概述工程关键字工程文件夹介绍Basic RF软件设计框图简单说明工程操作Basic RF启动流程Basic RF发送流程Basic RF接收流程 无线点灯案例无线点灯现象 无线点灯实验概述 ZigBee无线点灯实验&#xff08;即Basic RF工程&#xff09;&#xff0c;由TI公司提供…

neovim调试linux内核过程中索引不到对应头文件问题

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com&#xff0c;github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家访问。 一、环境 neovim–0.9.4 mason的clang…

中小微医院机构云服务(云HIS)平台源码

云HIS&#xff08;Cloud-Based Healthcare Information System&#xff09;重新定义了HIS&#xff0c;目标是为中小型医疗卫生机构提供优质经济的医疗卫生信息化产品及服务&#xff1b;是以健康档案为主线、以电子病历为核心、以云计算技术为基础的医疗卫生系统。云HIS作为基于…

GoogleNetv1:Going deeper with convolutions更深的卷积神经网络

文章目录 GoogleNetv1全文翻译论文结构摘要1 引言2 相关工作3 动机和高层考虑稀疏矩阵 4 结构细节引入1x1卷积核可以减少通道数 5 GoogleNet6 训练方法7 ILSVRC 2014 分类挑战赛设置和结果8 ILSVRC 2014检测挑战赛设置和结果9 总结 论文研究背景、成果及意义论文图表 GoogleNet…

【小沐学Python】Python实现免费天气预报获取(OpenWeatherMap)

文章目录 1、简介1.1 工具简介1.2 费用1.3 注册1.4 申请key 2、接口说明2.1 One Call 3.02.2 Current Weather and Forecasts collection2.2.1 API 调用2.2.2 API 参数 2.3 Historical Weather collection2.4 Weather Maps collection2.5 Other weather APIs 3、接口测试3.1 例…

无监督学习(下)

1.高斯混合模型(GMM) (1)简单概念 高斯混合模型是一种概率模型&#xff0c;它假定实例是由多个参数未知的高斯分布的混合生成的。从单个高斯分布生成的所有实例都形成一个集群&#xff0c;通常看起来像一个椭圆。每个集群都可以由不同的椭圆形状&#xff0c;大小&#xff0c;密…

【C# 技术】 C# 常用排序方式——自定义数据排序

C# 常用排序方式——自定义数据排序 前言 在最近的项目中经常会对C#中的数据进行排序&#xff0c;对于基本数据类型&#xff0c;其排序方式比较简单&#xff0c;只需要调用内置算法即可实现&#xff0c;但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦&…