中南大学
TCP/IP攻击实验
实验报告
学生姓名                                    
学    院           信息科学与工程学院       
专业班级                                    
完成时间           2015年11月29日         

TCP/IP攻击实验
1.实验描述
【实验背景】
由于TCP/IP协议是Internet的基础协议,所以对TCP/IP协议的完善和改进是非常必要的。TCP/IP协议从开始设计时候并没有考虑到现在网络上如此多的威胁,由此导致了许多形形的攻击方法,一般如果是针对协议原理的攻击(尤其DDOS),我们将无能为力。
TCP/IP攻击的常用原理有: 
(1) 源地址欺骗(Source Address Spoofing)、IP欺骗(IP Spoofing)和DNS欺骗(DNS Spoofing);
(2) 路由选择信息协议攻击(RIP Attacks);
(3) 源路由选择欺骗(Source Routing Spoofing) ;
(4) TCP序列号欺骗和攻击(TCP Sequence Number Spoofing and Attack)。
【实验目的】 
基于TCP/IP协议进行攻击实验,了解TCP/IP协议的具体机制。
2.实验步骤
环境搭建
这里我使用三台虚拟机做实验,其中一个用于攻击;另一个用于被攻击;第三个作为观察者使用;把三台主机放在同一个LAN中,其配置信息参照如下所示(实际在实验过程中有所改动):
这里我使用的是SEED实验室已经搭建好,并且已经安装好相关的netwox工具箱和Wireshark工具箱的Ubuntu系统,与此同时三台虚拟机都需要打开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表
之后,在三台主机全部开启的情况下,攻击机A发动攻击
Netwox 80 -e mac地址 -i ip地址
之后,使用同样的方法,给C主机发送ARP欺骗包。
实验2:ICMP重定向攻击
【实验背景】
ICMP重定向被路由器用来向更新主机的路由信息,最开始只有最少的路由信息。当一台主机接收到一个ICMP重定向信息,他将会根据接收到的信息来修改路由表。因为缺少确认,如果攻击者希望受害者设置它的路由信息为一个特别形式,他们可以发送欺骗ICMP重定向信息给受害者,并且欺骗受害者修改它的路由表。
【实验内容】
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
在三台机器上搭建的路由指令
A的路由配置指令
sudo ifconfig eth0 *.*. netmask ifconfig eth1 *.*. netmask route add -net *.*.24 gw *.*.
sudo route add -net *.*.24 gw *.*.
sudo sysctl -w ,ip_forward=1
B的路由配置指令
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。
【实验内容】
route add 添加路由
如果一个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攻击。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。