20211919 《网络攻防实践》 第四次作业

1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。

网络层协议攻击
常见的包括:IP源地址欺骗、ARP欺骗和ICMP路由重定向攻击。

  • IP源地址欺骗(IP spoofing)
    定义:是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
    应用场景:IP源地址欺骗常应用于拒绝服务攻击、网络扫描、基于IP地址的身份认证机制等。
    防范措施:使用随机化初始序列号、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤等。
  • ARP欺骗(ARP Spoofing)
    定义:有时被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的。
    应用场景:局域网嗅探、中间人攻击、恶意代码等。
    防范措施:静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑、加密传输数据以降低ARP欺骗攻击的危害后果等。
  • ICMP路由重定向攻击(ICMP Redirect Attack)
    定义:攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。
    使用场景:ICMP报文类型分为差错报告类和控制类。ICMP重定向攻击一般会和IP源地址欺骗技术结合实施。
    防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对于ICMP重定向报文判断是不是来自本地路由器等。

传输层协议攻击
主要协议TCP和UDP也存在很多种不同攻击方式,有TCP RST攻击、TCP会话劫持攻击、TCP SYN洪泛拒绝服务攻击和UDP洪泛拒绝服务攻击等。

  • TCP RST攻击
    也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。
  • TCP会话劫持(TCP Session Hijacking)
    目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(客户端)身份,与另一方进行进一步通信。
    防范TCP会话劫持攻击的手段有禁用主机源路由、采用静态绑定IP-MAC映射表以避免ARP欺骗、引用和过滤ICMP重定向报文、采用网络层加密机制IPSec协议等。
  • TCP SYN Flood拒绝服务攻击
    拒绝服务攻击(Denial of Service,DoS)的目的是使服务器不能够为正常访问的用户提供服务。
    -TCP SYN Flood(也称SYN洪泛攻击)利用TCP三次握手协议缺陷向目标主机发送大量伪造源地址的SYN连接请求消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
    防范SYN Flood攻击的措施有SYN-Cookie技术、防火墙地址状态监控技术等。
  • UDP Flood拒绝服务攻击
    通过向目标主机和网络发送大量的UDP数据包造成目标主机显著计算负载提升或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
    防范措施有禁用或过滤监控和响应服务、禁用或过滤其他UDP服务等。

2.实践过程
本次实验使用kali虚拟机、seed ubunt虚拟机和Metasploitable靶机。在开始具体攻击实验前,我们使用ifconfig先分别查看三台虚拟机的ip和mac地址。

主机 IP MAC
kali 192.168.200.7 00:0c:29:7b:91:5c
攻击机ubuntu 192.168.200.2 00:0c:29:f3:ba:c5
Metasploitable_ubuntu 192.168.200.33 00:0c:29:b2:fc:5c



:本次作业要求环境为局域网,因此三款机型网络适配器均调整为VMnet8(NAT模式)。

2.1 ARP缓存欺骗攻击

  1. 在攻击机ubunt中使用指令ping Metasploitable_ubuntu的IP,得到arp缓存表。使用arp -a查看arp缓存表,可以从下图中看到Metasploitable_ubuntu的IP地址和MAC地址是对应的。
  2. 然后在kali上执行指令netwox 80 -e MAC(kali) -i IP( Metasploitable_ubuntu)(80是指netwox的80号工具)之后,就会在局域网内广播这条命令。使得攻击机Ubuntu 收到IP(Metasploitable)/MAC(kali)的映射。(注:此处没有返回结果)
  3. 在攻击机ubunt中再次使用【arp -a】查看ARP映射,欺骗成功:

    4.在kali上使用wireshark进行捕获。

    5.最后,执行sudo arp -d 192.168.200.33来删除arp缓存.

    2.2 ICMP重定向攻击
    1.在攻击机ubunt上打开Wireshark来查看数据流量,并在终端ping baidu.com,我们发现攻击机ubunt可以直接访问外网。


    2.在kali主机上执行命令netwox 86 -f "host IP(攻击机ubunt)" -g IP(kali) -i 192.168.200.1(嗅探到攻击机ubunt的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使kali成为默认路由)之后,在终端中,我们发现其访问百度的数据包已经被重定向到kali。

    可以看到ip从192.168.200.2(攻击机ubunt)变成192.168.200.7(kali)。即访问百度的数据包已经被重定向到kali的ip下。
    2.3 SYN Flood攻击
    这里选择利用攻击机 Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。
    1.使用攻击机 Ubuntu向MetaSploitable发起登陆telnet IP(MetaSploitable),输入用户名密码(MetaSploitable登陆的用户名密码)。

    2.在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i IP(MetaSploitable)-p 23

    3.在kali中用Wireshark捕包,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求。同时seed上进行访问也发现无法访问了。

2.4 TCP RST攻击
这里我们同样选择利用攻击机Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机对靶机发起TCP RST攻击。

  1. 使用攻击机 Ubuntu向MetaSploitable发起登陆telnet IP(MetaSploitable),输入用户名密码(MetaSploitable登陆的用户名密码)。

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

    3.回到我们刚才攻击机Ubuntu的登陆界面,我们现在连接已经被强制关闭了。当然你也可以用Wireshark查看发送的数据包。

    在kali中用Wireshark捕包,可以看到攻击机向靶机发送了RST包。

2.5 TCP会话劫持攻击
1.在攻击机ubunt上使用telnet IP(MetaSploitable)指令,并且账号密码登陆。同时在kali上用Wireshark进行捕包

2.在Kali上打开Wireshark设置过滤条件telnet,找到最后一个数据包,打开TransmissionControl Protocol 查看:源端口、目的端口、Next Seq Num和ACK值。

3.伪造发下一个包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造攻击机 Ubuntu给MetaSploitable发一个tcp包。发送成功后,原来的攻击机 Ubuntu就会失去连接,同时MetaSploitable会把Kali当作访问者 ,如此实现了会话劫持。
4.使用指令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.2 --ip4-dst 192.168.200.33 --tcp-src 43308 --tcp-dst 23 --tcp-seqnum 120 --tcp-acknum 650 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "6c"
其中第一个40是netwox的40号工具,在ip4-src后输入你的攻击机 Ubuntu地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示源端口号(最后一个包的目的端口);tcp-dst表示目的端口号(最后一个包的源端口);tcp-seqnum和tcp-acknum输入在前面说明的值;tcp-data是你要发的数据的16进制值,6c是l的16进制。

5.在wireshark中可以捕到伪造的包,如果发现了很多Tcp Dup和Tcp Retransmission,那么劫持就是成功的。TCP Dup ACK XXX#X即重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失,TCP Retransmission是超时引发的数据重传,也就是ACK风暴。

3.学习中遇到的问题及解决
1、给kali主机修改名字的时候,按照vi etc/hostname修改以后,后期实验中无法切换到root模式,最后重新安装了kali虚拟机,先使用vi /etc/hosts把localhost改成新主机名,然后使用sudo hostnamectl set-hostname 名字更换成功。
2、执行netwox 80 -e MAC(kali) -i IP( Metasploitable_ubuntu)时,出现"E: Unable to locate package"错误,使用sudo apt-get update进行解决,并在执行这条命令时没有返回结果,一开始以为出现了错误。
3、在TCP会话劫持攻击实验时,无法正常连接telnet,最后发现是kali虚拟机里上一个实验的命令没有关闭导致的。
4.学习感想和体会
这次实验,应用netwox工具进行了ARP欺骗攻击、ICMP路由重定向攻击、SYN Flood攻击、TCP RST 攻击和TCP会话劫持。实验虽然不算难,但是对这些攻击的原理不是很懂,还需要多学习。

posted @ 2022-04-04 11:31  NingNa  阅读(482)  评论(0编辑  收藏  举报