vulnhub靶场【kioptrix-4】靶机
前言
靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8
攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6
都采用VMware虚拟机,网卡为桥接模式
这里的靶机,官方只给了硬盘文件,没有给出虚拟机可直接加载文件.vmx,所以这里需要自行安装一个,然后导入硬盘
文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载https://pan.quark.cn/s/1f8bfb170c6d
安装靶机
首先使用VMware新建一个虚拟机

然后选择稍后安装操作系统

然后选择其他,默认版本即可

然后一直点击下一步直到完成即可
打开新建虚拟机的设置,添加一个硬盘,该路径就是靶机的硬盘位置


然后这时候把原本新建虚拟机的硬盘移除
这里千万别忘了把网络适配器改为桥接模式

这时候直接启动即可成功

主机发现
使用arp-scan -l或netdiscover -r 192.168.1.1/24,因为这两款工具对于同一局域网,同一网段扫描极快,当然也可以使用nmap扫描,我这里因为设备过多,影响截图,所以采用上面两个

信息收集
使用nmap扫描端口

网站信息探测
访问80端口默认界面,发现是一个登录界面

查看页面源代码,发现是form表单,并且是提交给checklogin.php处理的

尝试进行网站目录爆破,借助gobuster、dirsearch、dirb等工具皆可
gobuster dir -u http://192.168.1.75 -w /usr/share/wordlists/dirb/big.txt -x php,zip,gz,tar,txt,md -b 403-404

访问john和robert都是跳转到index.php
dirsearch -u http://192.168.1.75 -x 404

访问database.sql,发现是类似于日志一样,访问发现添加了一个用户和密码,但是登录网站并不能成功

samba探测
之前扫描出的139和445端口,服务为samba,那么尝试确定其版本
使用nmap脚本测试发现版本为3.0.28a,并且使用之前的脚本探测也是这个版本
nmap -sV 192.168.1.75 --script=smb-os-discovery


使用searchsploit搜索对应的版本漏洞,发现并无好用的,毕竟目的是获取shell等
searchsploit samba 3.0.28a

尝试使用enum4linux测试,发现几个用户
enum4linux 192.168.1.75 -a

不过当测试ssh爆破时,发现长时间就出现超时,所以暂时搁置
漏洞寻找
根据前面收集的信息,暂无直接漏洞可用,那么开启burp或者yakit
尝试对网站进行抓取数据包进行测试,每一步都抓取数据包测试
但是这里不知道什么原因,这里原本的主机在开启burp后突然无法访问成功了,唉,估计是ip测试技术之类的吧,换一个机器测试,毕竟之前也没有抓取数据包,无法得知数据包情况
抓取登录时的数据包

那么尝试在post请求体数据中修改,在username处发现闭合并未有任何效果
在password处发现闭合,出现返回不一样的,这里是数据库的报错

说明存在sql注入,那么尝试万能密码
myusername=john&mypassword=1234'+or+1=1--+&Submit=Login

发现跳转,并且这个重定向有点东西,根据英语意思是否可以理解为登录成功,并在后面指定用户
跟随跳转,发现又跳转到用户界面

再次跟随跳转发现直接登录成功

查看浏览器的界面,并以密码登录,确实成功

这里可以看到登录后,在url的构造是以username为参数指定用户名的,测试直接在url中修改username=robert,但是发现还是john的界面
继续通过抓包修改,也就是以robert登录时的数据包
然后与上面的形式一样进行万能密码测试,发现确实可行
这里注意,抓取的数据包是重新抓取的新的,当然也是可以在其中一个跳转的数据包中修改,也就是在login_success.php?username=john这里修改用户名,也就是前面enum4linux中枚举出的用户名

继续以上面的形式测试loneferret,通过抓包修改的方式以及修改url参数的方式,获取到一个提示
这里因为换了网络,所以这里靶机的ip地址和kali的地址都改变了
靶机地址192.168.10.8,kali地址192.168.10.6

当前获取到的两个用户和密码
| 用户名 | 密码 |
|---|---|
| john | MyNameIsJohn |
| robert | ADGAdsafdfwt4gadfga== |
一般到这里就可以进行下一步的测试了,不过实际情况中,不知道是否还有遗漏
建议进行一次完整的sql注入,这里就不演示了,很简单的,不过大概率是盲注
所以尝试使用sqlmap进行测试,说不定有些东西
吧抓取的数据包复制,并放置在一个文件中即可,命名为data

使用sqlmap,sqlmap -r data --batch --dump

bash逃逸
以john和robert对应的密码,都可以以ssh登录成功,只是这里应该是rbash,太多东西无法使用

这里经过多次测试,发现大多都是无法使用的rbash逃逸,并且可用的命令很少
尝试使用echo写脚本等也是不行。最终无奈,百度一下wp,发现竟然是配合使用,就是这个命令echo os.system('/bin/bash')这个让我不理解。继续搜索,发现这个是lshell的一个漏洞,是针对python2的一个,下面是链接https://dev59.com/unix/LUHGoIgBc1ULPQZFOr8H

靶机内网收集
使用find寻找具有SUID权限的文件
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -print 2>/dev/null

有sudo,但是没有权限,进一步收集,之前在网站存在sql注入,可能与数据库有交互的,那么去网站目录寻找一下是否连接数据库,确实连接数据库,并且还是以root这个权限极高的用户,且无密码

查看网络连接
ss -antlp
netstat -antlp

查看进程,并发现mysql服务确实以root在运行的
ps aux | grep root
ps -ef | grep root

内核版本信息以及系统信息
uname -a/-r
cat /etc/issue
cat /etc/*release
lsb_release

尝试上传脚本pspy64以及les.sh,发现该靶机首先不能执行二进制文件,然后les.sh需要更高的bash版本才行,所以可能隐藏的一些内容,可能无法收集
提权
既然mysql以root执行,并且也是指定root连接,密码也为空,就可能直接联想到udf提权,不过需要进一步验证
首先确定数据库版本信息,然后再次连接数据库,并查看安全配置
mysql -uroot -p
可以连接成功数据库

这里我在前面的raven靶机提到过这个提权方式的,对于这个提权,如果secure_file_priv后没有具体值是,代表可能存在提权的。
并且这里的mysql版本信息,是因为当mysql>=5.1时,是必须把udf的动态链接库文件放置于mysql安装目录下的插件文件夹下,才能创建自定义函数,以提权。这里mysql版本是小于的,所以可直接使用
这里的提权方式可以使用默认的文件lib_mysqludf_sys.so,这个是可以执行系统命令的一个函数,根据情况,若是没有加载,需要使用create加载这个文件
或者也可以使用searchsploit搜索出的c文件中的函数进行提权,这里的文件可以自己编写,当然知道原理即可

查看/bin/bash是否修改为SUID权限

发现确实,并且可以直接输入/bin/bash -p提权至root
查看最终文件

对于使用searchsploit搜索出的,直接进行复原即可,因为文件中有每一步的用法,这里就省略
或者可以看之前的靶机
raven系列,那个是mysql版本>=5.0的。链接:https://mp.weixin.qq.com/s/M1MQcKTW738sx463Vo7pgg
总结
该靶机主要考察:
- 对于sql注入,要结合,不要只看固定的地方,这里是根据
http协议,存在于post方式中,那么依次类推,是否可以存在请求头中呢,要去思考 - 对于
rbash逃逸,也要考虑可能是版本问题,这里就是lshell的版本漏洞,导致执行python中的函数 - 对于
mysql的udf提权,要知道条件,不然就是盲目的去硬碰,这里知道UDF提权条件后,就可以根据版本来进行测试,当然可以自己写提权文件
相关文章:
vulnhub靶场【kioptrix-4】靶机
前言 靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8 攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6 都采用VMware虚拟机,网卡为桥接模式 这里的靶机…...
readline模块详解!!【Node.js】
“书到用时方恨少,事非经过不知难。” —— 陆游 目录 readline 是什么?基本用法:创建 Interface 类:核心流程: Interface 类的关键事件:line:close:pause:…...
软件测试的七大误区
随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识…...
【欢迎来到Git世界】Github入门
241227 241227 241227 Hello World 参考:Hello World - GitHub 文档. 1.创建存储库 r e p o s i t o r y repository repository(含README.md) 仓库名需与用户名一致。 选择公共。 选择使用Readme初始化此仓库。 2.何时用分支…...
解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
问题背景 在 VMware 或 VirtualBox 中安装 Ubuntu 24.04 虚拟机时,遇到无法通过主机名(Hostname)进行网络通信的问题。例如,将虚拟机的主机名设置为 001,执行 ping 001 时返回 ping 0.0.0.1 并超时。此问题通常由 主机…...
给小白的oracle优化工具,了解一下
有时懒得分析或语句太长,可以尝试用oracle的dbms_sqldiag包进行sql优化, --How To Use DBMS_SQLDIAG To Diagnose Query Performance Issues (Doc ID 1386802.1) --诊断SQL 性能 SET ECHO ON SET LINESIZE 132 SET PAGESIZE 999 SET LONG 999999 SET SER…...
CT技术变迁史——CT是如何诞生的?
第一代CT(平移-旋转) X线球管为固定阳极,发射X线为直线笔形束,一个探测器,采用直线和旋转扫描相结合,即直线扫描后,旋转1次,再行直线扫描,旋转180完成一层面扫描,扫描时间3~6分钟。矩阵象素256256或320320。仅用于颅脑检查。 第二代CT (平移-旋转) 与第一代无质…...
【PHP脚本语言详解】为什么直接访问PHP文件会显示空白?从错误示例到正确执行!
前言 作为一名开发者,你是否曾经遇到过这样的问题:写了一个PHP脚本,放到服务器根目录后,直接通过file:///路径访问却显示空白页面?而换成http://localhost却能正常显示?这篇文章将带你深入理解PHP脚本语言…...
软件工程---需求工程
软件需求工程师发现、获取、组织、分析、编写和管理需求的系统方法,以使客户和项目组之间达成共识。 需求工程共包含五个步骤: 需求获取:对业务问题分析,与项目干系人沟通,以理解系统的目标、期望和约束,…...
spring注解开发(Spring整合MyBatis——Mapper代理开发模式、(Spring、MyBatis、Jdbc)配置类)(6)
目录 一、纯MyBatis独立开发程序。 (1)数据库与数据表。 (2)实体类。 (3)dao层接口。(Mapper代理模式、无SQL映射文件——注解配置映射关系) (4)MyBatis核心配…...
散户情绪周期模型(情绪影响操作)
目录 一、个股上涨阶段情绪演化二、个股下跌阶段情绪演化三、底部震荡阶段情绪演化四、情绪观察与操作工具箱1. 情绪自测量表(每日收盘后记录)2. 情绪-指标对照表 五、高阶情绪管理技巧1.认知重构训练2.生理指标监控(需配合智能手表ÿ…...
计算机毕业设计SpringBoot+Vue.js网上商城系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
自动化测试无法启动(java.net.SocketException)
在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…...
智能机器人加速进化:AI大模型与传感器的双重buff加成
Deepseek不仅可以在手机里为你解答现在的困惑、占卜未来的可能,也将成为你的贴心生活帮手! 2月21日,追觅科技旗下Dreamehome APP正式接入DeepSeek-R1大模型,2月24日发布的追觅S50系列扫地机器人也成为市面上首批搭载DeepSeek-R1的…...
osgEarth安装总结
第一步:安装OSG 直接通过git下载源码,使用cmake进行编译, git clone --depth 1 https://github.com/openscenegraph/OpenSceneGraph.git mkdir build cd build cmake .. make sudo make isntall编译过程中缺什么库,就安装什么库 …...
Java多线程与高并发专题——从AQS到ReentrantLock
关于AQS AQS就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下的很多内容都是基于AQS实现了部分功能,比如ReentrantLock,ThreadPoolExecutor,阻塞队列,CountDownLatch,…...
力扣 寻找重复数
二分,双指针,环形链表。 题目 不看完题就是排序后,用两个快慢指针移动,找到相同就返回即可。 class Solution {public int findDuplicate(int[] nums) {Arrays.sort(nums);int l0;int r1;while(r<nums.length){if(nums[l]num…...
第48天:Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式
#知识点 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、Log4j 一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工…...
ES6笔记总结
首先我们需要了解一下什么是 ECMA: ECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这 个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际 什么是 ECMAScr…...
使用Docker Desktop部署GitLab
1. 环境准备 确保Windows 10/11系统支持虚拟化技术(需在BIOS中开启Intel VT-x/AMD-V)内存建议≥8GB,存储空间≥100GB 2. 安装Docker Desktop 访问Docker官网下载安装包安装时勾选"Use WSL 2 instead of Hyper-V"(推荐…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
