我连接了WireShark,发现该数据包存储在Azure中,并使用TLS保护。我想自己进行MITM,以便可以解密数据包并查看Azure上的数据是否已加密。
我显然没有Azure的私钥,所以我想知道如果有人对如何完成MITM分析有任何想法。
#1 楼
如果将数据作为HTTPS传递,则可以尝试使用经典的Fiddler中间人方法。我不确定Windows应用商店是否尊重代理设置或它是否具有固定证书。如果它确实遵守应有的代理设置,并且没有固定的证书,则应该可以使用Fiddler对其进行琐碎的操作。如果数据不是不是HTTPS,也没有固定证书,一种选择是使用SSLNetcat代理安全连接。您要做的是更改主机文件,以使Store可执行文件连接到本地运行的SSLNetcat,然后设置SSLNetcat,以使其使用具有私钥的证书。然后,您要么让SSLNetcat将数据直接转发到您选择的程序,要么将私钥输入Wireshark并使用它来嗅探流量。
如果数据不是HTTPS,则为证书如果二进制文件是固定的而不是存储在文件中,则可以修补Windows Store可执行文件,并用具有私钥的证书替换证书。 OpenSSL应该能够轻松为您生成替换证书。然后可以将此私钥输入到Wireshark中,然后解密该流量。
您距离复制保护区域很近,因此可能会遇到很多麻烦。
#2 楼
您可能要做的另一件事是拦截48字节TLS主密钥的创建,这可能有点过头,但在其他情况下很有用。对于许多Windows应用程序(包括IE),此问题会在lsass.exe
中的以下函数中发生(来自Win7 SP1 32位):Caller: ncrypt!_Tls1ComputeMasterKey@32+0x57
EIP: ncrypt!_PRF@40+0x11a
然后您可以解密捕获的内容通过在SSL首选项中将
(Pre)-Master-Secret log filename
设置为如下所示的文件文件,在Wireshark中将数据包发送出去:未加密)(对于您感兴趣的流)(不要被RSA欺骗-这适用于所有TLS连接,而不管使用的密码套件如何。)此方法的优点是那样,由于您不需要在中间做人,因此客户端应用程序不必信任您的CA,如果您要撤消某些实际上可以正确执行加密的恶意软件,这尤其方便。
< br缺点是您需要能够调试
lsass.exe
,这可能很棘手;这里有一些有关如何执行此操作的信息。#3 楼
您可以采用多种方法来提取Windows Store使用的本地密钥并将其输入Wireshark,但是,我认为最好的选择是注入一个将Network IO功能send()
和recv()
挂出进程的DLL。 。 您可以尝试自己“低级”执行此操作,但是出于实用主义的考虑,明智的方法是检查Microsoft Detours是否具有钩子功能,有很多示例可以利用它-现在,知道您的函数原型是唯一必要的条件,因此非常容易。
评论
我不确定我能否使用WinRT中的网络IO功能-可能会受到一些C ++黑客的攻击,因为这并没有完全通过认证。还没有听说过Detours-谢谢。
– Bill Sempf
13年3月24日在14:46
#4 楼
您还可以尝试使用oSpy,它基本上会挂接相应的API调用,并让您在加密/解密之前和之后查看数据。oSpy是一个工具,可以对在Windows平台上运行的软件进行逆向工程。 [...]在API级别上进行嗅探时,它可以让您更精细地了解正在发生的事情。 [...]如果应用程序使用加密通信,也很容易拦截这些调用。 oSpy已经拦截了一个这样的API,并且是MSN Messenger,Google Talk等用于加密/解密HTTPS数据的API。
#5 楼
Windows 8很可能正在使用WinINet与App Store连接。在这种情况下,您可以看到未加密的流挂接到wininet.dll,而不是使用代理。 HookME就是这样做的,它是去年在BlackHat中发布的。可能您需要进行一些小的更改才能在Windows 8下编译和使用它。
评论
让我清楚-我正在对自己的应用程序执行此操作,以查看Azure中的数据是否加密存储。不破坏别人的应用程序。我尝试了Fiddler,但可能做错了,因此我将对其进行研究。我对SSLNetcat并不熟悉,因此也感谢您。很棒的答案。
– Bill Sempf
2013年3月24日14:51
哦,我承担了很多。我的意思是,您可能会遇到由于复制保护而导致通信受到严格保护的问题。由于您更容易碰到固定证书,自我验证的可执行文件甚至内核级完整性检查,因此事情变得有些复杂。我不熟悉Microsoft Store,因此除了概括之外,我无法提供其他建议。
–彼得·安德森(Peter Andersson)
13年3月24日在15:15
您的建议虽然很棒。我在这里看完篮球后就去上班...
– Bill Sempf
13年3月24日在19:06