悠悠楠杉
蓝队加固训练:Linux用户权限排查及加固,linux给用户加权限
正文:
在网络安全攻防演练(红蓝对抗)中,蓝队(防御方)对Linux服务器的权限管控是防御体系的关键基石。攻击者一旦获取用户级权限,往往会尝试提权或横向移动。因此,系统性地排查用户权限配置并实施加固,是蓝队日常运维的重中之重。
一、用户账户深度排查
异常账户扫描
首先聚焦/etc/passwd与/etc/shadow文件。警惕UID为0的非root账户(root的UID始终为0):# 查找非root的UID 0账户 awk -F: '($3 == 0) && ($1 != "root") {print $1}' /etc/passwd
同时检查空口令账户(极高危!):
# 检查shadow文件中密码字段为空的账户 awk -F: '($2 == "") {print $1}' /etc/shadow历史登录痕迹分析
通过last、lastlog命令审查近期登录记录,结合/var/log/auth.log(或/var/log/secure)分析认证日志。重点排查:
- 非工作时间段的异常登录
- 来源IP异常的SSH连接
- 频繁失败的登录尝试(可能为暴力破解)
二、文件权限与SUID/SGID风险
SUID/SGID文件扫描
SUID(Set User ID)和SGID(Set Group ID)位赋予文件执行时临时的属主/属组权限。若被恶意利用,将成为绝佳的提权跳板。全面扫描:# 查找所有SUID文件 find / -perm -4000 -type f -exec ls -l {} \; 2>/dev/null # 查找所有SGID文件 find / -perm -2000 -type f -exec ls -l {} \; 2>/dev/null
蓝队加固动作:
- 白名单比对: 将扫描结果与已知安全的系统SUID/SGID列表(如刚部署的干净系统)进行比对,标记新增或可疑文件。
- 最小化原则: 严格审查非核心应用(如
/usr/bin目录外的自定义脚本)是否必须设置SUID/SGID。对非必要文件坚决移除特殊权限:chmod u-s /path/to/file(移除SUID),chmod g-s /path/to/file(移除SGID)。
全局可写目录监控
全局可写(o+w)的目录意味着任何用户都能在此创建、删除文件。攻击者常利用此类目录放置后门或脚本。排查命令:find / -perm -0002 -type d -exec ls -ld {} \; 2>/dev/null | grep -vE "/proc|/sys|/dev|/run"
特别注意
/tmp、/var/tmp等临时目录的属性。虽然部分应用需要,但需确保noexec(禁止执行)和nosuid(禁用SUID)挂载选项已启用(在/etc/fstab中配置):tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
三、sudo配置精细化管理
sudo是权限提升的核心机制,其配置文件/etc/sudoers是攻击者重点目标。
sudoers审计要点
- NOPASSWD陷阱: 检查是否存在
NOPASSWD标签,这意味着用户执行特定sudo命令时无需输入密码。除非有充分理由且风险可控,否则应移除。 - 通配符滥用: 警惕配置中使用
*(通配符)允许所有命令或路径。应明确限定允许执行的命令列表。 - 危险的ALL权限:
ALL=(ALL) ALL或类似配置赋予用户完全的root权限。需评估是否必要,或用更细粒度的命令列表替代。
- NOPASSWD陷阱: 检查是否存在
加固策略
最小权限原则: 精确配置用户/组能执行的命令。例如,仅允许运维组
ops重启web服务:%ops ALL = (root) /usr/bin/systemctl restart apache2, /usr/bin/systemctl restart nginx禁用危险命令: 明确禁止用户通过sudo执行高风险命令(如
/bin/bash、/usr/bin/vim、/usr/bin/wget到可疑地址)。- 专用工具替代: 对于需要特权的管理任务,开发专用工具(带严格输入校验)替代直接开放
sudo执行原始命令。 - 配置锁护: 永远使用
visudo编辑/etc/sudoers! 它会在保存前检查语法,避免配置错误导致所有sudo功能失效(灾难性后果)。
四、SSH服务安全加固
SSH是远程管理的命脉,也是攻击者最常突破的入口。
关键配置(/etc/ssh/sshd_config)
PermitRootLogin no: 禁止root直接登录,迫使攻击者必须攻破一个普通账户。PasswordAuthentication no: 在条件允许时禁用密码登录,强制使用密钥认证,彻底免疫暴力破解。AllowUsers或AllowGroups: 显式指定允许登录的用户/组,形成白名单。MaxAuthTries 3: 限制密码尝试次数。ClientAliveInterval与ClientAliveCountMax: 设置会话超时,防止空闲连接被利用。
密钥管理
若使用密钥认证:
- 用户私钥必须设置强口令加密。
- 定期审计
~/.ssh/authorized_keys文件,移除失效或未知公钥。 - 服务器端可考虑启用
AuthorizedKeysCommand从集中存储(如LDAP)获取公钥,避免分散管理。
五、持续监控与自动化
防御非一蹴而就:
- 文件完整性监控(FIM): 使用工具(如AIDE、Tripwire或商业EDR)监控
/etc/passwd、/etc/shadow、/etc/sudoers、关键SUID/SGID文件等核心资产的变动。 - 日志集中与分析: 将
auth.log、secure等日志实时发送至SIEM或日志平台,建立异常登录、sudo命令执行、权限变更等告警规则。 - 定期审计: 将上述排查命令封装成脚本,结合Cron定期运行,输出报告供审查。自动化是应对规模化运维的必然选择。
作为蓝队成员,我们必须深刻理解:权限管理是纵深防御的底层支撑。通过严谨的排查、最小化的权限配置、精细化的控制以及持续的监控,我们才能在攻防对抗中筑牢防线,让攻击者的提权之路步履维艰。每一次成功的权限加固,都是对整体安全态势的一次有力提升。
