《网络攻防实践》第5周作业

20199138 2019-2020-2 《网络攻防实践》第5周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553
本次作业的目标是 学习TCP/IP网络协议攻击
作业正文 见下文

1.实践内容

网络攻击基本模式:

- 截获:被动攻击模式,获取网络通信双方的通信信息内容,是对机密性的违反。技术包括:嗅探、监听
- 中断: 主动攻击模式,使正常的网络通信和会话无法继续,是对可用性的破坏。技术包括:DoS
- 篡改:主动攻击模式,对网络通信过程的信息内容进行修改,使得通信方接收到篡改后的虚假信息,是对完整性的违背。技术包括:数据包篡改,一般需要结合身份欺骗进行中间人攻击。
- 伪造:主动攻击模式,假冒网络通信方身份,欺骗通信对方达到恶意目的,是对真实性的背离。技术包括:欺骗

中间人攻击(Man-in-the-Middle Attack,MITM):攻击者通过各种技术手段与通信双方建立起各自独立的会话连接,并进行消息的双向转发,双方误认为在一个私有通道直接通信,但实际整个会话都是由攻击者截获和控制的。

TCP/IP网络协议栈安全缺陷与攻击技术

如图所示:

网络层协议攻击及防范措施

  1. IP源地址欺骗攻击:
  • 攻击者伪造具有虚假源地址的IP数据包进行发送以达到隐藏发送者身份、假冒其他计算机的目的。
  • 原理:只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。
  • 防范措施:使用随机化的初试序列号;使用网络层安全传输协议IPsec;避免采用基于IP地址的信任策略;在路由器和网关上实施包过滤。
  1. ARP欺骗攻击:
  • 指攻击者在有线或以太网上发送伪造的ARP信息,对特定IP所对应的的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
  • 原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,但是局域网内可以存在内部攻击者,或者已经渗透进局域网的外部攻击者或恶意代码。这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系。
  • 防范措施:静态绑定关键主机的IP地址与MAC地址映射关系;使用相应的ARP防范工具;使用VLAN虚拟子网细分网络拓扑;加密传输数据。
  1. ICMP路由重定向攻击:
  • 攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。ICMP报文分为两种类型:差错报告类(目的站不可达、数据报超时、数据包参数错误)、控制类报文(请求/应答类和通知类)。
  • 原理:利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
  • 防范措施:根据类型过滤一些ICMP过滤包;设置防火墙过滤;对于ICMP重定向报文判断是不是来自本地路由器。

传输层协议攻击及防范措施

  1. TCP RST攻击:
  • TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
  • 原理:TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
  1. TCP会话劫持攻击:
  • 原理:TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
  • 防范措施:禁用主机上的源路由;采用静态绑定IP-MAC映射表以避免ARP欺骗;引用和过滤ICMP重定向报文。
  1. TCP SYN Flood拒绝服务攻击:
  • 原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
  • 防范措施:SYN-Cookie技术;防火墙地址状态监控技术。
  1. UDP Flood拒绝服务攻击
  • 原理:通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标主机网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。UDP Flood一般采用分布式拒绝服务攻击(Distributed Denial of Service,DDoS)达到发送大量的UDP数据包。
  • 防范措施:禁用或过滤监控和响应服务;禁用或过滤其他的UDP服务。

2.实践过程

在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP会话挟持攻击(bonus)。

2.1 IP源地址欺骗

  1. 在Kali上安装netwox,apt-get install netwox ,

  2. 在Kali中打开wireshark开始抓包,终端输入命令netwox 41 -l 192.168.200.1 -m 192.168.200.2
    netwox 41表示netwox第41号工具构造ICMP数据包并且需要设定IP地址;-l 表示显示与审计相关的模块;192.168.200.180为伪造的源地址;-m表示显示与暴力破解相关的模块;192.168.200.2表示目标IP地址。

  3. IP源地址的欺骗完成。查看wireshark,下图中No.2是进行广播询问是否有源IP地址发出的数据告诉kali,下图中No.4是kali主机192.168.0.103向网关192.168.0.1,发送数据然后得到kali的MAC地址(下图No.5),再进行IP数据的传输。

2.2 ARP缓存欺骗攻击

选择三个虚拟机,IP和MAC地址如下表:

主机 IP地址 MAC地址
kali-Linux 192.168.0.103 00:0C:29:8C:D8:DA
MetaSploitable-Linux 192.168.0.105 00:0C:29:C3:CD:59
SEED Ubuntu 192.168.0.100 00:0C:29:6E:43:4F
这三台主机要改为桥接模式,使在同一局域网内。
  1. 用SEED ping Meta,可得到arp缓存表,arp -a查看arp缓存表。

    可以看出Meta的IP地址与MAC地址是相对应的。

  2. 在Kali上终端输入指令netwox 80 -e 00:0C:29:8C:D8:DA -i 192.168.0.105
    80是指netwox的80号工具,第一个是Kali的MAC地址,第二个是MetaSploitable的IP地址,执行后就在局域网内广播这条命令。

  3. 查看结果,可以看出Meta的MAC地址变为了Kali的MAC地址。

  4. 验证,Meta和SEED进行通信,执行ftp 192.168.0.100,输入SEED主机的账号密码成功登录,并通过Kali上的wireshark捕获,ARP欺骗实现成功。

2.3 ICMP重定向攻击

此实验中主要修改SEED Ubuntu的路由表

  1. 在SEED Ubuntu上打开Wireshark来查看数据流量,并在终端ping baidu.com。

  2. 在Kali上执行netwox 86 -f "host 192.168.0.100" -g 192.168.0.103 -i 192.168.0.1
    即嗅探到192.168.0.100(SEED Ubuntu)的数据包时,以192.168.0.1的名义发送ICMP重定向报文,使192.168.0.103(Kali)成为其默认路由,然后观察Wireshark数据包的情况。

  3. 观察SEED上ping的过程和Kali上wireshark的数据包过程,可以看出其访问百度的数据包已经被重定向到192.168.0.103(下一跳是192.168.0.103)。

2.4 SYN Flood攻击

利用SEED 向Meta发起telnet访问服务,用Kali攻击靶机Meta的telnet服务端口,并用Wireshark查看。

  1. 在SEED的终端输入telnet 192.168.0.105,并输入Meta的账号密码。

  2. 然后在kali上通过指令netwox 76 -i 192.168.0.105 -p 23,可对靶机Meta的23号端口进行攻击,

  3. 这时在SEED Ubuntu上发现无法再次进行访问。在Wireshark中也可以看到Kali向靶机Meta发送了大量的虚假ip发出的SYN连接请求,这些虚假的连接请求没有MAC地址,无法溯源攻击者的真实身份。

    主机风扇转的确实很厉害。

2.5 TCP RST攻击

利用SEED 向Meta发起telnet访问服务,用Kali对靶机Meta发起TCP RST攻击。

  1. 在SEED的终端输入telnet 192.168.0.105,并输入Meta的账号密码。

  2. 在Kali上利用netwox的78号工具对靶机Meta进行TCP RST攻击netwox 78 -i 192.168.0.105

  3. 再查看SEED 的终端,连接被强制关闭了。也无法再次登录。在Wireshark中也可以观察到发送的值。

2.6 TCP会话劫持攻击

利用SEED 向Meta发起telnet访问服务,用Kali对靶机Meta发起TCP会话劫持攻击。

  1. 在SEED的终端输入telnet 192.168.0.105,并输入Meta的账号密码。

  2. 在Kali上打开Wireshark,输入过滤条件tcp.port == 23,然后在SEED Ubuntu中输入ls,再回到Kali的Wireshark中查看,会发现有l和s的数据包。

  3. 然后打开最后一个包,查看源端口,目的端口,NEXT Seq NMU和ACK的值。

  4. 伪造下一个包,把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息后,Kali使用netwox工具伪造SEED给Meta发一个tcp包。发送成功后,原来的SEED 就会失去连接,同时Meta会把Kali当作访问者,这样就实现了会话劫持。
    指令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.0.100 --ip4-dst 192.168.0.105 --tcp-src 40924 --tcp-dst 23 --tcp-seqnum 2 --tcp-acknum 2 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
    第一个40是netwox的40号工具,在ip4-src后输入你的SEED Ubuntu地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示原端口号(会变化的),tcp-seqnum和tcp-acknum输入刚才的值,tcp-data是要发送数据的16进制值,这里的是helloworld的16进制。在Wireshark中也可以观察到发送的值。

3.学习中遇到的问题及解决

  • 问题1:kali无法安装netwox
  • 问题1解决方案:将kali改为桥接模式,连接外网,换源之后再进行安装。

4.实践总结

做实验不可怕,可怕的是环境出现问题,没有缘由的出错,不停的改不停的试,让人心烦又意乱,终于解决了问题时才发现,其实错的时候离正确已经很接近了。
心里感觉又多懂了它几分。

参考资料

猜你喜欢

转载自www.cnblogs.com/mywlgf/p/12606151.html