前言:最近在郭老师的指导下开始学习网络安全,这个分类用于记录学习过程。首先先记录IP欺骗。也就是著名的凯文与下村勉的交战中使用的著名攻击。这篇博客主要用于记录学习笔记,并加上自己的理解,如有不对之处敬请指正。
一、攻击原理与攻击背景
在这个背景下有三个角色,分别是:攻击者主机、目标机器服务器A、与服务器A有信任关系的第三者服务器B。前两者很好理解,那么第三者是什么呢?为了更方便登录并服务器来对其进行远程操作,有的服务器会与其他机器建立信任关系,这样其他机器远程登录该服务器时便不用进行繁琐的验证工作了。所以我们的思路很明确:冒充服务器B与服务器A建立连接,这样我们就不必验证身份便可以操纵服务器A了。下面便开始介绍原理。
二、TCP三次握手
为了更好的了解其中过程,首先需要温习一下大家都了解的TCP三次握手过程。
观看这张图,可以看到TCP三次握手过程分别是:
三、攻击分析
由三次握手过程我们可以简单分析出,如果我们想要达到模拟服务器B与服务器A建立连接,我们首先需要用服务器B的IP地址向A发送SYN包,那么这么做的结果是什么呢?那就是A向B回复SYN+ACK包,B很纳闷,他没有请求TCP连接啊,于是就会回复带RST位的包来中断这个莫名其妙的连接请求。首先我们来解决这个问题:
3.1 使服务器B无法RST
首先攻击者对服务器B进行DOS攻击,即发送几个SYN包并不回复服务器返回的SYN包(在以前的年代服务器性能较弱,只能处理几个请求),这样即使服务器A回复SYN+ACK包也会被服务器B给丢弃掉,因为它没有空处理。完成这个动作后,我们只要再向服务器A回复ACK包就可以建立连接了!可新的问题又出现了,回复的ACK包需要有SYN+ACK包中的seq号,然而我们并不知道。接下来我们来解决这个问题。
3.2 猜测seq号
在以前的年代,服务器回复的seq是有一定的规律的,所以我们想要知道seq号,只需要先向服务器A发送SYN包,再将其RST掉,便可以找到seq的规律了。利用这种手段,我们便可以猜测到seq号了。回复带seq的ACK号,我们便成功建立TCP连接了。
四、总结
总结以上的,IP欺骗需要这么几步:
建立TCP连接就可以执行shell并植入后门了。