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

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

1.实践内容

TCP/IP网络协议栈安全缺陷:

img

  • 网络接口层:以太网协议,当网络接口处于混杂模式可以直接嗅探并截获数据包,同时缺乏对MAC地址源的身份验证机制,实现MAC地址欺骗。
  • 互联层:IP协议只根据目的地址进行转发,不检查源IP地址是否真实有效,容易遭到IP地址欺骗。同时还包括源路由滥用、IP分片攻击,以及ARP欺骗、ICMP重定向、Smurf攻击等。
  • 传输层:TCP建立会话之后的连接过程中,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程。同时TCP的三次握手过程存在设计缺陷,攻击者可以进行SYN泛洪攻击。
  • 应用层:一些流行的应用层协议HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全设计。

网络层攻击及防范措施

IP源地址欺骗

  • 原理:只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。
  • 攻击过程:
    • 对受信任的主机进行拒绝服务攻击
    • 对目标主机的TCP初始序列号(ISN)进行取样和猜测
    • 伪造源地址为受信任的主机IP的SYN数据包发送给主机
    • 等待目标主机将SYN/ACK包发给已经瘫痪的受信任的主机
    • 再次伪装成被信任的目标主机发送ACK包、建立连接。
  • img
  • 攻击工具:netwox、wireshark、nmap
  • 防范措施:使用随机化的初试序列、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤。

ARP欺骗攻击

  • 原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系。
  • 攻击过程:
    • 源节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。
    • 攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。
    • 由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
    • 当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。
    • 如果ARP欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改。
  • img
  • 攻击工具:DSniff中的Arpspoof、arpison、Ettercap、Netwox。
  • 防范措施:静态绑定关键主机的IP地址和MAC地址映射关系、使用相应的ARP防范工具、使用虚拟子网细分网络拓扑、加密传输。

ICMP路由器重定向攻击

  • 原理:利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
  • 攻击过程:
    • 攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
    • 被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。
    • 攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
    • 在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。
  • img
  • 工具:netwox
  • 防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对ICMP重定向报文判断是不是来自本地路由器的

传输层协议攻击及防范措施

TCP RST攻击

  • 原理:TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
  • 攻击过程:
    • 攻击主机C可以通过嗅探方式监视通信双方A、B之间的TCP连接。
    • 在获得源、目标IP地址及端口、序列号之后,接可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
    • 在确保端口号一致及序列号落入TCP造成通信双方正常网络通信的中断,达到拒绝服务的效果。
  • img
  • 工具:netwox

TCP会话劫持攻击

  • 原理:TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
  • 攻击过程:
    • victim主机与telnet服务器进行连接,并通过身份认证建立起会话。
    • telnet服务器将会向victim发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。
    • 攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得victim和telnet服务器间的通信内容,然后假冒victim的IP地址及身份,向talent服务器发送数据包,声称自己是victim。
    • 攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND
    • victim仍然会继续持续talent服务器之间的连接会话,但是由于与telnet服务器之间的ACK值互相不匹配出现AC风暴。
  • img
  • 防范措施:禁用主机上的源路由、采用静态绑定IP-MAC映射表以及避免ARP欺骗、引用和过滤ICMP重定向报文

TCP SYN Flood拒绝服务攻击

  • 原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
  • 攻击过程:
    • 在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
    • 受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
    • 如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。
  • img
  • 防范措施:SYN-Cookie技术(在连接信息未完全到达前不进行资源的分配);防火墙地址状态监控技术(将到目标服务器的TCP连接状态分为NEW、GOOD、BAD)。

2.实践过程

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

TCP/IP协议栈重点协议的攻击

1、选取kali虚拟机作为攻击机,选取MetaSploitable_ubuntu和SEED_Ubuntu作为正常通信机。

首先将三台虚拟机均改桥接模式,并查看三台虚拟机的IP地址

kali:IP地址为192.168.11.36

MAC地址为:00:0c:29:a4:e2:c4

image-20220402191210969

SEED_Ubuntu:IP地址为192.168.11.18

MAC地址为:00:0c:29:4e:5a:77

image-20220402191532653

MetaSploitable_ubuntu:IP地址为192.168.11.191

MAC地址为:00:0c:29:fb:dd:0a

image-20220402192510422

2、利用SEED_Ubuntu虚拟机pingMetaSploitable_ubuntu虚拟机

image-20220402194033083

利用arp -a查看arp缓存表,通过结果可以看到IP地址和MAC均无误

image-20220402194102127

3、在kali虚拟机上执行netwox 80 -e 00:0c:29:a4:e2:c4 -i 192.168.11.191

(80是指netwox的80号工具,第一个为攻击机Kali放入MAC地址,第二个为MetaSploitable_ubuntu的IP地址,执行后就在局域网内广播这条命令。)

image-20220402194945317

4、在SEED_Ubuntu虚拟机中利用命令arp -a再次查看arp缓存表,可以发现这时192.168.11.191对应的IP地址应该改为了KALI的MAC地址

image-20220402195106998

5、进行验证,需要Kali虚拟机能够监听SEED_Ubuntu和MetaSploitable_ubuntu的通信,为了能够监听,我们需要将MetaSploitable_ubuntu中的arp缓存表中SEED_Ubuntu虚拟机IP地址对应的MAC地址改为Kali虚拟机的MAC地址,因此执行命令netwox 80 -e 00:0c:29:a4:e2:c4 -i 192.168.11.18

image-20220402195853723

在MetaSploitable_ubuntu中查看arp缓存表,可以看到已经成功更改MAC地址

image-20220402195833313

6、在Kali虚拟机中打开wireshark,并在SEED_Ubuntu虚拟机中利用命令ping 192.168.11.191

image-20220402200548005

利用ip.src==192.168.11.191 or ip.dst==192.168.11.191在wireshark中过滤数据包,从图中可以看到,在kali上抓到了SEED_Ubuntu虚拟机pingMetaSploitable_ubuntu虚拟机的ICMP数据包等

image-20220402201039352

ICMP重定向攻击

1、依旧利用上面三台虚拟机,在SEED_Ubuntu虚拟机使用命令ping baidu.com

image-20220402202139646

在wireshark中可以抓到ICMP数据包

image-20220402202425208

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

image-20220402202856993

3、在SEED_Ubuntu中再次ping百度

image-20220402202928733

在Kali中的wireshark可以看到 其访问百度的数据包已经被重定向到192.168.11.191

image-20220402204017092

从里之后两个实验由于是在宿舍中做的,虚拟机进行了重启,其IP地址也被重新的分配,因此,后面实验中的三台虚拟机的IP地址以及MAC地址如下:

虚拟机名称 IP地址 MAC地址
kali虚拟机 192.168.1.104 00:0c:29:a4:e2:c4
MetaSploitable_ubuntu 192.168.1.103 00:0c:29:fb:dd:0a
SEED_Ubuntu 192.168.1.106 00:0c:29:4e:5a:77

SYN Flood攻击

1、 在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.1.103 -p 23

image-20220407162502675

2、通过wireshark可以看到,Kali虚拟机向192.168.1.103发送了大量SYN标志的TCP数据包,同时通过右上角的流量也可以看到,正在

image-20220407162616642

TCP RST攻击

1、使用SEED Ubuntu向MetaSploitable发起登陆telnet 192.168.1.106,输入用户名密码

image-20220407163943943

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

image-20220407164425149

3、在wireshark中可以看到Kali虚拟机向192.168.1.106发送了大量的RST标志的TCP数据包

image-20220407164405015

4、因为大量RST标志的TCP数据包,SEED Ubuntu向MetaSploitable发起的telnet连接被拒绝了

image-20220407164502170

TCP会话劫持攻击

1、本次攻击使用的工具为ettercap,在kali中使用sudo ettercap -G打开图形化界面进行操作

image-20220407164956834

2、打开Ettercap Menu->Hosts->Host List

image-20220407165200541

将SEED Ubuntu和MetaSploitable设置为目标1和目标2

image-20220407165557256

3、打开MITM Menu->ARP poisoning,出现弹窗后点击OK

image-20220407165809684

image-20220407165838282

4、点击Ettercap Menu->View->Connections查看连接

image-20220407165946527

image-20220407170049715

5、使用SEED Ubuntu向MetaSploitable发起登陆telnet 192.168.1.106进行telnet连接

image-20220407170216879

6、可以在Ettercap中看到SEED Ubuntu与MetaSploitable的Telnet连接

image-20220407170354920

点击打开后发现可以看到账号和密码,其中还有输错的一次密码

image-20220407170338968

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

  • 问题1:kali中还没有安装netwox,无法使用netwox命令

image-20220402194615032

  • 问题1解决方案:输入netwox命令后,会自动弹出安装申请,输入y即可安装netwox
  • 问题2:Metasploitable_ubuntu虚拟机的在设置完桥接模式后,其IP地址不会发生改变,与另外两个虚拟机没有在同一个网段下
  • 问题2解决方案:利用sudo vim /etc/rc.local将之前设定的静态IP的命令ifconfig eth0 192.168.200.132 netmask 255.255.255.128 route add default gw 192.168.200.1注释掉,重启虚拟机即可。

4.实践总结

这次实验较为顺利,其中没有遇到什么大的问题。通过这次实验,学会了很多攻击技能,同时在网络攻击中更加深刻的理解了。

通过这几次实验的经历,我越发的感觉从互联网中搜集到自己想要的,对自己有用的资源是一项十分重要的技能

参考资料

posted @ 2022-04-09 20:28  William_tony老师  阅读(182)  评论(0编辑  收藏  举报