电信网页访问监控欺骗另类对策(求证是否可行)

kevin.tan
电信网页访问监控欺骗另类对策(求证是否可行)

在协议分析网上看到一篇<电信网页访问监控原理分析>文章,写得非常好,在此向作者致敬!!!

其中有下列一段话,如附图中

[attach]183769[/attach]

原话[code]“从图5解码信息中可知,该数据包的TCP标记中,同时将确认位、急迫位、终止位置为1,
这表示这个数据包想急于关闭连接,以防止客户端(192.168.0.88)收到服务器
([url]www.colasoft.com[/url])的正常响应,"[/code]

在这里,如果我们在防火墙中将这个欺骗报文DROP掉,不就是可以让电信达不到欺骗的目地了吗?如下语句
[code]
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ACK,PSH,FIN ACK,PSH,FIN -j DROP
[/code]
由于对知识有限,对TCP包头一知半解,不知道正常的TCP连接的ACK FIN报文是否设置有PSH位,如果没有的话,我想这是否是一个方法?

附原文:
[attach]183770[/attach]

请大家指正,谢谢

kevin.tan
自已顶一下,

查看了一宿舍路由器的匹配记录,有匹配上的,目前还没发现影响应用。

[code]
[3839:2948145] -A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,PSH,ACK FIN,PSH,ACK -j DROP
[/code]

更正一下,上面说的那个欺骗报文不是一个ACK FIN包哦,只是一个HTTP应答报文,文章内有写:wink: :wink:

ssffzz1
我没有具体抓过这样的包,但是个人认为这篇文章有不实成分,很想科莱的广告。如果要RST包中断连接的话,这个包的源地址要是服务器的才行,不能随便一个源地址发送个RST包,就能够中断一条TCP连接,这岂不又是一种新的攻击方式吗?

kevin.tan
回复 #3 ssffzz1 的帖子

谢谢ssffzz1版的关注。

建议版主看下那篇文章,“如果要RST包中断连接的话,这个包的源地址要是服务器的才行,”确实没错,但那个电信的服务器确实是伪造了发送RST包的服务器的源地址,文章里有写。:wink: :wink:

ssffzz1
哦,可能是我没有看细。

不过还有另一个问题,你当然可以用防火墙阻挡RST包,但是这台阻断设备如果同时也向服务器端发送了RST包,那么结果同样是中断了TCP的连接。

还有另一个问题,IPTABLES 的conntrack机制是否会因为收到了RST包,而清楚了连接状态呢?

不过市面上好像有能够破解的软件了,我想原理可能也就是处理这些问题的。

platinum
[quote]原帖由 [i]kevin.tan[/i] 于 2008-4-27 19:30 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6570549&ptid=996046][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
谢谢ssffzz1版的关注。

建议版主看下那篇文章,“如果要RST包中断连接的话,这个包的源地址要是服务器的才行,”确实没错,但那个电信的服务器确实是伪造了发送RST包的服务器的源地址,文章里有写。:wink: :wink: [/quote]
没用的,那种伪造断开的设备会双向发包,不仅发给你,也同时发给服务器
言外之意,你屏蔽掉了,使内网机器不断开,但远程服务器也认为你断开了而主动结束 socket
关于这个问题我很早之前就考虑过,有一种方法可以实现
就是在你的防火墙和服务器前端同时加这种设备,防止 RST 以及 FIN 标记的数据包进入
但这么做又有一个弊端,就是正常的结束信号也无法断开,导致 socket 不能自动断开(超时重传仍然失败除外),会造成服务器 socket 被大量占用

kevin.tan
回复 #6 platinum 的帖子 回复 #6 ssffzz1 的帖子

哦,原来是这样,确实。

没法阻止向服务器端发送的RST包。

谢谢两位版主解惑:em02: :em02: :em02:

kevin.tan
[quote]原帖由 [i]platinum[/i] 于 2008-4-27 20:33 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6570584&ptid=996046][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]

没用的,那种伪造断开的设备会双向发包,不仅发给你,也同时发给服务器
言外之意,你屏蔽掉了,使内网机器不断开,但远程服务器也认为你断开了而主动结束 socket
关于这个问题我很早之前就考虑过,有一种方法可以实现
就是在你的防火墙和服务器前端同时加这种设备,[color=Orange]防止 RST 以及 FIN 标记的数据包进入
但这么做又有一个弊端,就是正常的结束信号也无法断开,[/color]导致 socket 不能自动断开(超时重传仍然失败除外),会造成服务器 socket 被大量占用 [/quote]

是的,这个也是我正想学习的。

因为不了解正常RST包头flags的组成,想请求下知道的大牛们,正常的RST包flags中其 ACK,PSH,FIN是否同时置为"1"了,

如果不是,就能正常区分欺骗RST报文和正常的RST报文了,因为欺骗的那个报文是同时置位了的

platinum
可以抓包看看,具体我也记不清了
PSH 是紧急位,催促用户进程尽快处理数据包,有可能与其他标记一起使用
ACK 是应答包,有的时候为了提高效率也可以与 PSH 等一起复合使用
但 RST 和 FIN 绝对不会一起用的,因为他们是两种截然不同的结束 socket 的方式,至少我没见过有这么用的

7717060
不错,收藏了!!!!!!!