打算做一套专门对付网络劫持/污染的开源工具,目前 DNS 部分已基本完成

2016-05-15 23:19:29 +08:00
 raysonx
众所周知天朝的网络环境非常烂,各种运营商劫持防不胜防。于是打算利用业余时间做一套开源工具集,过滤各种天朝特色的花式运营商劫持。
GitHub 传送门: https://github.com/hijackfilter/hijackfilter

主要打算做一些 netfilter/iptables 拓展,这样这些过滤模块就可以高效地在 OpenWrt 、 dd-wrt 等基于 Linux 的路由器上跑。感兴趣的朋友们可以来一起贡献代码。

目前匹配 DNS A 记录的 iptables 模块已基本完成,可以将运营商伪造的 DNS 回应匹配出来,进行丢弃或更改。
下一步还会做匹配 HTTP 302 劫持的模块。
9465 次点击
所在节点    分享创造
60 条回复
imn1
2016-05-16 10:37:10 +08:00
我现在桌面已经基本消除劫持了,但手机还是没有解决办法(对 android 不熟)
zrj766
2016-05-16 10:42:45 +08:00
先 star 再说
missdeer
2016-05-16 10:45:26 +08:00
说话,你们用过 pcap-dnsproxy 吗, winpcap/libpcap 直接抓包,然后丢掉抢答包
vh2h
2016-05-16 10:53:46 +08:00
支持楼主,利国利民
raysonx
2016-05-16 11:31:41 +08:00
@jasontse @lixingcong 翻了下 dnsmasq 的文档,确实 2.73 版之后开始提供类似的功能了。
langjiyuan
2016-05-16 13:32:46 +08:00
火线支持,前两天的 http 劫持可是恶心坏了,现在访问个 b 站 还得挂代理。。
mwylaoma
2016-05-16 14:09:27 +08:00
请问 Mac 能否使用?@raysonx
avrillavigne
2016-05-16 14:38:49 +08:00
@21grams 常见 iframe 插广告,插不好网页都不能看了,高端的下载劫持到运营商内的服务器。
KCheshireCat
2016-05-16 14:41:09 +08:00
我建议可以去看下 iptables 的 u32 模块

移动这边的 DNS 抢答,http 抢答,302 劫持跳转,单向 RST,BT-DHT, 都是有一定包构造特征的

比如移动在抢答 DNS 的时候一定会带 dns.flags.authoritative 标志位,
但是又和正常的包不一样一定不带 dns.flags.authenticated 标志。

302 劫持也是,tcp 包会标记 ACK ,FIN , PSH.而通常 http 并不使用 PSH 且 FIN 也不和 PSH 同时使用

还有 http 抢答,抢答的报文是有分包的,但是每个包大小都不到 MTU,且 tcp 窗口实际值恒为 0xFFFF

再者 BT-DHT 干扰,抢答包里面协议版本是个没人使用的版本号了,所有抢答包还都是一样长,非常好过滤

我目前都是用 u32 模块进行匹配来 DROP 的,这种抓异常包构造的方法一向很有效
KCheshireCat
2016-05-16 14:44:53 +08:00
很多情况用现有模块就能做到,不用造个新轮子实现重复功能

我现在就在实验用 IP 头的 TTL 值来过滤抢答包,用的都是现有的模块,

不过为了应付服务器自身 ttl 差异,这个过滤效果还是有待提高
wpaygp
2016-05-16 15:52:22 +08:00
Star
raysonx
2016-05-16 17:14:22 +08:00
@KCheshireCat 这些问题在做之前都考虑过,能用现有模块解决的当然不会上复杂的东西。 netfilter/iptables 本身在设计上就不擅长处理 5 层的数据,做模块是为了接下来实现一些比较难搞的复杂过滤。
Cpatrick
2016-05-16 18:17:02 +08:00
期待早日见到作品~
Balthild
2016-05-16 18:21:54 +08:00
已 Star
fengyunSmlie
2016-05-16 18:57:11 +08:00
不得不来支持一下!
Vicer
2016-05-17 00:25:31 +08:00
@jasontse 2.75 版本添加 ignore-address=1.2.3.4 启动失败
muziling
2016-05-17 14:03:11 +08:00
@KCheshireCat u32 怎么弄,以前 tomato 用的时候,正常的 DNS 解析都要好几秒。
addidda
2016-05-19 00:48:32 +08:00
@imn1 dnscrypt/pdnsd/dnsmasq
配合 iptables 一起食用效果更佳(x)。。
Oucreate
2016-06-05 17:09:36 +08:00
请问楼主大大有没有学习这些东西的“收藏夹”可以分享一下?
我也想自己制作 Windows 和 Android 平台的“多重抗污”工具。
o.o.o@qq.com 万分感谢!
only25133
2016-07-12 20:48:41 +08:00
时不时来赞一下~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/278835

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX