TCPIP攻击实验实验报告总结计划

时间:2020-11-19 09:53:31 手机站 来源:网友投稿

中南大学

TCP/IP 攻击实验

实验报告

学生姓名

学 院 信息科学与工程学院

专业班级

完成时间

2015

年 11 月 29 日

目 录

1. 实验描述 . 3

2. 实验步骤 . 3

环境搭建 3

实验 1:ARP缓存中毒 3

实验 2:ICMP重定向攻击 . 4

实验 3:SYN洪流攻击 5

实验 4:在 telnet 和 ssh 连接上的 TCP

RST攻击 6

实验 5:对视频流应用程序的 TCP RST

攻击 7

实验 6:ICMP 盲目连接重置和源端关闭

攻击 7

实验 7:TCP报文劫持 8

3. 总结 8

TCP/IP 攻击实验

实验描述

【实验背景】

由于 TCP/IP 协议是 Internet 的基础协议,所以对 TCP/IP 协议的完善和改进是非常必

要的。

 TCP/IP 协议从开始设计时候并没有考虑到现在网络上如此多的威胁 , 由此导致了许多

形形色色的攻击方法,一般如果是针对协议原理的攻击 ( 尤其 DDOS),我们将无能为力。

TCP/IP 攻击的常用原理有:

(1) 源地址欺骗 (Source Address Spoofing)

Spoofing) ;



、 IP



欺骗 (IP Spoofing)



和 DNS欺骗 (DNS

路由选择信息协议攻击 (RIP Attacks) ;

(3) 源路由选择欺骗 (Source Routing Spoofing) ;

(4) TCP 序列号欺骗和攻击 (TCP Sequence Number Spoofing and Attack) 。

【实验目的】

基于 TCP/IP 协议进行攻击实验 , 了解 TCP/IP 协议的具体机制。

实验步骤

环境搭建

这里我使用三台虚拟机做实验, 其中一个用于攻击; 另一个用于被攻击; 第三个作为观察者使用; 把三台主机放在同一个 LAN中,其配置信息参照如下所示 (实际在实验过程中有所改动):

这里我使用的是

Wireshark 工具箱的



SEED实验室已经搭建好,并且已经安装好相关的

Ubuntu 系统,与此同时三台虚拟机都需要打开



netwox

FTP 和 Telnet



工具箱和

服务:

使用如下命令来完成上述任务

Start the ftp server

servicevsftpd start Start the telnet server

serviceopenbsd-inetd start

实验 1:ARP缓存中毒

【实验背景】

ARP缓存是 ARP协议的重要的一部分。作为一个 ARP协议执行结果,一旦一个在 MAC地

址和 IP 地址之间的映射被决定,这个映射就被缓存。因此,如果影射已经存在在缓存中,

就没有必要再重复 ARP协议。然而,因为 ARP协议是无状态的, 缓存可以被轻易的通过恶意

的 ARP信息修改。这样的一种攻击叫做 ARP欺骗。

在这样一个攻击中,攻击者使用欺骗 ARP信息来哄骗受害者接受一个无效的 MAC-IP 映

射,并且在缓存中保存这个映射。 取决于攻击者的目的不同, 这里可能出现各种类型的后果。

例如,攻击者将一个不存在的 MAC地址关联受害者的默认网关的 IP 地址,通过此来启动一

个 Dos 攻击。

【实验内容】

当发送方 B 需要向接收方 C 发送一个数据时, B 会从自己的 ARP表中通过 C的 IP 地址

来查找相应的 C 的 MAC地址。如果 C 的 MAC地址不在 B 的 ARP表中, B 就向全网发广播包,

要求 C 主机返回它的 MAC地址。当 B 接收到 C 返回的 MAC地址时, B 就将更新它的 ARP表。

同时, C 主机也将 B 主机和它对应的 MAC地址记录到 C 的 ARP表中。

 ARP表的更新采用牛奶

原则,也就是说, ARP表将无条件接受最后一次收到的 ARP包作为 ARP更新的数据。

 鉴于此,

攻击者 A 可以利用一些工具伪造一个 ARP包,将 C 的 IP 对应的 MAC地址修改为自己的 MAC

地址,并将这个数据包发送给 B。

 B 在更新了 ARP表之后,新的发往 C 的数据包就会被发送

到 B。

查询 netwox 说明后得知, 33 号工具用于伪造 ARP包。使用命令查看该工具的详细使用

方法。

netwox



33 --



help2

在进行攻击之前,先在三台主机上互相 ping 。

然后使用 arp –a 命令查看 ARP表

之后,在三台主机全部开启的情况下,攻击机

Netwox 80 -e “mac 地址” -i “ ip 地址”



A 发动攻击

之后,使用同样的方法,给



C 主机发送



ARP欺骗包。

实验 2:ICMP重定向攻击

【实验背景】

ICMP 重定向被路由器用来向更新主机的路由信息,最开始只有最少的路由信息。当一

台主机接收到一个 ICMP重定向信息,他将会根据接收到的信息来修改路由表。因为缺少确

认,如果攻击者希望受害者设置它的路由信息为一个特别形式,他们可以发送欺骗

定向信息给受害者,并且欺骗受害者修改它的路由表。



ICMP重

【实验内容】

ICMP重定向信息是路由器向主机提供实时的路由信息, 当一个主机收到 ICMP重定向信

息时, 它就会根据这个信息来更新自己的路由表。 由于缺乏必要的合法性检查, 如果一个黑

客想要被攻击的主机修改它的路由表,黑客就会发送 ICMP 重定向信息给被攻击的主机,让

该主机按照黑客的要求来修改路由表。

在三台机器上搭建的路由指令

A 的路由配置指令

sudo ifconfig eth



0 *.*.



netmask



ifconfig eth1



*.*.



netmask



route add



-net *.*.



24 gw



*.*.

sudo route add -net *.*. 24 gw *.*.

sudo sysctl -w ,ip_forward= 1

的路由配置指令

sudo ifconfig eth0 *.* . netmask route add default gw *.* .

sudo sysctl -w 的路由配置指令

sudo ifconfig eth0 *.* . netmask route add default gw *.* .

sudo sysctl

-w 使用 netwox86 号工具可以完成这个攻击。攻击机

A 指令

sudo netwox 86 -f

" host

*.*.

" -g *.*. -c

1 -i *.*.

- f “host 被攻击机的

IP ” – g

希望对方网关修改后的

IP

–c 类型 –i

源 IP

这个指令只有在按下

ctrl+c

时才会结束,否则一直发送

ICMP包。

此时,在被攻击机

B 中使用

WIRESHRK监听 eth0 ,发现不断收到 ICMP包,

实验 3:SYN洪流攻击

【实验背景】

SYN洪流攻击是 Dos 攻击的一种形式,攻击者发送许多 SYN请求给受害者的 TCP端口,

但是攻击者没有完成三次握手的意向。攻击者或者使用虚假的 IP 地址,或者不继续过程。

在这个攻击中,攻击者可以使受害者的用于半开连接的队列溢出,例如,一个完成 SYN,

SYN-ACK但没有收到最后的 ACK回复的连接。当这个队列满了的时候,受害者不能够在进行更多的连接。

SYN 缓存策略: SYN缓存是是对抗 SYN洪流攻击的一种防御机制。如果机器检测到它正在被 SYN洪流攻击,这种机制将会 kick in 。

【实验内容】

如果一个 TCP连接没有完成三次握手, 它将被放入半开连接队列, 而半开连接队列有最

大长度,如果连接数量达到最大容量时,新的连接就不能够被建立。

 SYN洪泛攻击就是通过未完成的 TCP请求来试图充满半开连接队列, 使得正常的连接不能够被建立, 达到攻击的效

果。

在这个实验中,使用 telnet 服务作为攻击目标,在 23 号端口发起 SYN洪泛攻击。

首先,尝试在主机 B 和 C 之间建立 telnet 连接,说明网络联通。主机 B 远程登录主机

C 的账户

在主机 C 上,通过命令 netstat – na | grep tcp 命令查看当前的 TCP相关端口的状

态,发现 23 号端口处于联通状态

在主机 C上查看 C 的半开连接队列的最大长度为 128,缓冲保护开启。

在主机 B 中使用 exit 命令断开与 C的 telnet 连接。之后在主机 A 中使用 netwox76 号工具发动针对主机 C23 号端口的 SYN攻击。

回到主机 B 中,尝试与主机 C进行 telnet 远程连接,

从上图及实验过程可以看出,虽然连接的速度很慢,但是是可以连接上的。我在主机 B

上开启了两个终端,同时试图进行 telnet 连接。

到主机 C中查看端口连接情况,如图和图。发现,队列中充斥着大量半开连接,目的端

口号都是 C 机的 23 号端口,但是源主机 IP 和端口却不一致,而且端口号都是不常用端口,

可以判断出,这极有可能是一次 SYN攻击。

实验 4:在 telnet 和 ssh 连接上的 TCP RST攻击

【实验背景】

TCP RST攻击可以终止一个在两个受害者之间已经建立的 TCP连接。例如,如果这里有

一个在 A 和 B 之间已经建立的 telnet 连接,攻击者可以伪造一个 A 发向 B 的 RST包,打破这个存在的连接。

【实验内容】

首先完成主机 B 与主机 C 的 telnet 连接,

在 C 上查看端口连接情况,如图,已经完成主机 B 与主机 C23 端口的连接。

这时,在主机 A 中通过 netwox78 号工具发起针对 B 主机的 RST攻击。

回到 B 主机中,发现没有什么变化,但是当回车之后,出现连接已经被其他主机断开,并退回到主机 B 的账户下

在主机 C中查看此时的连接情况, 如图。可以看出 BC主机的 23 端口的连接已经被断开,处于监听状态。

注意,此时主机 A 的攻击并没有停止。回到主机 B 中,再次尝试连接主机 C,发现最开始是连接上了,但是还没来得及显示后续内容,连接就被中断。

实验 5:对视频流应用程序的 TCP RST攻击

【实验背景】

同实验 4。

【实验内容】

由于 SEED实验室中配置的 Ubuntu 没有视频流应用, 故此没有完成此实验, 但其实与实验 4 是相同的原理。

实验 6:ICMP盲目连接重置和源端关闭攻击

【实验背景】

ICMP 信息同样可以被用于达成连接重置攻击。为了达到这个目的,攻击者发送一条显

示“硬错误”的 ICMP的错误信息给 TCP连接两端的任意一方。连接将会被立即中断,因为

在 RFC1122 中主机在接收到这样一个 TCMP错误包时,应当立即中断相关的连接。 RFC1122

定义“硬错误”为一个目的不可达且协议无效、端口无效、标志位缺失和 DF位设置的 ICMP

错误信息

ICMP 源端关闭信息被拥塞路由器用于告知 TCP发送者减缓发送包的速度。攻击者可以制定这样的信息来实施对 TCP发送者的拒绝服务攻击。

【实验内容】

实验中使用的是实验 2 中的拓扑结构及 IP 地址。

首先在 B 和 C见建立 telnet 连接:

A 是攻击机, A 试图伪造一个 ICMP错误信息的包,发送给 B 或 C(实验中发送给了 B),来终止 BC见的连接。

接下来,在 C 主机中查看端口连接信息,如图,发现连接并没有终止

在 B 机中查看 wireshark 抓取的 eth0 的流量,如图,发现 ICMP错误信息包 B 收到了。

出现这种情况的原因可能是在高版本的 ubuntu 中已经制订了一些策略来防止这些攻

击。

实验 7:TCP报文劫持

【实验背景】

会话劫持利用了 TCP/IP 工作原理来设计攻击。 TCP使用端到端的连接,即 TCP用(源

IP ,源 TCP端口号,目的 IP ,目的 TCP端号)来唯一标识每一条已经建立连接的 TCP链路。

另外, TCP在进行数据传输时, TCP报文首部的两个字段序号( seq)和确认序号( ackseq )

非常重要。序号( seq)和确认序号( ackseq )是与所携带 TCP数据净荷( payload )的多少

有数值上的关系:序号字段( seq )指出了本报文中传送的数据在发送主机所要传送的整个

数据流中的顺序号, 而确认序号字段 ( ackseq )指出了发送本报文的主机希望接收的对方主

机中下一个八位组的顺序号。

 因此,对于一台主机来说, 其收发的两个相临 TCP报文之间的序号和确认序号的关系为:它所要发出的报文中的 seq 值应等于它所刚收到的报文中的 ackseq 的值,而它所要发送报文中 ackseq 的值应为它所收到报文中 seq 的值加上该报文中所发送的 TCP净荷的长度。

【实验内容】

2 号机 Telnet



到 3 号机,实验在



1 号机上劫持



2 号机到



3 号机上的



Telnet



报文。

总结

通过这一次内容丰富并且工作量巨大的实验,我对基于 TCP/IP 的攻击有了更加深刻甚至可以说是比较新的认识, 对它们各自的机制、 攻击特点、 相互之间可能存在的联系以及它们差别所在等等细节问题有了新的看法、 认识,也有了一些专属于我们小组自己的解决方案。这次实验,让我至少意识到了以下这样一个事实: TCP/IP 协议在设计之初仅考虑了成本和实现功能,并没有过多考虑安全因素。因此 TCP/IP 协议栈中提供了大量的起关键作用的信息和指令, 但是这些信息和指令的执行缺乏认证机制, 能够方便地伪造。

 这也就为如此之多的 TCP/IP 攻击提供了可能。

  • 下载文档
  • 收藏
  • 0

推荐访问:实验报告 实验 攻击 计划 TCPIP攻击实验实验报告总结计划

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。