1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.1 ARP缓存欺骗攻击原理
按照 ARP 协议的设计,为了减少网络上过多的 ARP 数据通信,一个主机,即使收到的 ARP 应答并非自己请求得到的,它也会将其插入到自己的 ARP 缓存表中,这样,就造成了“ ARP 欺骗”的可能。如果黑客想探听同一网络中两台主机之间的通信(即使是通过交换机相连),他会分别给这两台主机发送一个 ARP 应答包,让两台主机都“误”认为对方的 MAC 地址是第三方的黑客所在的主机,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机间接进行的。黑客一方面得到了想要的通信内容,另一方面,只需要更改数据包中的一些信息,成功地做好转发工作即可。在这种嗅探方式中,黑客所在主机是不需要设置网卡的混杂模式的,因为通信双方的数据包在物理上都是发送给黑客所在的中转主机的。
1.2 ICMP重定向攻击原理
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表,如果黑客要求该主机将网关修改为黑客自己的机器,就使得该主机在发送数据包时,都会被黑客获取,进一步实现中间人攻击或者DOS攻击。
1.3 SYN Flood攻击原理
SYN Flood(半开放攻击)是一种拒绝服务(DDoS)攻击,其目的是通过消耗所有可用的服务器资源使服务器不可用于合法流量。通过重复发送初始连接请求(SYN)数据包,攻击者能够压倒目标服务器机器上的所有可用端口,导致目标设备根本不响应合法流量。
1.4 TCP RST攻击原理
在 TCP 重置攻击中,攻击者通过向通信的一方或双方发送伪造的消息,告诉它们立即断开连接,从而使通信双方连接中断。正常情况下,如果客户端收发现到达的报文段对于相关连接而言是不正确的,TCP 就会发送一个重置报文段,从而导致 TCP 连接的快速拆卸。
TCP 重置攻击利用这一机制,通过向通信方发送伪造的重置报文段,欺骗通信双方提前关闭 TCP 连接。如果伪造的重置报文段完全逼真,接收者就会认为它有效,并关闭 TCP 连接,防止连接被用来进一步交换信息。服务端可以创建一个新的 TCP 连接来恢复通信,但仍然可能会被攻击者重置连接。
1.5 TCP会话劫持攻击原理
TCP会话劫持目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。
2.实践过程
2.1 ARP缓存欺骗攻击
Ubuntu靶机ping win2000攻击机
打开ubuntu-靶机 输入arp -a
命令查看IP地址和与其对应的物理地址
查看arp结果
打开kali使用netwox进行攻击
再次查看arp地址
我们发现192.168.200.124(WIN2000的MAC地址已经发生了改变),攻击成功
2.2 ICMP重定向攻击
因为两个攻击机(kali和Ubuntu都在同一网段,我们可以把Ubuntu攻击机当做靶机来看待)
查看Ubuntu的网关
打开kali攻击机执行netwox 86 -f "host 192.168.200.5" -g 192.168.200.4 -i 192.168.200.1
再次打开Ubuntu ping www.baidu.com
我们可以看到出现新的下一跳地址,说明攻击成功。
2.3 SYN Flood攻击
首先使用Ubuntu攻击机telnet 192.168.200.123(靶机)
然后kali使用 netwox 76 -i 192.168.200.123 -p 23 对靶机的23号端口进行SYNFlood攻击
攻击之后回到Ubuntu再次 Telnet 192.168.200.123
再次打开kali攻击机,打开wireshark,可以发现攻击机向靶机23号端口发送了大量没有mac地址的虚假的SYN请求,并且无法溯源攻击者的身份
2.4 SYN RST攻击
攻防环境如上一样
打开Kali 输入 netwox 78 -I 192.168.200.123进行攻击
打开ubuntu再次Telnet
发现无法Telnet连接,攻击成功
2.5 TCP会话劫持攻击
打开kali 输入ettercap -G,打开ettercap,并Scan for host,然后选择 192.168.200.5作为攻击对象1和192.168.200.123作为攻击对象2
选择ARP poisoning
打开view ->connection
打开ubuntu对192.168.200.123进行Telnet连接
我们发现ettercap已经获取Telnet的两个主机的信息
左侧为账户密码,右侧为详细的命令信息
3.学习中遇到的问题及解决
1.在Kali中安装netwox一直等待无响应:解决:VMnet8改为桥接模式
2.IP地址自动更改导致本来应该在攻击网段和靶机网段的IP区间发生混淆。解决:1.更改密网中IP地址设置,并相应调整混淆的IP地址。2:更改局域网,重新更新IP地址设置
3. 一开始kali输入正确SYN RST攻击命令之后,ubuntu还是可以Telnet,经排查是上一步的syn Flood攻击没有关闭,并且又打开了新一个命令窗口导致。解决:关闭syn Flood攻击后,在原本的命令窗口继续操作就可以了。
4.学习感想和体会
此次试验看似简单,但要静下心来一步步做出来还是花费了不少周折,因为不仅仅是要模仿的做出来,还要尽可能的了解背后的原理。最后的收获是值得的,每当遇到问题,然后去解决问题,这个过程加深了我对知识的印象。