如何创建中间人攻击检测工具

10
我尝试查看一个特定应用程序在SSL中与服务器通信的情况。基本上,当它声称已经完成了一些SSL通信时,这个过程就会卡住。我想通过捕获流量来调试问题,但我不能真正使用嗅探器,因为SSL可能看起来像十六进制转储。
有没有好的中间人工具可以用作仪器?我只需要能显示解密通信的东西。希望非常容易设置。我甚至可以将应用程序指向我的机器上可用的任何IP地址/端口(例如localhost:8888),所以代理也可以。此外,我可能可以配置应用程序接受任何证书。
你用什么来模拟中间人(MITM)SSL攻击?
更新:我尝试了Fiddler,但无法使其工作。我安装了openssl并键入以下命令:
openssl s_client -connect smtp.gmail.com:465
Gmail回复他们的证书和220 mx.google.com ESMTP ...。然而,Fiddler没有捕获流量。我在fiddler中设置了WinINET选项为“对所有协议使用相同的代理服务器”。有没有其他人可以让这个工作(或不工作)?我认为我需要找到一种让openssl使用代理的方法。

你配置了Fiddler来解密HTTPS吗?http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp你尝试调试的应用程序是否通过HTTPS连接? - Ryan Michela
该应用程序采用SSL加密的SMTP。 - User1
Fiddler 调试 HTTP(S) 流量,但无法显示 SMTP 流量的任何有用信息。 - EricLaw
你用Fiddler搞定了吗? - Jaime Hablutzel
我记不清了,但如果我今天要做同样的事情,我会使用http://www.wireshark.org/。 - User1
2
还有mitmproxy用于HTTPS http://blog.philippheckel.com/2013/07/01/how-to-use-mitmproxy-to-read-and-modify-https-traffic-of-your-phone/,以及sslsplit用于任意TLS http://blog.philippheckel.com/2013/08/04/use-sslsplit-to-transparently-sniff-tls-ssl-connections/。 - Ciro Santilli OurBigBook.com
3个回答

8

Fiddler允许您对自己实施中间人攻击,以查看SSL隧道内部的内容。

Fiddler为您的计算机生成唯一的根SSL证书,然后创建由根签名的会话证书。当您配置Fiddler为解密SSL时,它会在您和目标之间充当代理,使用站点的SSL证书解密流量,然后使用自己的证书重新加密流量。

您的浏览器/应用程序将显示不受信任的证书错误。您可以选择信任Fiddler的根证书来解决此错误。

.Net Rocks的工作人员在播客节目中介绍了使用Fiddler来嗅探流量的方法。


@chovy 使用Charles代替Fiddler。请参阅https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/,了解如何在iOS上安装根证书。 - Ryan Michela

2

我没有为此目的使用过,但Fiddler应该能够满足您的需求。

Fiddler是一个Web调试代理,可记录计算机与互联网之间的所有HTTP(S)流量。 Fiddler允许您检查所有HTTP(S)流量,设置断点并“玩弄”传入或传出的数据。Fiddler包括一个功能强大的基于事件的脚本子系统,并且可以使用任何.NET语言进行扩展。

Fiddler是免费软件,可以调试来自包括Internet Explorer、Mozilla Firefox、Opera和数千个其他应用程序的流量。


我也使用了Paros代理来完成这个任务。 - President James K. Polk

0
如果您正在使用非常有用的Wireshark嗅探器,那么只要您能够提供适当的密钥文件,它就可以解密SSL

2
他可能没有服务器访问权限,所以这样做不会起作用。 - President James K. Polk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接