Chinaunix

标题: netfilter做dns重定向(劫持)问题 [打印本页]

作者: bfdhczw    时间: 2013-08-22 13:53
标题: netfilter做dns重定向(劫持)问题
我用netfilter做dns重定向,比如,用户访问www.123.com,重定向到www.456.com

基本思路是修改DNS请求和回应包

包请求包和回应包中的www.123.com都换成www.456.com

通过wireshark抓包分析,dns请求和回应包确实都如预期进行了修改,ip/udp checksum都正确。

执行nslookup www.123.com的时候已经能够正确取得www.456.com的ip地址,

但是当从浏览器输入www.123.com的时候却提示”The connection was reset“,不知道这个东西要如何解决。

我知道有其他方法可以达到域名劫持的目的,但是我主要是想弄清问题,所以其他方法暂不讨论。

先谢谢各位了~
作者: ShadowStar    时间: 2013-08-22 14:22
HTTP 302 Redirect
作者: 瀚海书香    时间: 2013-08-22 14:33
回复 1# bfdhczw
2楼正解

不要用dns劫持了。有些操作系统(比如win7)可以判断出dns欺骗,表现就是dns不可用,并不会重定向。

   
作者: Godbach    时间: 2013-08-22 15:09
回复 1# bfdhczw

抓包看一下,这个 Connection Reset 是不是应该 TCP 三次握手都成功了。

如果是的话,我怀疑可能是 GET 请求的 host 字段是 www.123.com,但是你访问的是 www.456.com,人家 server 做了 host 字段的检查。


   
作者: bfdhczw    时间: 2013-08-22 16:48
回复 4# Godbach


    看来如你所说,三次握手成功后client发了http/get请求,然后server端就发RST了。
这个有办法解决吗?貌似不行?

作者: Godbach    时间: 2013-08-23 00:28
回复 5# bfdhczw
那你直接访问 www.456.com 这个网站,是不是就正常啊。

你刚才抓包的 GET 请求报文给展开一下,看一下 http hdr 的内容


   
作者: bfdhczw    时间: 2013-08-23 13:04
回复 6# Godbach


    你是想看host字段吗?我看过了,确实是www.123.com
作者: bfdhczw    时间: 2013-08-23 13:08
回复 2# ShadowStar
回复 3# 瀚海书香


    谢谢你们的回复,不过暂时还没时间查看HTTP 302 Redirect,以后有空再研究。

   
作者: Godbach    时间: 2013-08-23 13:27
回复 7# bfdhczw

嗯,那应该差不多。


   
作者: bfdhczw    时间: 2013-08-26 15:05
回复 9# Godbach


我今天又试了,我把HTTP/GET请求的host字段也改了(浏览器发出去的是www.123.com,我改成www.456.com),然后就可以正常劫持了。

看来确实是服务器检查了HOST字段。

但是不太明白的是,服务器为什么要检查HOST字段?防止其他网站盗用资源?
作者: Godbach    时间: 2013-08-26 17:24
回复 10# bfdhczw

有多个原因,重要的一个原因应该是: 如果后端的 server 上服务了多个域名,那么就得通过 host 字段来区分这个请求到底是哪个域名的。


   
作者: myworkstation    时间: 2013-08-26 18:08
回复 10# bfdhczw


    Host在HTTP 1.1中是必须的,主要是为了解决单IP的服务器上有多个域名的HTTP服务,如果HOST和URI中的域名不一致那么服务器要检查访问的授权合法性,因为HOST指定的服务在目标主机上不存在所以就产生了错误
作者: fly6    时间: 2013-09-03 09:10
你访问www.360buy.com,同时抓包试试
作者: bfdhczw    时间: 2013-09-06 13:25
回复 13# fly6
我已经找到问题了,确实是host字段的问题,不知你是想说什么?

   
作者: platinum    时间: 2013-09-09 12:42
Godbach 发表于 2013-08-22 15:09
回复 1# bfdhczw

抓包看一下,这个 Connection Reset 是不是应该 TCP 三次握手都成功了。

通过抓包截图分析,@Godbach 的分析应该比较靠谱
作者: mybname    时间: 2013-09-20 01:39
本帖最后由 mybname 于 2013-09-20 01:40 编辑

请教楼主:
我也在做dns重定向的功能,自己组装DNS应答包回复,但收不到。
http://bbs.chinaunix.net/thread-4099252-1-1.html

代码已贴出,能否帮我看看问题在哪里。

另外,你代码中发包部分,可以给我学习一下吗,谢谢。
我的邮箱: 65319203@qq.com

作者: bfdhczw    时间: 2013-10-11 11:08
回复 16# mybname

我的代码并没有发包,只是修改包而已。你的帖子我会仔细看一下,看看能不能帮上什么忙。
   
作者: 798221028    时间: 2014-02-13 10:49
LZ, 牛逼啊。
作者: 798221028    时间: 2014-02-13 10:50
哦,上帖弄错了,版主牛逼啊。
作者: 798221028    时间: 2014-02-13 10:50
哦,上帖弄错了,版主牛逼啊。
作者: 此情不渝    时间: 2015-07-24 13:10
你好    我最近也遇到了同样的问题。。。能加你的QQ请教一下吗?


   
作者: bfdhczw    时间: 2015-08-20 23:03
回复 21# 此情不渝


    抱歉,最近太忙,没有看到你的回复,有什么可以帮到你的吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2