Netexpert FAQ 网络分析专家学习建议入口 @netexpert成员申请指南
网络分析时代 netexpert积分规则的说明 Netis招贤纳士(2008年11月22日更新)
发新话题
打印

在一个局域网中, 我在A机, 现在我想断开B机 与 C机 之间的 TCP连接. 要如何做做呢?

在一个局域网中, 我在A机, 现在我想断开B机 与 C机 之间的 TCP连接. 要如何做做呢?

在一个局域网中, 我在 A 机, B 机与 C 机建立了一个 TCP 连接. 我知道双方的IP 地址与 Port, 现在我想断开它们. 要如何做做呢?
我想到了以下这个方法,但有点些不完美的地方.
1. ARP 欺骗
   这个在实现上是最简单的. 就是比别向双方发送一个伪造的ARP 应答. 分别向B和C 发送一个伪造的 ARP 应答. 把对方的IP映射到一个不存在的 mac 上.这样 B 本来想发给 C 的数据被发到这个不存在的 mac 地址上了. 这样 tcp 就得不到回答. 过段时间后,双方就会因为超时, 断开了连接.
   (问题一) 不过我样的话,我有个问题就是交换机或集线器如何处理这种不存在的 mac 地址的包呢? 是会在网络上广播查询还是直接丢了呢? 据我的观察,交换机/集线器没有做广播. 丢没丢我就不清楚了.
   这样做方是方便. ARP协议是很简单. 但这样一来, B 与 C 之间所有的通讯都会被断开了. 解决问题不是很完美.

2, 伪造断开命令包
后来查看 TCP 协议,我又想到另一种方法. 可不可以伪造断开指令?
  B 与 C 连接好了. 我,A 伪造一个断开指令数据包, 假冒成 B 发给 C. 然后再假冒成 C 发给B. 但问题是 TCP 是种可靠连接.断开是分成了两个来回.
  B ---> C (FIN ACK)
  B <--- C (ACK)
  B <--- C (FIN ACK)
  B ---> C (ACK)
  
  再加上 TCP 的 seq 与 ack_seq 号码,伪造起来还是很麻烦的.
3. RST 指令. 还没太看明白
后来我又看到了 RST 指令. 但这个指令没太看明白. 是不是不用应答就可以了?

TOP

如果想靠RST切断,得预测th_seq字段,监听不到这个字段的时候几乎不可能预测成功。
说了世上一无牵挂为何有悲喜
说了朋友相交如水为何重别离
说了少年笑看将来为何常回忆
说了青春一去无悔为何还哭泣

TOP

能不能再具体点?

TOP

你手工构造RST时填写位于那条tcp连接的某一端的滑动窗口中的th_seq,就这个意思,你还想多具体?
说了世上一无牵挂为何有悲喜
说了朋友相交如水为何重别离
说了少年笑看将来为何常回忆
说了青春一去无悔为何还哭泣

TOP

比如一个 HTTP 的连接.我抓包台下

TCP 握手
local                                                                                            Server
local  ----  seq = 3524304193, ack = 0, SYN                               -----> Server
local  <---  seq = 466599082,  ack = 3524304194, SYN, ACK        -----  Server
local  ----  seq = 3524304194, ack = 466599083, ACK                  -----> Server

http 命令

local  ----  seq = 3524304194, ack = 466599083,PSH,ACK      ------> Server  // HTTP GET
local  <---  seq = 466599083,  ack = 3524304803, ACK        ------  Server  [无数据]
local  <---  seq = 466599083,  ack = 3504304803, ACK        ------  Server 数据   <----- 把我的数据加在这里
local  <---  seq = 466600495,  ack = 3524304803, ACK        ------  Server 数据

如图示:
如果我 sniffer 到它们的通讯如上图. 我在 local 向 server 发出 HTTP 命令后,我等待服务器的下一个回应.
服务器回应后. 我伪造一个从 local 发向 server 的包:
其中: seq = 3524304804, ack = 466599083 ,RST 命令的 这样可不可以让 Server 主动断开与 local 的连接呢?

TOP

IP 欺骗,几乎不可能成功

只局限于实验室环境....
http://steveyoung81.spaces.live.com

TOP

厄,好像只有ARP欺骗比较有效果些,但也比较容易防御。还有个方法没说,就是直接把两台机器的网线拔了,哈哈!

TOP

可以使用TCP rst,至少在Linux系统下可以这么做,有这方面的产品……

TOP

发新话题
版块跳转