202111920 2021-2022-2 《网络攻防实践》实践四报告

1.实践内容

TCP/IP网络协议栈攻击概述

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。

  • 网络安全基本属性包括机密性、完整性和可用性。

  • 网络攻击基本模式包括截获、中断、篡改与伪造。

网络层协议攻击

主要协议如IP、ICMP和ARP都存在多种攻击方式,常见的包括:IP源地址欺骗、ARP欺骗和ICMP路由重定向攻击。

IP源地址欺骗

定义:是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。

应用场景:IP源地址欺骗常应用于拒绝服务攻击、网络扫描、基于IP地址的身份认证机制等。

防范措施:使用随机化初始序列号、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤等。

ARP欺骗

定义:有时被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的。

应用场景:局域网嗅探、中间人攻击、恶意代码等。

防范措施:静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑、加密传输数据以降低ARP欺骗攻击的危害后果等。

ICMP路由重定向攻击

定义:攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。

使用场景:ICMP报文类型分为差错报告类和控制类。ICMP重定向攻击一般会和IP源地址欺骗技术结合实施。

防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对于ICMP重定向报文判断是不是来自本地路由器等。

传输层协议攻击

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

TCP RST攻击

也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。

TCP会话劫持

目标是劫持通信双方已建立的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服务等。

TCP/IP网络协议栈攻击防范措施
TCP/IP网络协议栈攻击防范措施包括检测、预防与安全加固,网络安全协议和下一代互联网协议。

2.实践过程

(1)ARP缓存欺骗攻击

1)选定kali做攻击机,靶机为ubuntu和win2kServer

机器 IP地址 MAC地址
kali 192.168.200.6 00:0c:29:e2:1c:53
ubuntu 192.168.200.3 00:0c:29:e5:db:4b
win2kServer 192.168.200.27 00-0C-29-C4-97-3A

使用命令ifconfig -a查询ubuntu和kali的MAC地址

使用命令iPconfig/all查询win2kServer的MAC地址

用Ubuntu ping win2kServer,得到arp缓存表,并用arp -a查看arp缓存表,如图所示,win2kServer的IP地址和MAC地址是对应的

2)在kali上下载netwox


在Kali上执行指令netwox 80 -e 00:0c:29:e5:db:4b -i 192.168.200.3。解释一下这条指令,80是指netwox的80号工具(建议用80而不是33,因为33一次执行,很容易arp缓存表就回去了),第一个为攻击机Kali放入MAC地址,第二个为MetaSploitable的IP地址,执行后就在局域网内广播这条命令。更多的netwox指令参考netwox入门教程。(没有输出请放心,是一直在广播的)

3)执行sudo arp -d 192.168.3.21来删除arp缓存,


(2)ICMP重定向攻击

1)首先在SEED Ubuntu上打开Wireshark来查看数据流量,并在终端ping baidu.com,我们发现SEED Ubuntu桥接之后直接访问外网

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

3)然后在ubuntu中继续ping百度,发现百度的数据包已经被重定向到192.168.200.6

(3)SYN Flood攻击

这里选择利用Ubuntu向靶机win2kServer发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。

1)使用Ubuntu向win2kServer发起登陆telnet 192.168.200.27,输入用户名密码。

2) 在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击

使用命令为:netwox 76 -i 192.168.200.27 -p 23

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

(4)TCP RST攻击

1)使用Ubuntu向win2kServer发起登陆telnet 192.168.200.27,输入用户名密码。

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

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

(5)TCP会话劫持攻击

1)使用Ubuntu向win2kServer发起登陆telnet 192.168.200.27,输入用户名密码。

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


3)

打开TransmissionControl Protocol 查看以下几个值,源端口、目的端口、Next Seq Num和ACK值。

4)我们要伪造发下一个包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造Ubuntu给win2kServer发一个tcp包。发送成功后,原来的Ubuntu就会失去连接,同时win2kServer会把Kali当作访问者 ,如此实现了会话劫持。

  • 使用指令:
    netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.27 --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后输入你的Ubuntu地址,在ip4-dst后输入你的win2kServer地址,tcp-src表示原端口号(这个是变化的),tcp-seqnum和tcp-acknum输入刚才讲解的值,tcp-data是你要发的数据的16进制值,这里的是helloworld的16进制。同样的可以在Wireshark中观察到发送的值。


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

  • 在攻击靶机的telnet服务端口时,因为我的靶机用的是win系统,所以要先打开telnet,然后还是不行,显示Server allows NTLM authentication only
    Server has closed connection,这是因为默认情况下,win2000的Telnet服务使用NTLM的验证方式,这种验证方式避免了明文密码的传送,提高了安全性。但是win98、nt4.0等系统的Telnet客户端客户端不支持这种方式,这样就带来了不便。那我们可以这样设置:开始菜单|程序|管理工具|Telnet服务器管理(或者运行tlntadmn),选择3 显示/更改注册表设置,然后选择7 NTLM,进行修改。可接受的值为0-2,2是NTLM only,0是NTLM not available,1是二者都支持,默认值是2。修改后需要重新启动Telnet服务。

4.学习感想和体会

了解了更多的攻击,对Kali有了更多的了解
有问题的地方多去查找资料

posted @ 2022-04-04 17:35  张婷20211920  阅读(158)  评论(0编辑  收藏  举报