Vulhub靶场-KIOPTRIX: LEVEL 1

目录

环境配置

端口扫描

漏洞发现

mod_ssl漏洞利用

Samba远程代码执行漏洞利用


环境配置

首先去官网下载靶场导入到虚拟机中

下载地址:Kioptrix: Level 1 (#1) ~ VulnHub

下载完成之后导入到vmware中

这里需要改nat,桥接模式的靶机拿不到IP,按照网上的的教程改成nat模式扫不到端口,最终找到下面的解决办法

  1. 关闭Kioptrix: Level 1 VM 并在VMWARE中移除网络适配器。
  2. 从 VMware 中移除 VM(注意并不是从磁盘删除)。
  3. 浏览到 Kioptrix: Level 1 VMVM 的 VMX 文件的位置并用文本编辑器中开它。
  4. 删除所有以“ethernet0”开头的条目并保存更改。
  5. 然后重新导入虚拟机,并将增加网络设备器,并且其模式为NAT

环境配置好之后可以先看一下靶机的mac地址,方便等会找到靶机IP

端口扫描

根据mac地址确认到靶机的IP为192.168.253.147

首先对靶机进行一个全面的扫描

nmap -A 192.168.253.147

开启的web服务通过访问后没有发现什么有价值的东西,并且目录扫描之后也没有什么可以利用的信息。

漏洞发现

先通过apache的版本去查找一下可以利用的历史漏洞,这里可以看到有三个的mod-ssl版本也符合,这里尝试利用一下。

注:searchsploit 是一个用于搜索漏洞利用代码的命令行工具。是 Metasploit 框架的一部分。

mod_ssl漏洞利用

首先通过locate命令找一下这三个c文件在哪个目录。

这里可以看一下这个c文件应该怎么用,可以知道先下载libssl-dev

然后再进行编译,编译命令gcc -o OpenFuck OpenFuck.c -lcrypto

所以在编译之前先安装一下libssl-dev

找到位置后先把那三个c文件下载到/root/目录下

然后进行编译,21671.c和764.c编译的时候都会报错,但是47080.c不会报错。

然后直接执行程序openfuck,因为前面通过nmap已经确认了操作系统为red-hat,apache的版本为1.3.20,那么符合的只有0x6a和0x6b,这里两个都是一下发现只有0x6b可以成功。

这里也说明了他的用法,后面的-c跟40或者50

这里成功了,但是可以发现用户不是root用户而是普通用户,这里注意一下中间在执行该命令时有报错,提示C文件ptrace-kmod.c找不到,我的环境是出网的,不知道为啥没有下载下来这个文件。索性就直接下载一下,然后在本地利用python开启http服务,然后把c文件47080.c的需要调用这个ptrace-kmod.c文件的地址修改一下。

这里找到链接所在位置,将其中的地址更改为本地

注意这里不要弄错填成127.0.0.1,要填本地ip,

然后重新利用这个47080.c文件去编译得到payload应用程序

然后再一次去执行应用程序去拿到root权限。

Samba远程代码执行漏洞利用

由于nmap没有扫出来samba的版本,所以去网上下载了一个探测samba版本的脚本

下载地址:GitHub - amitn322/smb-version: Python script to get Samba Server Version

这里遇到了两个问题,第一个是没有执行权限,加了权限后报print的错误,这个一看就知道是因为python版本的不同导致的,我这里默认是python3。

用python2执行后得到samba的版本为2.2.1a

然后通过searchsploit扫描漏洞

osx为mac的操作系统,因为靶机为linux,我们直接使用10.c

编译一下得到abc,然后直接执行abc,看一下它的用法,然后由于我们是linxu,直接-b 0

最终得到root权限

MSF可以直接打,但是由于考试不让使用MSF,这里便没有使用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kubenetes-pod高可用

一、概述 实现pod层面的高可用,需要避免容器进程被终止避免Pod被驱逐: 设置合理的resources.memory limits 防止容器进程被 OOMKill,防止Pod被驱逐;设置合理的emptydir.sizeLimit 并且确保数据写入不超过emptyDir的限制&#xf…

【LeetCode刷题-双指针】--977.有序数组的平方

977.有序数组的平方 方法:双指针 由于数组是升序排序的,如果所有的数都是非负的,那么数组平方后,仍然保持升序,但数组中有负数,将每个数平方后,数组就会降序 需要找到数组中负数与非负数的分界…

Lec14 File systems 笔记

文件系统中核心的数据结构就是inode和file descriptor 分层的文件系统: 在最底层是磁盘,也就是一些实际保存数据的存储设备,正是这些设备提供了持久化存储。在这之上是buffer cache或者说block cache,这些cache可以避免频繁的读…

springboot321基于java的校园服务平台设计与开发

交流学习: 更多项目: 全网最全的Java成品项目列表 https://docs.qq.com/doc/DUXdsVlhIdVlsemdX 演示 项目功能演示: ————————————————

前端实现界面切换主题

✨ 目录 ▷ 样式切换主题▷ 变量设置主题 ▷ 样式切换主题 常用的主题切换实现方式之一,就是通过 link 标签的 rel 属性来实现的当 rel 标签的值是 alternate,就代表该样式是可以替换的title 属性要加就全加上或者全不加,因为 title 会导致系…

重生之我是一名程序员 34

哈喽啊大家晚上好! 今天给大家带来的知识是——库函数qsort。首先,给大家介绍一下qsort函数, qsort函数是C标准库中的一种排序函数,用于对数组中的元素进行快速排序。它接受四个参数:待排序数组的基地址,数…

搭建 AI 图像生成器 (SAAS) php laravel

今天来搭一套,AI 图像生成器 是基于 Openai DALLE 2 和 Openai DALLE 3 以及 Stability AI 和稳定扩散 API 构建的脚本,为用户提供了使用简单的提示和大小生成独特自定义图像的可能性。在这个平台上,创意得以快速、高效地实现,借助…

Go vs Rust:文件上传性能比较

在本文中,主要测试并比较了Go—Gin和Rust—Actix之间的多部分文件上传性能。 设置 所有测试都在配备16G内存的 MacBook Pro M1 上执行。 软件版本为: Go v1.20.5Rust v1.70.0 测试工具是一个基于 libcurl 并使用标准线程的自定义工具,能…

Java Web——JavaScript运算符与流程语句

1. 运算符 1.1. 算数运算符 数字是用来计算的,比如:乘法 * 、除法 / 、加法 、减法 - 等等,所以经常和算术运算符一起。 算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余(求模)等 …

【数据分享】2023年我国省市县三级的科技型中小企业数量(Excel/Shp格式)

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平!比如一个城市的金融企业较多,那这个城市的金融产业肯定比较发达;一个城市的制造业企业较多,那这个城市的制造业肯定比较发达。 之前我们给大家分享了…

2020年06月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 如下图所示脚本运行的结果是()? A:画一条直线 B:画一个三角形 C:画一个圆形 D:画一条虚线 答案:D 第2题 运行如下图所示脚本,下面选项中说法错误的是? A:“笔的颜色”…

使用Redis实现分布式锁

Hi, I’m Shendi 使用Redis实现分布式锁 需求场景 需要使用到分布式锁的场景非常多,例如抢单等并发场景,这里举一个例子。 有一个商品,限量出售100个,一个用户下单,数量就减少一个,当剩下最后一个时&…

[深度学习]卷积神经网络的概念,入门构建(代码实例)

# 不再任何人,任何组织的身上倾注任何的感情,或许这就是能活得更开心的办法 0.写在前面: 卷积神经网络的部分在之前就已经有所接触,这里重新更全面地总结一下关于深度学习中卷积神经网络的部分.并且在这里对如何构建代码,一些新的思想和网络做出一点点补充,同时会持续更新一些…

Mac 安装 protobuf 和Android Studio 使用

1. 安装,执行命令 brew install protoc 2. Mac 错误提示:zsh: command not found: brew解决方法 解决方法:mac 安装homebrew, 用以下命令安装,序列号选择中科大(1)或 阿里云 /bin/zsh -c "$(curl…

掌握Shell:从新手到编程大师的Linux之旅

1 shell介绍 1.1 shell脚本的意义 1.记录命令执行的过程和执行逻辑,以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 1.2 脚本的创建 #!/bin/bash # 运行脚本时候执行的环境1.3 自动添加脚本说明信息 /etc/vimrc # vim主配置文件 ~/.vimrc # 该…

C语言开发者的利器:gcc编译命令指南

本文主要介绍gcc编译c语言过程,以及常用命令 文章目录 C语言编译过程1. 预处理(Preprocessing):2. 编译(Compiling):3. 汇编(Assembling):4. 链接&#xff08…

适用于 Windows 的 10 个最佳视频转换器:快速转换高清视频

您是否遇到过由于格式不兼容而无法在您的设备上播放视频或电影的情况?您想随意播放从您的相机、GoPro 导入的视频,还是以最合适的格式将它们上传到媒体网站?您的房间里是否有一堆 DVD 光盘,想将它们转换为数字格式以便于播放&…

深度模型压缩研究回顾

深度模型压缩研究回顾 作者:安静到无声 个人主页 目录 深度模型压缩研究回顾推荐专栏 在本节中,主要介绍了目前主流的深度神经网络压缩与加速方法,主要包括轻量化网络设计、参数量化、知识蒸馏、模型剪枝和硬件加速等,其中模型剪…

Linux系统中sh脚本编写

文章目录 Linux系统中sh脚本编写1.在编写sh脚本前了解一下基本语法1.1 if语句单分支双分支多分枝 1.2 for语法 2. 自己写的demo :自动部署前端项目 (自动拉取代码,打包,部署nginx)3.定时执行 shell脚本 Linux系统中sh脚…

性能分析工具的使用

文章目录 1. 数据库服务器调优的步骤2. 查看系统性能参数3. 统计SQL的查询成本:last_query_cost4. 定位执行慢的SQL:慢查询日志4.1 开启slow_query_log4.2 修改long_query_time阈值4.3 查看慢查询数目4.4 慢查询日志分析工具:mysqldumpslow 5…