一直想知道如何才能通过调用回家的应用程序来回传输哪些数据。
假设我们通过主机文件重定向来模拟服务器。是否可以查看应用程序正在发出哪些请求?
是否有可能在真实服务器到达应用程序之前拦截响应(和查看数据)?
一直想知道如何才能通过调用回家的应用程序来回传输哪些数据。
假设我们通过主机文件重定向来模拟服务器。是否可以查看应用程序正在发出哪些请求?
是否有可能在真实服务器到达应用程序之前拦截响应(和查看数据)?
您可以使用数据包嗅探器捕获流量以捕获客户端\服务器应用程序的所有通信,或者您可以使用反向代理实时拦截和更改数据。
简而言之,网络嗅探器允许您查看客户端和服务器之间的数据流,对其进行分析并反转协议通信 反向代理拦截客户端和服务器之间的通信,允许更改请求并重新发送它们,实时操作和检查。
网络嗅探器:
反向代理:
Fiddler(最推荐用于 Web\恶意软件分析)
您可以在此处看到成功使用此类技术的示例:
有几种方法可以想到。第一种方法是在运行应用程序的实际客户端上使用网络数据包分析器。一些著名的数据包分析器是Wireshark、tcpdump,甚至Microsoft Network Monitor。
另一种选择是通过中间人(M。最简单的方法(如果您控制客户端)是将基于 Linux 的笔记本电脑变成无线接入点,并拦截客户端的流量,对其进行分析,然后将其路由到 Internet。这将需要 2 个网卡,其中至少一个是无线网卡。
这是一个教程,可让您开始以这种方式执行 mitm 攻击:http : //www.backtrack-linux.org/forums/showthread.php? t=1939
或者mitmproxy是另一个很好的工具来完成这个(他们支持 SSL),并且在他们的网站上有很多例子。
就在发布此答案之前,我意识到他在问如何在 Windows 上执行此操作,而我的答案适用于 Mac。我无论如何都会发布它,因为我相信它可能对其他尝试执行相同操作但随后使用 Mac 的人有用
如果您使用的是 Mac,那么通过远程虚拟接口 (rvi) 和 Wireshark 的组合,这真的很容易。请注意,如果您的应用程序使用 HTTP/SSL,这将不起作用,在这种情况下,请按照 @MickGrove 的建议进行操作并执行 MITM。
假设你有一台 mac,试试这个:
rvictl -s <serialnumber>
这将创建一个名为 rvi0 的网络接口。rvictl -x <serialnumber>
以删除界面如果网络流量是“纯文本”(未加密),则网络嗅探器(例如 Wireshark)是理想的选择。
如果网络流量是通过 SSL 加密的,但您有私钥(或者如果客户端应用程序没有验证服务器的公钥),那么您可以使用Burp等代理。
如果网络流量通过 SSL 加密并且您没有现成的私钥并且客户端验证服务器的公钥,那么您可以使用诸如Echo Mirage 之类的程序,它挂钩了 Winsock 的发送和接收功能,从而为您提供访问权限加密前和解密后的纯文本。
或者,如果使用 SSL 以外的其他方式加密网络流量,则您需要对客户端软件进行逆向工程以确定如何执行加密和解密。最好的办法是找到 Winsock 的发送和接收函数的交叉引用,并确定客户端在发送数据之前如何加密数据并在接收数据之后解密数据。