20211901 2021-2022-2 《网络攻防实践》第四次作业

1.实验内容

1.1TCP/IP协议栈攻击概述

网络安全属性与攻击模式

网络安全属性:机密性、完整性、可用性、真实性和不可抵赖性
网络攻击基本模式:截获、中断、篡改和伪造。截获是一种被动的攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反。中断攻击是使目标的正常网络通信和回话无法继续,是对可用性的破坏。伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的。篡改则是对网络通信过程的内容进行修改

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

1.2网络层协议攻击

IP源地址欺骗

首先对受信任主机进行攻击,使其丧失工作能力。
采样猜测目标服务器的初始序列号ISN,再返回SYN/ACK报文的时候设置为ISN+1。
伪造源地址为受信任的主机IP的SYN数据包
伪装成被信任主机发送ACK包,设置发送数据包的ACK值为预测目标主机ISN+1。
建立连接,假冒被信任主机与主机进行通信。

ARP欺骗

ARP协议用于将网络主机的IP地址解析成其MAC地址,然后在局域网内通过MAC地址进行通信。例如要与同一局域网内的某台主机进行连接,可以在浏览器或运行窗口中输入其IP地址,由于同一局域网并不经过网关和路由器进行路由转发,局域网中的主机设备并不能识别IP地址,而只识别MAC地址,所以就需要ARP协议来进行转换。ARP协议的基本功能就是对目标IP地址查询它的MAC地址,以便把数据包发送到目标主机。

ICMP路由重定向攻击

攻击者使用IP源地址欺骗技术,冒充IP网关,向攻击节点发送ICMP重定向报文。被攻击节点进行审核后接受ICMP请求,从而攻击者将成为被攻击者和路由网关之间的桥梁。转发过程中根据重定向原理会发送真实的重定向报文。

1.3传输层协议攻击

TCP RST攻击

TCP协议头中有一个reset位置,用来表示会话中断。通过设置合理的seq和ack字段就可以达到关闭连接的效果。

TCP会话劫持攻击

在靶机建立TCP会话之后再进行劫持,避免需要进行身份验证。简单来说就是攻击时间点后移的盲攻击。靶机与服务器进行连接,服务器向靶机返回相应包,其中的序列号被攻击机嗅探得到,进而仿冒靶机向服务器发送数据包。此时攻击机仿冒服务器向靶机发送RST包,避免靶机对通信的干扰。

TCP SYN Flood拒绝服务攻击

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

2.实验过程

实验前的准备工作

更改kali主机名,为了证明实验是我自己做的,在开始实验之前我要改一下kali的名字

将实验用的主机都设置在一个网段内,我都设置在了net8中,攻击机和靶机相关信息如下:

netwox使用
netwox可以创建任意的TCP\UDP和IP数据报文,以实现网络欺骗。在kali中下载netwox,输入指令apt-get install netwox即可下载。

2.1ARP欺骗攻击

①在攻击机ubuntu中ping靶机win2k,得到arp缓存表。然后输入指令arp -a查看ARP Cache,此时win2k的ip地址和mac地址的映射关系就被存到Cache中了。

②接下来输入如下指令netwox 80 -e 00:0c:29:42:14:22 -i 192.168.200.7 ,这里的mac地址是指kali的mac地址,ip地址是靶机win2k的ip地址,这个指令的目的就是让欺骗攻击机ubuntu,让ubuntu以为这才是win2k的ip地址和mac地址的对应关系

③我们在ubuntu中输入指令arp -a来查看Cache,果然,它被成功的忽悠了。

④此时我们还发现如下win2k出现了如下问题:

⑤接下来我们输入指令消除arp缓存

⑥上面消除了arp缓存后,刚才win2k出现的弹窗问题解决了,然后再用ubuntu去ping一下win2k,再来查看Cache缓存表,发现win2k的ip地址和mac地址的映射变正常了。

2.2ICMP重定向攻击

①在ubuntu上ping百度,然后输入指令route -n来获取这个主机所对应的网关地址,可得ubuntu的网关为192.168.200.1

②Kali上利用Netwox的第86号工具,进行ICMP重定向攻击,输入指令: sudo netwox 86 -f "host 192.168.200.3" -g 192.168.200.3 -i 192.168.200.1,它的原理是嗅探ubuntu中的TCP数据包,每嗅探到一个符合要求的数据包,就用网关192.168.200.1的名义向主机ubuntu发送ICMP重定向报文,让ubuntu重定向至预先设定的IP地址,从而以192.168.200.3作为网关。

③接下来再用ubuntu去ping百度,此时我们发现它有了新的下一跳,对应的ip地址为192.168.200.3

④停止攻击后,再次用ubuntu去ping百度,恢复正常。

2.3SYN Flood攻击

①使用Ubuntu对win2k发起登陆telnet服务

②用kali的netwox76号工具对靶机的23号端口进行SYN Flood攻击输入指令netwox 76 -i 192.168.200.7 -p 23

③打开kali中的wireshark,发现攻击机向win2k发送了大量来源不明的数据包。

④接下来我们再在Ubuntu中打开telnet服务,发现无法打开。

⑤停止攻击,发现又可以正常打开了

2.4TCP RST攻击

①和刚才的实验一样,首先还是在Ubuntu上启动telnet服务,启动后界面如下:

②在Kali攻击机中,用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.7

③打开kali中的wireshark,发现Kali向靶机发送了RST数据包

④我们回到ubuntu,发现TCP连接被关闭了,表明攻击成功

2.5TCP会话劫持攻击

①在Ubuntu上启动telnet服务

②在Kali上打开Wireshark,查找tcp.port == 23的数据包,在Ubuntu中输入ls,Wireshark能查看l和s的telnet数据

③查看最后一个数据包源端口、目的端口、Next Seq Num和ACK值。

④获取到相关信息后,将next seq作为下一个包的ack,用ack作为下一个包的seq。此时kali假冒Ubuntu的ip地址,向win2k的telnet服务器发送数据包,宣称自己就是Ubuntu,在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.7 --tcp-src 34040 --tcp-dst 23 --tcp-seqnum 14 --tcp-acknum 3 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
40是netwox的40号工具,在ip4-src后输入B的地址,在ip4-dst后输入靶机A的地址,tcp-src输入源端口地址,tcp-seqnum和tcp-acknum输入伪造的值,tcp-data是要发的数据的16进制值,这里的是helloworld的16进制。

这一串就是kali伪造的报文。

⑤观察wireshark存在TCP Dup, TCP Dup ACK9#1表示是哪个序号的报文丢失,是第几次丢失,而且可以看到攻击机以Ubuntu的名义向win2k发送的数据“helloword”

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

  • 问题1:改主机名不成功

  • 问题1解决方案:换了一种改法,多试几次,并且改动之前把虚拟机镜像一下

  • 问题2:win2k本来是仅主机模式,改为net8后,无法联网,无法ping通

  • 问题2解决方案:这个需要在我的电脑->网络和拨号连接->本地连接->属性->Internet协议(TCP/IP),手动修改IP地址

  • 问题3:在用ubuntu和win2k建立Telnet服务时,显示拒绝连接,Unable to connect to remote host: Connection refused,按理说这应该是攻击成功后才会这样,可我还没开始攻击呀

  • 问题3解决方案:出现这个问题是因为win2000的Telnet服务使用NTLM的验证方式,这种验证方式避免了明文密码的传送,解决方案有两种:
    方案一:直接换靶机,换成meta,因为meta也是linux机,就不存在这个问题,但是我前两个实验都是用的wein2k,所以我不想换了,用第二种办法。
    方案二:点击win2k的开始菜单-->程序-->管理工具-->Telnet服务器管理-->选择3 显示/更改注册表设置-->选择7 NTLM-->进行修改-->把2改成1,修改后重新启动Telnet服务。

4.学习感悟、思考等

这次实验不难,难点在于理解,实验的过程中极大地提高了我的动手能力,我对网络攻防这门课也越来越喜爱了,觉得很有趣。

参考资料

posted @ 2022-04-09 19:57  只喝凉白开无糖拿铁  阅读(101)  评论(0编辑  收藏  举报