标题:
如何判断是否被网关或ISP劫持了DNS或HTTP流量?
[打印本页]
作者:
linda
时间:
2016-7-22 11:34
标题:
如何判断是否被网关或ISP劫持了DNS或HTTP流量?
注意:
1)每次更换DNS服务器后,需要在DOS窗口下执行 ipconfig/flushdns 命令,才能真正生效。最好是先关闭再打开浏览器,再测试上网结果。chrome浏览器下可以打开chrome://net-internals/#dns,查看、清空DNS解析结果。
2)OPENVPN客户端需要注意避免DNS泄露,否则即使建立了VPN连接,也可能存在DNS查询流量不经过VPN连接而导致的DNS泄露,进而被DNS劫持。
3)有的SOHO路由器存在漏洞,导致路由器的DNS服务器设置被黑客篡改,进而导致使用者的DNS被劫持。
一、DNS劫持的危害:
1)对于常见的https网站,如果出现了证书警告页面,则有可能是被劫持了,需要仔细查看证书内容以验证网站的身份。
2)普通网站域名被劫持后,可能被用于钓鱼网站套取用户信息或滥发广告。
3)某些DNS转发服务器不接受IPv6域名的查询,无法获得域名的IPv6 IP地址。
二、检测DNS劫持
方法一:
设置Windows的DNS服务器为任意公网IP,仍然可以解析域名,可以上网,表明网关或ISP对DNS查询流量做了劫持。
方法二:
同时在本地和国外主机上ping
www.google.com
,显示的IP不一致,且本地无法直接上
https://www.google.com
,表明网关或ISP对DNS查询流量做了劫持,并且污染了google域名。
方法三:
下载namebench
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/namebench/namebench-1.3.1-Windows.exe
安装运行,点击右下角的“Start Benchmark”按钮,如果出现“Outgoing requests were intercepted!”的结果,表明网关或ISP对DNS查询流量做了劫持。
方法四:
https://www.dnsleaktest.com/
点击“Standard Test”或“Extend Test”按钮,如果出现“Query round Progress... Servers found”的结果,表明网关或ISP对DNS查询流量做了劫持。
三、防范DNS劫持
防范DNS劫持的方法分为四类:
1)设法绕过:
使用OpenDNS等非UDP 53端口的DNS服务器,由于Windows、Linux、安卓、iOS都不能直接设置非标准端口DNS服务器,所以必须通过DNS代理服务器转发间接使用;
2)提前响应:
在内网里搭建自己的DNS代理服务器,抢在上级网关/ISP劫持之前对特定域名做解析,不过,对于标准端口、没有做设置的域名仍可能被上级网关/ISP劫持,可以使用非标准端口DNS服务器转发。
3)远程解析:
使用WEB在线/HTTP/SOCKS代理服务器,使得DNS域名解析在远端服务器上进行,还可以在远程服务器上设置自动更新的IPV6 hosts文件,加快IPV6网络的访问。使用DNS over TLS服务,或使用包含DNS over HTTPS技术的Yandex、Firfox浏览器上互联网。
4)本机解析:
使用hosts文件,无需DNS域名解析即可访问互联网,但是维护难度大,只能一台机器用
直接验证远程非UDP 53端口的DNS服务器:
nslookup -vc hm.baidu.com 8.8.8.8
kdig -d @8.8.8.8 +tls-ca +tls-host=dns.google.com
www.google.com
dig @121.42.51.234 -p 666 hm.baidu.com
dig @121.42.51.234 -p 53 +tcp hm.baidu.com
dig @114.114.114.114 -p 53 +tcp hm.baidu.com
dig @8.8.8.8 +short test.openresolver.com +tcp TXT
参见:
dig的windows版本
对比UDP 53端口的查询结果,可以验证UDP 53端口存在DNS劫持
nslookup hm.baidu.com 8.8.8.8
kdig -d @47.110.70.185 +tls-ca +tls-host=ipv4.ddns.group
www.google.com
dig @121.42.51.234 -p 53 hm.baidu.com
方法一:
设置DNS服务器为局域网IP,再通过此DNS服务器(可内置在专门的路由器中)forwarder到其它非UDP 53端口的DNS服务器,例如OpenDNS服务器等。
208.67.222.222:5353
208.67.222.222:443
208.67.220.220:5353
208.67.220.220:443
安卓用户可以安装运行dnspipe APP,实现全局DNS代理,并可使用非UDP 53端口的DNS服务器。DNS Changer APP也实现全局DNS代理,并且可以对DNS服务器做测速,但无法使用非UDP 53端口的DNS服务器。
方法二:
使用DNS over TLS(DOT)功能,DOT使用853/TCP端口,服务器需要真实域名且安装正式SSL证书,使用时,先由系统DNS服务器解析DOT加密服务器域名,之后再用DOT服务器解析所有域名。Android 9 及以上的版本支持加密DNS功能。
参考:
安卓系统在4G移动数据流量及WIFI时设置(DOT加密)DNS服务器
http://www.trustcomputing.com.cn/bbs/viewthread.php?tid=1631
Linux下验证:
apt-get install knot-dnsutils
yum install knot-utils
# For macOS:
# brew install knot
kdig -d @8.8.8.8 +tls-ca +tls-host=dns.google.com example.com
方法三:
使用DNS over HTTPS(DOH)功能,Yandex、Firefox浏览器自带有DNS over HTTPS功能
服务器选择Cloudflare等
Linux下验证:
# json
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A' | jq .
# dns wireformat
curl -H 'accept: application/dns-message' 'https://dns.google/dns-query?dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' | hexdump -c
curl --doh-url
https://cloudflare-dns.com/dns-query
https://www.google.com
方法四:
VPN服务器可以只下发DNS服务器IP为VPN路由,各OS都有内置的VPN拨号客户端,无需安装第三方APP软件,适用于4G/5G移动数据流量及WIFI网络环境,由此构成DNS over VPN(DOV)解决方案,比DNS over TLS(DOT)、DNS over HTTPS(DOH)更容易普及。
方法五:
无需专门的路由器,可以将DNS服务器设置为127.0.0.1,再通过UDP Proxy等工具将127.0.0.1:53的流量转发到其他非USP 53端口的DNS服务器上。或者修改注册表项,启用TCP 53端口查询。
下载Simple UDP Proxy/Pipe:
http://download.softpedia.com/dl/3fea07e334b4263f405655a7db3375ae/579197d9/100094357/software/network/sudppipe.zip
运行:
sudppipe.exe -p 121.42.51.234 666 53
再将本机DNS服务器设置为 127.0.0.1。
管理员身份DOS窗口下输入命令实现修改DNS服务器:
netsh interface IPv4 set dnsserver "以太网" static 127.0.0.1 both
netsh interface show interface:找到网卡名"以太网"
方法六:
下载:
https://sourceforge.net/projects/dns2socks/
运行:
DNS2SOCKS.exe /t 121.42.51.234:8081 121.42.51.234:666 127.0.0.1:53
将本机DNS服务器设置为 127.0.0.1。方法同上。
方法七:
下载使用dnscrypt,网址:
https://dnscrypt.org/
方法八:
win7用户可以修改dnsapi.dll,,强制使用TCP而不是UDP协议进行DNS查询
方法九:
直接用HTTP/SOCKS代理服务器,由代理服务器在远端做DNS解析
121.42.51.234:8086
方法十:
直接使用WEB在线代理,由WEB在线代理在远端做DNS解析
http://121.42.51.234:99/www
方法十一:
架设自己的DNS服务器,普通是利用bind、dnsmasq软件,但是设置比较繁琐,缺乏WEB管理界面,推荐使用中神通大地云控来解决这些问题
四、防范HTTP流量劫持
现在运营商等可以对接入的宽带线路做分光劫持,旁路监听80端口等明文流量,插入广告等骚扰内容,或者对HTTP流量做Cache缓存,即使用户的DNS没有被劫持,仍然会导致查看的网页被篡改、下载的文件不正确,为此用户可以使用非80、8080端口的HTTP代理服务器,同时在HTTP代理服务器端使用带广告过滤数据库的DNS服务器。
参考:
1)中神通大地DNS&URL&VPN云控管系统
http://www.trustcomputing.com.cn/cn/index.php/product/dns-url
2)dig的windows版本
http://www.trustcomputing.com.cn/bbs/viewthread.php?tid=1132
3)OpenDNS测试
https://support.umbrella.com/hc/en-us/articles/234692027-Umbrella-Diagnostic-Tool
4)DNS服务器实时测速比较
https://www.grc.com/dns/benchmark.htm
5)当DNS泄漏让VPN不再安全,我们该怎么办?
http://www.freebuf.com/articles/network/67591.html
6)揭开“流量劫持”的神秘面纱
7)绕过运营商HTTP劫持
https://onebitbug.me/2013/12/19/escape-isp-http-hijacking/
8)工信部投诉
http://www.chinatcc.gov.cn:8080/cms/shensus/
https://dxss.miit.gov.cn/
[
本帖最后由 linda 于 2021-9-22 17:52 编辑
]
欢迎光临 中神通公司技术论坛 (http://trustcomputing.com.cn/bbs/)
Powered by Discuz! 6.0.0