准确定位未授权权限提升行为的核心是捕获真实提权动作,包括euid≠uid的execve调用、特权命令执行及关键权限配置文件变更,并通过auditd持久化规则实现精准溯源与验证。

要准确定位未授权的权限提升行为,核心不是查“谁是 root”,而是捕获真实发生的提权动作——比如有效用户 ID(euid)突然变化、执行特权命令、修改关键权限配置。auditd 的优势在于深入系统调用层,不依赖命令名或脚本包装,只记录内核实际执行的动作。
捕获 euid ≠ uid 的 execve 调用
这是最通用、最可靠的提权信号,覆盖 sudo、su、ssh -l root、setuid 程序等所有导致身份切换的场景。
- 添加规则:
-a always,exit -F arch=b64 -S execve -F euid!=uid -k priv_escalation
若需兼容 32 位程序,补一条:
-a always,exit -F arch=b32 -S execve -F euid!=uid -k priv_escalation - 日志中会明确记录 auid(原始登录用户)、uid(当前真实 UID)、euid(有效 UID)、exe(执行路径)和 cmdline(完整命令行),可精准溯源。
监控特权命令二进制文件的执行
绕过参数解析干扰,直接盯住 /usr/bin/sudo、/bin/su、/usr/bin/passwd 等文件被“执行”的瞬间。
- 规则示例:
-w /usr/bin/sudo -p x -k privileged_cmd
-w /bin/su -p x -k privileged_cmd
-w /usr/bin/passwd -p x -k privileged_cmd - -p x 表示仅监控“执行权限触发”,不记录读或写,避免日志噪声。
锁定权限配置文件的变更
提权前常篡改 /etc/sudoers、/etc/shadow 或新增账号,这些操作必须实时捕获。
- /etc/sudoers 修改:-w /etc/sudoers -p wa -k sudoers_change
- /etc/shadow 写入:-w /etc/shadow -p wa -k shadow_modification
- 新建用户:-a always,exit -F arch=b64 -S useradd,groupadd -k account_mgmt
- -p wa 同时捕获“写入”和“属性更改”,覆盖 vim 编辑、chmod、cp 覆盖等手法。
确保规则持久化并验证有效性
临时规则重启即失效,必须写入 rules.d 并重载。
- 将规则分别存为:
/etc/audit/rules.d/10-privilege.rules
/etc/audit/rules.d/20-sensitive-files.rules - 加载规则:RHEL/CentOS 执行 sudo augenrules --load;Debian/Ubuntu 执行 sudo systemctl restart auditd
- 验证是否生效:sudo auditctl -l | grep priv_escalation
- 手动触发一次 su 或 sudo 命令,再运行 sudo ausearch -k priv_escalation -i 查看日志是否完整记录 auid、euid 和 cmdline。
不复杂但容易忽略

















