恶意命令检测实验

基于Wazuh与auditd的实时监控与防御系统

实验概述

实验目标

  • 通过auditd审计系统监控Linux系统中的命令执行行为
  • 配置Wazuh安全监测系统实现恶意命令检测与告警
  • 掌握网络安全防护中的主动防御理念与实践方法

核心技术

Wazuh auditd Ubuntu Kali Linux netcat

实验原理

本实验通过在Ubuntu靶机上部署auditd审计工具,记录系统中所有命令执行行为,再通过Wazuh Agent采集审计日志并发送至Wazuh Manager进行分析。

Wazuh通过预定义的恶意命令列表(CDB List)和自定义规则,实时检测高危命令(如netcat、tcpdump等),并在发现异常时触发告警,实现对网络攻击行为的及时响应。

安全意义

恶意命令执行是黑客常用的攻击手段,通过监控此类行为可有效发现并阻止潜在的入侵活动,保护系统安全。

环境准备

Ubuntu靶机

系统要求

  • Ubuntu 20.04/22.04操作系统
  • 安装OpenSSH Server
  • 配置Wazuh Agent
  • 安装auditd审计工具

Wazuh服务器

组件包含

  • Wazuh Manager
  • Wazuh Dashboard
  • Wazuh Indexer
  • 建议内存≥4GB

攻击机

配置要求

  • Kali Linux操作系统
  • 安装netcat等攻击工具
  • 与靶机网络互通
  • 建议内存≥2GB

网络配置

VMware网络设置

  • 网络模式统一采用"NAT模式"
  • 校园网环境建议使用手机热点+桥接模式
  • 确保三台主机网络可达(使用ping测试)

特别提示

  • Ubuntu靶机需配置弱口令用户,并开启SSH服务
  • Wazuh Server建议直接使用提供的虚拟机镜像
  • 每台主机建议预留40–100GB磁盘空间

实验步骤

步骤1:在Ubuntu靶机上启用auditd

1

安装auditd工具

通过apt命令安装auditd审计系统:

sudo apt -y install auditd
2

启动并设置开机自启

sudo systemctl start auditd
sudo systemctl enable auditd
3

配置审计规则

添加规则以监控所有execve系统调用(记录命令执行):

echo "-a exit,always -F auid=1000 -F egid!=994 -F auid!=-1 -F arch=b32 -S execve -k audit-wazuh-c" >> /etc/audit/audit.rules
echo "-a exit,always -F auid=1000 -F egid!=994 -F auid!=-1 -F arch=b64 -S execve -k audit-wazuh-c" >> /etc/audit/audit.rules
4

重新加载规则

sudo auditctl -R /etc/audit/audit.rules
sudo auditctl -l # 确认规则已加载

结果展示

Wazuh告警截图

Wazuh告警示例,显示检测到的恶意命令nc的告警信息,包含规则ID、等级、时间和详细描述

Wazuh Dashboard中显示的恶意命令执行告警,包含详细的命令信息与风险等级

审计日志示例

type=EXECVE msg=audit(1627834567.123:456): argc=3 a0="nc" a1="-lvp" a2="4444"
type=CWD msg=audit(1627834567.123:456):  cwd="/root"
type=PATH msg=audit(1627834567.123:456): item=0 name="/usr/bin/nc" inode=12345 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PROCTITLE msg=audit(1627834567.123:456): proctitle=6E63002D6C76700034343434
type=SYSCALL msg=audit(1627834567.123:456): arch=c000003e syscall=59 success=yes exit=0 a0=55f7a5b8a2a0 a1=55f7a5b88f60 a2=55f7a5b89140 a3=7ffd5a6b4a80 items=1 ppid=1234 pid=5678 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="nc" exe="/usr/bin/nc.traditional" key="audit-wazuh-c"

auditd记录的netcat命令执行日志,包含命令参数、进程信息等详细数据

注意事项

安全提示

  • 实验需在封闭的测试环境中进行,禁止在生产系统或公共网络中执行
  • 不得将本实验技术用于未经授权的网络攻击行为
  • 实验完成后应及时清理测试环境,避免遗留安全隐患

常见问题

Wazuh Agent无法连接到Manager?

检查网络连通性,确保防火墙开放1514端口,确认agent配置中的manager IP正确

执行命令后没有产生告警?

检查auditd是否正常运行,审计规则是否正确配置,Wazuh服务是否重启

虚拟机网络无法互通?

确认网络模式设置正确,尝试使用NAT模式或桥接模式,检查IP地址是否在同一网段