不少朋友都抱怨,thor能抓得越来越少,真成一个废锤了!
锤子表示:这锅我不背!
相信大家都遇到过,在用thor做网络调试的时候,有的app能抓到包,有的能抓到一部分,有的还抓不到,今天我们来讨论下为什么有的app能抓,有的却抓不到。
thor抓包的原理
thor属于代理型抓包,原理是采用了中间人攻击方式,简称MITM,简而言之就是接管系统代理,转发通信流量。通过拦截正常的网络通信数据,进行数据修改并向双方发送修改后的数据,而通信的双方却毫不知情,并且都以为这是正常通信,thor和大名鼎鼎的fiddler是这种方式。通过下面这张图,我们可以明白抓包只能抓取本地的数据,所以不要妄想服务器上的数据。
扩展知识:
抓包的类型还有VPN型抓包,请注意这个VPN类型抓包可不是你以为的科学上网软件。原理是在本机上建立一条专用虚拟网络,接管本机所有网络流量,让所有流量都走这条VPN虚拟通道,记录下所有的通信数据而进行抓包。所以这种类型的抓包理论上比代理型抓包抓的全,那种不走代理的也能被抓到。比如安卓上的HttpCanary,俗称小黄鸟;还可以用Charles+postern的方式进行抓包,但这个需要电脑,具体可以百度搜索一下。
还有通过网卡交互抓网卡的方式,这种是最全的。比如Wireshark,它是pc软件,当然也有缺点,就是不能解密https,不能修改内容。
thor为什么抓不到包
来看看thor软件开发者怎么说的:thor并非万能,它只工作在系统HTTP层: 不支持TCP、UDP及不经过系统HTTP代理的流量。通过这句话可以了解到thor抓包只在最基本的应用层,所以它的抓包能力相对来说还是很弱的。
伴随着网络安全技术的提升,这种中间人代理抓包的方式非常容易被绕过,所以说抓不到包不是因为thor不行了,而是软件从根本上就不让你抓,不光thor这样,httpcatcher也是一样的。而绕过代理抓包的主要方式大约有以下两种:
- 不走代理型软件
有些软件在开发时就写入了命令,强制软件不走系统代理。遇到这种软件,无论你怎么设置thor它都是无可奈何的,人家软件根本就不走系统代理,所以thor抓不到这种软件的包。(上面也讲了,对付这种不走代理的软件,通过VPN类型的抓包方式就能抓,比如用安卓HttpCanary或许就能抓到。)
- 证书验证型软件SSL/TLS pinning
就是软件开发时,软件与服务器共同约定了密钥,当软件发起请求时,通过密钥与服务器进行会话,而你中间人下发的证书里的密钥根本就不合牙,这样就绕过了中间人,所以抓不到。
对于这种方式的软件想要抓包就太难了,需要反汇编拿到软件的证书或者拿到密钥。
总结
伴随着网络安全的不断提升,这种中间人代理抓包方式显然对于对付现有的软件来说真的有点捉襟见肘,而对于网络安全来说,也没有绝对的安全,有矛就有盾!两者相互促进发展最终提升的是整体的网络安全。
评论前必须登录!
立即登录 注册