假设我们通过主机文件重定向模拟服务器。
还可以在到达应用程序之前截取来自真实服务器的响应(并查看数据)吗?
/>
#1 楼
您可以使用数据包嗅探器捕获流量,以捕获客户端\服务器应用程序的所有通信,也可以使用反向代理实时拦截和更改数据。简单来说,网络嗅探器允许您查看客户端和服务器之间的数据流,对其进行分析并反向进行协议通信
反向代理拦截客户端和服务器之间的通信,允许更改请求并重新发送,并进行实时操作和检查。
网络嗅探器:
WireShark
tcpdump
WinDump
反向代理:
ZAP(OWASP项目)
秃鹰
Burp代理
提琴手(最推荐用于Web \恶意软件分析)
您可能会在这里看到成功使用该技术的示例:
拦截Blackberry应用程序流量
使用WebScarab拦截SSL流量
iOS数据拦截
#2 楼
我想到了两种方法。第一种是在运行应用程序的实际客户端上使用网络数据包分析器。一些著名的数据包分析器是Wireshark,tcpdump,甚至是Microsoft Network Monitor。另一种替代方法是通过中间人(M。)拦截流量。 (如果您控制客户端)则是将基于Linux的笔记本电脑变成无线访问点,并拦截客户端的流量,对其进行分析,然后将其路由到Internet(这将需要2个网卡,其中至少一个是无线网卡)卡。
这是一个教程,可让您开始以这种方式执行mitm攻击:
http://www.backtrack-linux.org/forums/showthread.php?t= 1939
或者mitmproxy是另一种出色的工具(它们支持SSL),并且网站上有很多示例。
#3 楼
在发布此答案之前,我意识到他正在询问如何在Windows上执行此操作,而我的答案适用于Mac。我发布它的原因是,我认为它对尝试执行相同操作但使用Mac的其他人可能很有用如果您使用的是Mac,那么结合使用它真的很容易远程虚拟接口(rvi)和Wireshark。请注意,如果您的应用程序使用HTTP / SSL,这将不起作用,在这种情况下,请执行@MickGrove的建议并执行MITM。
假设您有Mac,请尝试以下操作:
通过USB连接手机/ ipad / ipod
转到系统信息(使用Spotlight或通过Apple徽标->关于此Mac的信息),然后在硬件-> USB下找到您的iPhone,并复制序列号(这是一个很长的十六进制数字)
打开终端并输入
rvictl -s <serialnumber>
,这将创建一个称为rvi0的网络接口。 打开wireshark并在rvi0上开始嗅探
完成后,键入
rvictl -x <serialnumber>
删除接口#4 楼
如果网络流量使用“纯文本”格式(未加密),则理想的网络嗅探器(例如Wireshark)。如果网络流量通过SSL加密,但是您拥有私钥(或者客户端应用程序未验证服务器的公共密钥),则可以使用Burp之类的代理。
如果网络流量通过SSL加密并且您没有专用密钥,则客户端验证服务器的公钥,然后您可以使用Echo Mirage之类的程序,该程序挂接Winsock的发送和接收功能,从而使您可以在加密前和解密后访问纯文本。
如果使用SSL以外的其他方式对网络流量进行了加密,则您需要对客户端软件进行反向工程,以确定如何执行加密和解密。最好的选择是找到Winsock的发送和接收功能的交叉引用,并确定客户端在发送之前如何加密数据,并在接收到数据后对其解密。
#5 楼
@CallMeV在上面的注释中指出的另一个选项是使用挂钩。在Windows上,您可以考虑使用EasyHook。#6 楼
如果他们使用HTTP协议,则可以将HTTP代理Fiddler添加到列表中。#7 楼
好吧,您知道恶意软件试图将其用作家的IP地址或域是什么吗?如果这样做,则可以尝试更改位于
%systemroot%\system32\drivers\etc\
的主机文件。这样,它就无法打电话回家。然后使用Wireshark嗅探流量。
一旦知道IP地址和端口号,就可以使用过滤器使它看起来更悦目,更容易找到所需的信息。
评论
更好的方法是透明代理,它也可以拦截DNS查询。我知道在我工作的反恶意软件公司使用过的此类系统。但是,它是专有的。
– 0xC0000022L♦
13年4月6日在20:07
我不会对恶意软件执行此操作:您不会阻止它打电话给您,除非您完全确定它不会与您阻止的主机联系(如果它尝试使用IP地址,则更改主机将无济于事)一点点)。无论如何,这不是一个非常有用的方法,因为阻止应用程序打电话回去很可能会抑制您尝试观察的有趣行为-如果无法启动连接,就不会有任何流量在监听。
–吉尔斯'所以-不再是邪恶的'
13年4月6日在23:18
评论
这里的一切似乎都与HTTP检查有关。对于更多自定义协议,您也可以分别钩住ws32.recv和ws32.send。我认为这不是一个完整的答案,但这是一个值得我注意的选项。@CallmeV在问题中没有看到HTTP特有的任何内容。
@JonathonReinhart-澄清:许多答案主要涉及网络代理