20199131-第5次作业-TCP/IP网络协议攻击

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

1.知识总结

ARP欺骗原理

  • 局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。
  • 在局域网中某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

ICMP重定向攻击

  • 原理:IP协议缺少差错和查询机制。ICMP报文类型,差错报告类和控制类。ICMP路由重定向主要用于网络故障是数据包处理,网络拓扑结构发生变化,出现故障时。利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。

  • 路由表

TCP RST攻击


TCP RST攻击可以终止两个被攻击主机之间的TCP连接。

TCP SYN Flood拒绝服务攻击

  • 拒绝服务攻击(Denial of Service,DoS)目的是使服务器不能够为正常访问的用户提供服务

  • TCP SYN Flood:又称为SYN洪泛攻击,它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务

TCP会话劫持的原理

  • TCP会话劫持攻击,是劫持通信双方已建立的TCP会话连接,假冒其中一方的身份与另一方进行进一步通信。通常一些网络服务会建立在TCP会话之后进行应用层的身份认证,客户端在通过身份认证之后,就可以通过TCP会话连接对服务器索取资源。且期间不用再次进行身份认证。而TCP会话劫持为 攻击者提供了一种绕过应用层身份认证的技术途径,因此得到较高水平攻击者的青睐。

2.实践过程

2.1 ARP缓存欺骗攻击

  • 环境

主机A(kali)的配置:

主机B(Win2kServer)的配置:

主机C(WinXPAttacker)的配置:

实验工具,这里我们使用netwox,首先,在kali虚拟机下安装netwox如图

  • 操作

接着在主机B上ping主机C,这样主机B就建立了ARP映射表,如图”

在Kali主机上,使用命令netwox 80 -e 主机A的MAC地址 -i 主机C的IP地址

如图,再次在可以看到B主机的ARP映射表已经被修改,目的达到!

2.2 ICMP重定向攻击

  • 环境
    靶机A:Win2kServer,如图

攻击机B:Kali,如图

查看靶机A的route表,可以看到这个时候表中的Gateway(又称下一跳路由器)里没有攻击机B的IP,如图所示:

在kali虚拟机下,输入命令”netwox 86 -f "tcp and host 192.168.200.88" -g 192.168.200.8 -i 192.168.200.1“,进行ICMP重定向

然后,我们再查看一次route表,如图,可以看到

2.3 SYN Flood攻击

  • 这里用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,用kali攻击靶机的telnet服务端口
  • 使用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,然后输入账号密码,可正常登录。

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

随后再次尝试使用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,发现不可访问,说明攻击成功

2.4 TCP RST攻击

这里同样先利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,然后回到kali通过指令netwox 78 -i 192.168.200.10,发现SEED上的连接已经被关闭

再次访问,也无法访问

2.5 TCP会话劫持

  • 这里同样先利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问

  • 然后在kali上打开wireshark,设置过滤条件tcp.port == 23,然后在seed上输入账号:msfadmin,密码:msfadmin远程登录,回到kali的wireshark查看,会有m、s、f、a、d、m、i、n的数据包。







  • 然后打开最后一个包,观察源端口,目的端口,NEXT Seq NMU和ACK的值

  • 通过指令
    netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.4 --ip4-dst 192.168.200.125 --tcp-src 34192 --tcp-dst 23 --tcp-seqnum 13 --tcp-acknum 97 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"伪造包

然后可以在wireshark里观察到发送的值helloword

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

  • 问题1:在做ARP缓存欺骗攻击时,使用WinXP作为被攻击对象,结果实验中,无法改变WinXP的ARP映射表
  • 问题1解决方案:使用Win2kServer作为被攻击对象。

4.实践总结

感觉先可以做一遍实验,接着写博客的时候再边写边做,总共做两遍。

参考资料

posted @ 2020-04-01 22:06  李磊20199131  阅读(450)  评论(0编辑  收藏  举报