SSL窃听攻击实操

标签: IT hijack proxy security sohu | 发表时间:2009-09-29 05:07 | 作者:吴洪声 snowflip
出处:http://wuhongsheng.com

OK,我恶毒的心灵又开始蠢蠢欲动了。今天带给大家的是SSL窃听攻击从理论到实际操作的成功例子
SSL窃听最主要的是你要有一张合法的SSL证书,并且证书名称必须和被攻击的网站域名一致。目前各大CA都有很低廉价格的SSL证书申请,最低的价格只需要10美元不到,甚至还有一些域名注册商大批量采购这些证书,并且在你注册域名的时候免费送你一张。
对于低廉价格的域名SSL证书,CA签发的前提只有一个:只要你有申请的域名某几个特定的邮箱,并且在CA给这个邮箱发送一封确认邮件的时候approve就可以了。
所以,问题的关键是如何截获到这封确认邮件。但我相信某些机构是有办法能做到这一点的。
当然,还有更加简单的办法:国内不少软件在安装的时候,都会偷偷摸摸的把自己的root CA装到用户电脑里面去。Windows的安全机制让这个导入root CA的操作根本没有任何的确认信息和提示。甚至微软还提供了一个专用的小程序用于导入证书。只要你找到这些软件厂商,就可以任意生成证书,并且这些证书都是有效的,不会出现警告。

废话不多说了,开始干活。这里sohu的vip邮箱为例(他们能在整个使用过程中支持ssl),先生成一张vip.sohu.com的key和csr

Sam@Bra:~$ mkdir ssltest
Sam@Bra:~$ cd ssltest
Sam@Bra:~/ssltest$ openssl genrsa -out vip.sohu.com.key 1024
Generating RSA private key, 1024 bit long modulus
............++++++
.....................++++++
e is 65537 (0x10001)
Sam@Bra:~/ssltest$ openssl req -new -key vip.sohu.com.key -out vip.sohu.com.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BeiJing
Locality Name (eg, city) []:BeiJing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:fake sohu
Organizational Unit Name (eg, section) []:fake
Common Name (eg, YOUR name) []:vip.sohu.com
Email Address []:ssladmin@vip.sohu.com
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

well,这样我们就有了一个用于vip.sohu.com的申请了,接着我们去签发这个申请

sslhijack1

然后系统会给你一大堆管理员相关的邮箱等你去选
sslhijack2

选上一个后,ca就会给你所选的邮箱发送一封确认邮件,邮件中带有一个连接,打开连接后会让你确认,确认后。。。嘿嘿,证书就到手了
sslhijack3

sslhijack4sslhijack5sslhijack6

把申请下来的证书保存一下,然后修改下nginx的配置文件,把证书加上,并且设置一个反向代理到vip.sohu.com,大概的样子如下

    # HTTPS server
    #
    server {
        listen       443;
        server_name  vip.sohu.com;
 
        ssl                  on;
        ssl_certificate      sslkeys/vip.sohu.com.crt;
        ssl_certificate_key  sslkeys/vip.sohu.com.key;
 
        ssl_session_timeout  5m;
 
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
 
        location / {
                proxy_pass      https://vip.sohu.com;
        }
    }

搞定,保存,重启nginx。修改本机的hosts文件,把vip.sohu.com这个域名指向nginx所在的服务器

127.0.0.1 vip.sohu.com

打开浏览器,输入https://vip.sohu.com,你会发现。。。。根本没任何报错或者警告信息!也就是说,ssl证书被成功替换,再就是说,你的所有传输都被劫持了。
经过测试,IE、firefox、safari等浏览器同仁纷纷表示对替换证书的行为毫不知情并对被替换后的证书予以大力支持,大肆宣扬被劫持的网站是高可信度的网站。

回头再简单阐述这个过程:用户访问一个网站,但中间已经被插了一层proxy。proxy使用了一个真实的并且高度可信的证书与用户交换数据。用户和proxy之间使用ssl加密通道交换数据。数据到了proxy后,会被解密并监听分析。之后proxy再模仿成一个client向网站的服务器发送数据,同样传输也是ssl加密的。网站的服务器对此毫不知情,只能获取到是proxy发出的请求,但其实proxy并不是最终用户,数据其实早已被监听并分析。

最后,还是应了那句话:不要迷恋ssl,ssl只是个传说

备注:
1.转载请注明出处:http://wuhongsheng.com/it/2009/09/ssl-hijack/
2.sohu的哥们不要来找我麻烦或者跨省追捕,选上你们是因为你们太安全了,支持ssl访问邮箱
3.有时间大家还是多点关注我的DNSPod,最近DNSPod正在招人,人不好找啊。。。请大家帮忙宣传下,介绍一些人才过来 https://www.dnspod.com/About/Jobs

前面一张图是sohu自己原始的证书,第二张开始就是被替换后的证书
sslhijack7

sslhijack8

sslhijack9

sslhijack10

Related posts:

  1. UUCall域名被clientHold Domain Name: UUCALL.COM Registrar: BEIJING INNOVATIVE LINKAGE TECHNOLOGY LTD....

Related posts brought to you by Yet Another Related Posts Plugin.

相关 [ssl 窃听] 推荐:

SSL窃听攻击实操

- snowflip - 狂人山庄 | Silence,声仔,吴洪声,奶罩
OK,我恶毒的心灵又开始蠢蠢欲动了. 今天带给大家的是SSL窃听攻击从理论到实际操作的成功例子. SSL窃听最主要的是你要有一张合法的SSL证书,并且证书名称必须和被攻击的网站域名一致. 目前各大CA都有很低廉价格的SSL证书申请,最低的价格只需要10美元不到,甚至还有一些域名注册商大批量采购这些证书,并且在你注册域名的时候免费送你一张.

nginx配置ssl

- - 邢红瑞的blog
先生成网关证书 ,仿照CA模式.

SSL原理笔记

- - CSDN博客推荐文章
搜索SSL握手的原理,最多是网上转载的Alice和Bob的对话. 用生动、形象的场景说明了一个复杂SSL握手原理. 用公钥加密的数据只有私钥才能解密,相反的,用私钥加密的数据只有公钥才能解密,正是这种不对称性才使得公用密钥密码系统那么有用. 是一个验证身份的过程,目的是使一个实体能够确信对方是他所声称的实体.

SSL工作原理

- - 互联网 - ITeye博客
SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性. 超文本传输协议 (HTTP)使用 SSL 来实现安全的通信. 在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的. 公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥.

Tomcat7配置双向SSL

- - CSDN博客推荐文章
//ca-cert.pem即为CA根证书,可将其下发到客户端,导入作为根证书.  如果按请求生成CA证书,由证书申请者生成请求文件certreq.txt. CA端执行签名,生成证书文件1.cer. 4.将证书导出成浏览器支持的.p12格式,密码changeit. 4.将证书导出成浏览器支持的.p12格式 :.

图解SSL/TLS协议

- - 阮一峰的网络日志
本周, CloudFlare宣布,开始提供Keyless服务,即你把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接. 我看了CloudFlare的说明( 这里和 这里),突然意识到这是绝好的例子,可以用来说明SSL/TLS协议的运行机制. 下面,我就用这些图片作为例子,配合我半年前写的 《SSL/TLS协议运行机制的概述》,来解释SSL协议.

SSL延迟有多大?

- - 阮一峰的网络日志
据说,Netscape公司当年设计 SSL协议的时候,有人提过,将互联网所有链接都变成HTTPs开头的加密链接. 这个建议没有得到采纳,原因之一是HTTPs链接比不加密的HTTP链接慢很多. (另一个原因好像是,HTTPs链接默认不能缓存. 自从我知道这个掌故以后,脑袋中就有一个观念:HTTPs链接很慢.

Netty SSL性能调优

- - ImportNew
嗯,这篇不长的文章,是一个晚上工作到三点的血泪加班史总结而成. 《 TLS协议分析 与 现代加密通信协议设计》 首先要感谢这篇文章,如果没有它,我可能还要花更多的时间才能完成. 文章有点长,能看多少是多少,每句都是收获. 目前(2015年)已经不安全,必须禁用. 互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版.

免费openssl 生成ssl证书[ssl证书生成]

- - 企业架构 - ITeye博客
[免费openssl生成ssl证书]. 1 概述 ............................................................................................................1. 2 什么是x509证书链 .....................................................................................1.

2009-08-02 SSL 加密代理列表:

- scxbaobao - (title unknown)
点击连接后请接受安全证书来加密浏览.