Linux提权
之前说了使用suid提权,下面记录下其他方法。
历史记录提权
1 | cat -n ~/.bash_history |
可以找找看有没有泄露的密码,可能是密码的话,也可以去撞库,密码可能存在复用问题,测试下redis,mysql,root的密码等等。
利用使用root权限运行的服务
如果有特定的服务是以root权限运行的,那么可以使用该服务执行命令,此时就可以使用root用户的身份执行命令。
可以看看一些数据库,邮件服务等等,他们的运行用户,这里我用mysql来演示。
1 | 查看那些进程正在运行 |
利用root等超级用户身份运行的易受攻击的mysql版本来获取root用户的访问权限。
查看正在运行的程序
连接进入mysql。
在mysql5.x中,加入了system函数,可以直接执行系统命令,当然是权限允许的。
1 | //我环境没搭好,mysql的启动时mysql而不是root没法复现。当然有很多的问题,例如root用户初始状态是不允许其他用户连接的,需要去修改配置。 |
直接执行系统命令,读取敏感文件。
sudo滥用
sudo工作流程
1 | 将当前用户切换到超级用户下,或切换到指定的用户下, |
输入sudo -l可以查看本用户被允许使用的命令。
1 | 一般我们的sudoers里面的文件,里面会规定一个安全策略 |
所以,这种提权是配置问题。不过也是有很大限制的,因为要手动进sudoers
文件里修改相应配置。
nano的任意读取文件,拿去hash对比获取密码
vim交互模式直接提权到root
定时任务
cron job
定时任务被用于安排那些需要被周期性执行的命令,利用它,可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行。cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab 文件和 /etc/cron.*/ 目录。它同样也会检查 /var/spool/cron/ 目录。
1 | * * * * * 要执行的命令 |
检查/etc/crontab
文件权限看能否写入,或者查看cron运行的脚本的权限,如果权限设置不当,导致我们可以修改此脚本,那么就存在提权可能。
查看定时任务
root用户每分钟执行一次test.sh
脚本,查看test.sh
修改文件,提权。
copy /etc/shadow
,给特定的文件写入命令等,例如给vim sudo权限配置等都可以,相当于可以使用这个bash文件执行任意的root命令。我是懒🐕,就把shadow copy
出来测试下。
内核漏洞
用 uname -a 查明内核版本
网上找找看有没有漏洞,然后找exp打吧,理解不深就最后写了。