目录
wauzh的安装以及设置代理可以参考本篇:WAZUH的安装、设置代理-CSDN博客
前面我们也介绍过使用LD_PRELOAD劫持动态链接库?,然后本篇就介绍一下如何使用wazu来检测LP_PRELOAD劫持和SQL注入
可以直接在命令行中进行安装
apt-get install chkrootkit
然后直接执行chkrootkit就会自动进行后门检测
该工具也同样可以使用apt命令直接安装
apt install rkhunter
安装完成后,执行rkhuter -c就会进行后门检测
虽然工具会提高查找效率,但是我们进行后门检测时,不能仅仅依赖工具,还需要检查一些文件中是否有恶意的文件
/etc/ld.so.preload文件是Linux系统中的一个配置文件,它用于指定在程序加载时要预先加载的共享库,这些共享库会在程序启动时被加载到内存中,以便提供额外的功能或修改程序的行为。
我们如果发现这个文件里面有东西,那么大概率都是攻击者的恶意文件
那么下面就演示一下使用wazuh来检测LD_PRELOAD劫持的过程
(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
可以看到日志文件也记录了该日志
(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上产生了该事件的警告
不知道SQL注入的小伙伴可以简单的这样理解sql注入即可:SQL 注入是一种攻击,攻击者将恶意代码插入到传输到数据库服务器的字符串中进行解析和执行。成功的 SQL 注入攻击会导致对数据库中包含的机密信息进行未经授权的访问。
本实验中,我模拟sql注入的行为,对ubuntu主机的服务进行sql注入行为然后在wazuh中进行检测
执行以下步骤安装 Apache 并配置 Wazuh 代理以监视 Apache 日志。
更新本地软件包并安装 Apache Web 服务器:
sudo apt update
apt install apache2
如果防火墙已启用,请将其修改为允许外部访问 Web 端口,如果防火墙已禁用,请跳过此步骤。
ufw app list
ufw allow 'Apache'
ufw status
检查 Apache 服务的状态以验证 Web 服务器是否正在运行:
systemctl status apache2
使用curl
命令或http://<UBUNTU_IP>
在浏览器中打开查看Apache登陆页面并验证安装:
将以下行添加到 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注入相关的规则内置在规则里面了,不需要我们手动编写,直接使用即可
现在我们已经可以检测一些攻击者的攻击事件了,那么检测后如何进行主动响应来进行防御呢?
下面我们就以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还可以检测防御的还有很多,这里就不再介绍,详细的可以见参考链接
参考链接: