swgr's Blog
[course] TCP Exploit
今天做了security课的assignment 2里的problem 2,是关于TCP Exploit的。
简单说,就是一个在基于广播的LAN中(比如HUB结构的LAN)干扰别人正常TCP连接的东西。
例如,A和B在通过TCP正常地通信,攻击者C想要中断这个通讯。
于是C通过抓包得知了A和B的通信端口,然后伪装成其中一方(比如A)像另一方(比如B)发一个TCP的FIN包。
这时,B就会以为A想跟它断开TCP通讯,于是就给A发了FIN包,一来二去双方就断开了。
值得注意的是:
1. C抓包的时候其实不止是为了得知A和B的通信端口,更重要的是得知通讯过程中的seq号,这样才能正确发出FIN包而不被B拒绝。
2. A最后会给B发FIN包(因为它收到了B给它发的FIN包,以为B想跟自己断开了),但是这个FIN包的seq是不会被B接受的(因为B收到过来自C的FIN包,它以为是A发的,因此导致了双方计算中seq的不一致),因此,最后B会给A发一个RST包。