VulnHub靶机入门篇--Kioptrix4

news2024/11/16 2:23:41

1.环境配置

下载地址: https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar

下载完解压之后是一个vdmk文件,我们需要先创建一个新的虚拟机,将vdmk文件导入就行了

先移除原先硬盘,然后再进行添加,网络连接为Nat模式,靶机就是这个了

攻击机:kali(192.168.26.128)-Nat模式

2.渗透测试

信息收集
主机收集
​​​​​​​nmap -sP 192.168.26.0/24

可以得知:靶机ip地址:192.168.26.134

扫描端口
nmap -sV -p- 192.168.26.134

得知开放了22、80、139、445端口,分别查询一下它们的服务

22端口:  ssh 服务,传统的网络服务程序​​​​​​​

80端口:  HTTP(HyperText Transport Protocol,超文本传输协议)

139、445端口:提供Windows文件和打印机共享以及Unix中的Samba服务

查看更详细的信息: 

nmap -nvv -Pn -sSV -p- --version-intensity 9 -A 192.168.26.134
 漏洞收集

由于靶机开放了80端口,因此我们可以在网站上直接进行访问,出现一个登录框

登录框出现的漏洞一般都是sql注入或者弱口令或者爆破

弱口令爆破不出来,我们用工具扫描看看出现什么漏洞

nikto -h 192.168.26.134

漏洞利用

成功查找到sql注入漏洞,抓包查看,直接用sqlmap一把梭

先把数据包放到1.txt文件中,再进行post注入

payload:

python sqlmap.py -r 1.txt --level 3 --risk 3 --dbs --batch

扫描结束,从结果看,并没有可以注入的地方,但是前面有一条可疑信息:

这边有一个提示,参数mypassword可能存在注入,数据库类型为MySQL。

接下来就对这个参数进行一些注入测试:

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=root"
sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=' or '1'='1"

这边用第二条命令检测出了存在注入:

可以看到注入类型为布尔盲注。

接下来在sqlmap命令中加上 --dbs 跑出数据库名:我自己跑不出来【汗流】,看了下别人的库名为members

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=1" --dbs --batch

看到有个members的数据库,接下来-D members --dump 跑出数据库中的内容:

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=1" -D members -dump --batch

可以看见有两个用户,这边用第一个用户进行登录

尝试进行登录,登录成功

 可以看见就是一个成员控制面板,也不像之前的靶场有命令执行的输入框。但是我们这边已经拿到了用户名和密码

获得webshell

通过--os-shell选项直接获得webshell

这里获取失败了

这是成功获取shell的图片

 获得普通用户shell

外尝试使用获得的用户名和密码通过ssh进行登录也成功获得普通用户shell,如图:

哎,这里又又又失败了,连接不上

找到解决办法了,细看此文:ssh 报错 no matching host key type found — 春之禾苗 (sysant.github.io) 

ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa username@xx.xx.xx.xx

突破SHELL限制并提权

给大家介绍一个突破shell限制的命令:echo os.system('/bin/bash')

echo是一个把字符串输出到终端上的命令。 本来是被限制了的shell,如果运行别的命令,就会不予执行。本来你关在牢房里,活动空间不过几平米。然而运行这条命令,就相当于把锁打开。echo相当于我们的中间人,它返回了bash shell。当然这条命令能够逃逸限制,也得益于该Lshell是由python所写,且可用调用python中os模块的system方法来执行系统命令导致的。

然后sudo su 输入john用户的密码MyNameIsJohn:未能获取到root权限,换个方法

查看内核版本,如图

 显然可以使用脏牛提权,尝试上传文件发现无法外连80端口,但是可以外连443端口,且该shell无法执行二进制文件,不存在gcc,因此无法通过内核提权。查看/etc/passwd文件发现john和robert用户默认使用kshell,如图:

cat /etc/passwd

另外还存在一个普通用户loneferret用户。查看开启的端口发现有3306,如图:

netstat -anl

很自然想到的MySQL UDF提权,从前面SQL注入中获取到的信息发现数据库版本是5.0.12,但是在上传动态链接库后导出时出错。然而,在查看mysql数据库时很幸运发现已经存在func表,且表中含有执行命令的函数,如图:

尝试执行id命令,但返回信息为NULL,如图:

开启443端口监听,尝试使用函数执行命令访问443端口,如图:

                    

说明命令执行成功。然后使用msfvenom生成反弹shell 的程序,上传到目标主机并执行,成功获取root权限。

总结

前面的知识点都跟之前题目差不多,后面出现了sql注入的利用,sqlmap工具的使用,以及获得webshell,在获得webshell之后的提权(数据库提权),以及一些linux的常用命令

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

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

相关文章

Computer Software Copyright Registration Certificate

Computer Software Copyright Registration Certificate 计算机软件著作权登记证书

项目实战--JUC之CompletableFuture温故

CompletableFuture温故 一、前言二、Future三、CompletableFuture3.1 CompletableFuture定义3.2 CompletableFuture使用场景3.3 CompletableFuture 常见操作3.3.1 创建CompletableFuture3.3.2 使用CompletableFuture3.3.3 异常处理3.3.4 注意事项 四、CompletableFuture处理工具…

51单片机嵌入式开发:21、STC89C52R控制抢答器+数码管+后台显示+LCD1602x显示

配套程序 STC89C52R控制抢答器数码管后台显示LCD1602x显示 STC89C52R控制抢答器数码管后台显示LCD1602x显示1 概述1.1 项目概述1.2 项目组成部分1.3 功能描述 2 开发环境2.1 支持设备2.2 硬件电路 3 软件代码工程4 演示Proteus仿真5 总结 配套程序 STC89C52R控制抢答器数码管后…

oracle登录报“ORA-27101: shared memory realm does not exist”

oracle登录报“ORA-27101: shared memory realm does not exist” 问题: 1、使用ip:1521/服务名方式连库报错" ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory" 2、sqlplus XX/密码 可以登录数据库 …

linux下使用yum安装mysql

本文使用常规方式手动安装mysql 第一步 下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm第二步 安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm第三步 安装mysql-server yum -y…

一文步让成功搭建AI数字人直播系统!

随着AI数字人直播技术的不断成熟,越来越多的企业都开始使用或计划引入AI数字人直播,来实现直播板块的降本增效。这也让不少创业者看到了AI数字人直播所蕴含着的巨大市场需求和广阔收益空间,从而有了搭建AI数字人直播系统源码的想法。 ​不过&…

flask学习小结

背景 通过官方文档学习 quickstart 第一个app 代码 文件命名为hello.py windows执行set FLASK_APPhello,linux执行export FLASK_APPhello,然后执行flask run即可运行app 默认运行的app是127.0.0.1:5000,可通过-h -p参数改ip地址和端口。…

windows下定时执行bat脚本删除无用文件和文件夹

文章目录 1. 删除脚本编写2. 配置任务计划程序1.搜索任务计划程序2. 创建任务3. 触发器配置4. 创建任务–>操作5. 创建任务–>条件6. 创建任务–>设置7. 确定保存设置 1. 删除脚本编写 echo off REM 设置源目录和要删除的文件的天数阈值 SrcDirE:\xxx DaysAgo30REM 从…

二阶段测试

二阶段测试 1、部署框架前准备工作 服务器类型部署组件ip地址DR1调度服务器 主(ha01)KeepalivedLVS-DR192.168.168.21DR2调度服务器 备 (ha02)KeepalivedLVS-DR192.168.168.22web1节点服务器 (slave01)NginxTomcatMySQL 备MHA managerMHA node192.168.1…

【OpenCV C++20 学习笔记】图片融合

图片融合 原理实现结果展示完整代码 原理 关于OpenCV的配置和基础用法,请参阅本专栏的其他文章:垚武田的OpenCV合集 这里采用的图片熔合的算法来自Richard Szeliski的书《Computer Vision: Algorithms and Applications》(《计算机视觉&#…

【C++】循环结构-for循环

for 循环语法格式&#xff1a; for(起始表达式;条件表达式;末尾循环体) {循环语句} 注意&#xff1a;括号内的三者也可以写出来写在循环语句里&#xff0c;但使用for循环就是为了使循环更加简洁明了&#xff0c;因此不仅以这么做 下面是一个实例 #include<iostream> …

ROS安装key NO_PUBKEY F42ED6FBAB17C654

解决方案 可以手工添加。 ROS1云课→18一键配置_linux ros1配置-CSDN博客 下载ros.key&#xff0c;然后手工添加到对应位置。 ros2407.key master zhangrelay / ros_book GitCode 问题描述 ros2ros2-20l1a001cd:~$ sudo apt update Hit:1 http://ftp.sjtu.edu.cn/ubunt…

010 仿muduo实现高性能服务器组件_Http协议模块

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;仿muduo &#x1f4d2;代码仓库&#xff1a; 项目代码 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言Util模块设计意义整体设计代码如下 HttpRequest模块代码如下…

初始K8s

K8S 基本概念: K8S 的全称为 Kubernetes (K12345678S)&#xff0c;PS&#xff1a;“嘛&#xff0c;写全称也太累了吧&#xff0c;不如整个缩写”。 作用&#xff1a; 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的开源系统。 可以理解成…

web自动化6-pytest③实践测试用例-回归用例web自动化

# -*- coding: utf-8 -*- """ lemut_select - 业务受理 Author: duxiaowei Date: 2024/7/17 """ import timeimport allure import pytest from selenium.webdriver.common.by import By# 业务受理 allure.feature("业务受理") class …

SQL Date Functions | SQL Time Functions 概述

SQL Date Functions | SQL Time Functions 在SQL中&#xff0c;日期和时间函数是用于处理日期和时间数据的重要工具。 SQL Date Functions | SQL Time Functions函数可以从日期时间数据中提取特定的部分、执行日期计算、格式化日期时间等操作。 No.FunctionDescription描述1…

sql注入详解【从数据库架构分析】

文章目录 简介数据库的架构sql注入概念正常语句正常回显页面在页面中使用sql语句 跨库查询sql文件读写影响条件复现读写的路径的问题 sql注入请求分类sql注入请求类型sql注入请求方式&#xff1a;sql注入数据请求格式 数据库的增删改查数据库查询数据库添加数据库删除数据库修改…

【TS】TypeScript中的接口(Interface):对象类型的强大工具

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript中的接口(Interface):对象类型的强大工具引言1. 接口的基本概念1.1 什…

MybatisPlus核心用法

MybatisPlus核心用法 目录 MybatisPlus核心用法1.使用MybatisPlus的基本步骤&#xff1a;2.MybatisPlus是如何获取实现CRUD的数据库表信息的&#xff1f;3.MybatisPlus的常用注解有哪些&#xff1f;如果表名称和实体类名称不符合约定该怎么做&#xff1f;IdType的常见类型有哪些…