vulnhub靶机darkhole

靶机下载地址:DarkHole: 1 ~ VulnHub

Kali ip:192.168.174.128

靶机ip:192.168.174.135

靶机ip发现

sudo arp-scan -l

开放端口扫描

nmap -p- -sV -A 192.168.174.135

发现开启了22端口和80端口

目录扫描

gobuster dir -u http://192.168.174.135/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

这个地点有点问题,我用dirsearch进行扫描,字典比较全,扫描多出来几个文件

扫描到几个目录  查看一下config,发现数据库文件

发现是个空文档,什么都没有

Dashboard虽然返回200但是输出的信息是无法访问

漏洞利用

进入login页面进行查看

既然有注册的地方,那就先去注册一下,中间白色的框是邮箱(这个颜色搭配真的费眼睛)

注册好了就进行登录,这里发现还存在一个id字段

尝试访问一下id=1的,不能访问

那就在id=2页面进行测试,这里有修改密码,抓包查看,这里尝试把id=1的用户的密码改为666,这里存在的问题是对用户的身份缺少验证。

应该是修改成功了,现在密码有了,然后我们尝试对账号进行爆破。

爆破账号

使用hydra进行破解

hydra -L /usr/share/seclists/Usernames/cirt-default-usernames.txt -p 666 192.168.174.135 http-post-form "/login.php:username=^USER^&password=^PASS^:username or password is incorrect"

这里对命令进行说明一下

-L后面加字典,这里是代表的账号

-p代表密码(小p是单独的一个密码)如果是大P则跟一个字典

192.168.174.135是代表ip

http-post-form表示破解是采用http的post方式提交的表单密码破解,双引号里面是目录:变量&变量:登录不成功时会出现的字段其中的变量必须按照上面的写:username=^USER^&password=^PASS^

破解出的密码是admin,使用admin进行登录查看

文件上传

这里的id值变成了1

而且存在一个上传文件的地方

那就上传个木马进行反弹shell吧

上传php反弹shell的脚本,发现有后端验证,说只允许png,jpg,gif,看着像是白名单,但是上传后发现是个黑名单验证

上传的后缀改为phtml(也可以使用phar),我这里还修改了content-type为image/png

成功上传,且此处的file看着像个链接,鼠标右击file复制链接,然后进行访问

成功接收到shell

权限提升

开启交互模式

SHELL=bash script -q /dev/null

我们在var/www目录下发现了数据库的信息,其中发现之前的admin密码,果然是强密码

使用find查找具有suid权限的命令,这里发现一个特殊的toto

find / -perm -u=s -type f 2>/dev/null

切换到home下发现两个用户,darkhole和john,其中john好像存在有用的信息

其中的toto是root权限的,且是可执行文件,执行一下看看结果

这里输出了id的信息

但是通过cat和strings都没有看到很多可用的信息

这里尝试替换id和修改环境变量进行提权

说明一下这几条命令

创建名为id的文件,将bash文件的位置写入id当中,然后使用export修改环境变量,优先加载tmp下的id文件,echo输出path查看是否修改成功

chmod赋予id可执行权限

这里切换到john目录,执行toto,发现成功切换到了john的用户下

切换到用户john下,那他的一些文件也就可以查看了

密码为root123

有了密码使用sudo -l查看当前用户的权限

发现python3,当前文件夹下又有file.py那就在file中写入内容,使用python进行提权

echo ‘import os;os.system(“/bin/bash”)’ > file.py

使用python3执行,这里的命令要和sudo -l中的一致不能修改的

切换目录,查看root文件,靶机成功结束

猜你喜欢

转载自blog.csdn.net/weixin_52450702/article/details/128084745