在加密之前提取HTTPS数据包

时间:2015-01-10 19:38:38

标签: debugging https openssl obfuscation dll-injection

假设我们有一个Windows应用程序,它通过HTTPS发送一些数据包。 我们需要提取这些数据包的内容(当然未加密)。

没有办法获得服务器私有证书并且MitM攻击不起作用(此应用程序使用了一些MitM防御)。 因此,解密似乎已不在考虑之列。

唯一的选择(我想)是在加密之前从应用程序中提取这些数据包。 应用程序受到很好的保护,它不依赖于OpenSSL DLL。但是,我们有一种感觉它使用OpenSSL(但是,静态链接,可能在编译/链接之前甚至修改了OpenSSL源。)

挂钩对OpenSSL函数的调用(比如ssl_write())并不简单,因为应用程序的可执行文件被打包并进行了混淆。它还具有调试保护功能,但已经找到了避免这种防御的隐形调试器。 所以,我们可以调试这个应用程序。但是,在调试过程中看到的代码是一个完整的混乱(混淆)。 即使是由此应用程序加载的系统DLL也完全混乱。以下是在调试此应用程序期间WS2_32.dll的send()函数的示例: http://s2.postimg.org/pjzaipx0p/image.png 作为参考,以下是正常(未受保护)应用程序的外观: http://s21.postimg.org/3kzntkn93/image.png 因此,很难理解函数参数是如何传递的,而且看起来它们可以通过不同的方式传递(不确定,但根据调试实验看起来如此)。

这似乎是一项非常常见的任务,因为有许多Windows应用程序使用HTTPS和静态链接的OpenSSL。

希望有人有这样的经验,可以分享。

0 个答案:

没有答案