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

本文主要是介绍使用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

这篇关于使用WAZUH检测LD_PRELAOD劫持、SQL注入、主动响应防御的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/559959

相关文章

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

MySQL中COALESCE函数示例详解

《MySQL中COALESCE函数示例详解》COALESCE是一个功能强大且常用的SQL函数,主要用来处理NULL值和实现灵活的值选择策略,能够使查询逻辑更清晰、简洁,:本文主要介绍MySQL中C... 目录语法示例1. 替换 NULL 值2. 用于字段默认值3. 多列优先级4. 结合聚合函数注意事项总结C

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

MySql中的数据库连接池详解

《MySql中的数据库连接池详解》:本文主要介绍MySql中的数据库连接池方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql数据库连接池1、概念2、为什么会出现数据库连接池3、原理4、数据库连接池的提供商5、DataSource数据源6、DBCP7、C

Spring-AOP-ProceedingJoinPoint的使用详解

《Spring-AOP-ProceedingJoinPoint的使用详解》:本文主要介绍Spring-AOP-ProceedingJoinPoint的使用方式,具有很好的参考价值,希望对大家有所帮... 目录ProceedingJoinPoijsnt简介获取环绕通知方法的相关信息1.proceed()2.g