网络安全入门(一)IP欺骗

前言:最近在郭老师的指导下开始学习网络安全,这个分类用于记录学习过程。首先先记录IP欺骗。也就是著名的凯文与下村勉的交战中使用的著名攻击。这篇博客主要用于记录学习笔记,并加上自己的理解,如有不对之处敬请指正。
一、攻击原理与攻击背景
在这个背景下有三个角色,分别是:攻击者主机、目标机器服务器A、与服务器A有信任关系的第三者服务器B。前两者很好理解,那么第三者是什么呢?为了更方便登录并服务器来对其进行远程操作,有的服务器会与其他机器建立信任关系,这样其他机器远程登录该服务器时便不用进行繁琐的验证工作了。所以我们的思路很明确:冒充服务器B与服务器A建立连接,这样我们就不必验证身份便可以操纵服务器A了。下面便开始介绍原理。

二、TCP三次握手
为了更好的了解其中过程,首先需要温习一下大家都了解的TCP三次握手过程。
在这里插入图片描述
观看这张图,可以看到TCP三次握手过程分别是:

  • 客户端向服务器发送SYN包
  • 服务器向客户端回复SYN+ACK包
  • 客户端向服务器回复ACK包

三、攻击分析
由三次握手过程我们可以简单分析出,如果我们想要达到模拟服务器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欺骗需要这么几步:

  • 寻找与A建立信任关系的B的IP地址
  • 向B进行syn flooding(即发送SYN包而不回复),使其丧失回复能力
  • 向A发送几十个SYN包,判断其seq规律,猜测其下一个seq
  • 用B的IP地址向A发送SYN包,然后用猜测的seq回复ACK包,建立TCP连接

建立TCP连接就可以执行shell并植入后门了。

猜你喜欢

转载自blog.csdn.net/weixin_42107987/article/details/88544196