• 20199326 2019-2020-2 《网络攻防实践》第5周作业


    实践内容

    5.1TCP/IP网络协议栈攻击概述
    • 网络安全属性:安全金三角模型(机密性,完整性,可用性),真实性,不可抵赖性

    • 网络攻击基本模式:截获,中断,篡改,伪造,其中截获是被动攻击,包括嗅探(Sniffing)与监听。其他三个是主动攻击。如下图

    • TCP/IP网络协议栈起源于20世纪60年代末美国军方资助的一个分组交换网络研究项目,在设计之初的目标是使用一个共用互联网络协议,将不同类型的孤立网络与计算机连接在一起,当时使用环境中的用户都是可信任的,并没有考虑到其中存在的安全问题

    • TCP/IP网络协议栈的安全缺陷与攻击技术,如下图所示

    • 除了网络嗅探与协议分析技术之外,最流行的是欺骗技术(Spoofing)。实现欺骗技术需要攻击者伪造出特指的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。

    • 在类Unix平台和Windows平台上,攻击者都可以通过使用原始套接字(Raw Socket),绕过TCP/IP协议栈的报文封装处理和验证,构造出任意的数据报文,如进行各种欺骗攻击的伪造报文。

    5.2网络层协议攻击
    • IP源地址欺骗可以实现的根本原因在于:IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。如下图。

    • 利用IP源地址欺骗进行IP假冒的攻击过程示意图

    • ISN是目标主机的TCP初始序列号

    • IP源地址欺骗的防范措施

      1. 使用随机化的初始序列号
      2. 使用网络层安全传输协议如IPSec,对传输数据包进行加密
      3. 避免采用基于IP地址的信任策略
      4. 在路由器和网关上实施包过滤
    • ARP协议用于将网络主机的IP地址解析成其MAC地址,然后在局域网内通过MAC地址进行通信

    • ARP欺骗是指攻击者在有限以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。

    • ARP欺骗攻击的根源在于ARP协议在设计时认为局域网内部的所有用户都是可信的,是遵循协议设计规范的,但事实上并非如此,局域网内可以存在内部攻击者,或者已渗透进入局域网的外部攻击者或恶意代码。

    • ARP欺骗过程如下图所示

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

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

    5.3传输层协议攻击
    • TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。TCP协议头的标志位中拥有一个reset比特位,绝大部分数据包中该标志位都置为0,而一旦该标志位为1,则接收该数据包的主机将立即断开这个TCP会话连接,不再利用该连接进行数据包发送和接收。

    • TCP会话劫持,目标是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信,通常一些网络服务会建立TCP会话之后进行应用层的身份认证,客户端在通过身份认证后,就可以通过TCP会话连接对服务端进行控制或获取资源,期间不再需要再次进行身份认证。

    • TCP SYN FLOOD 又称SYN洪泛攻击,是目前最为有效和流行的一种拒绝服务攻击形式,它利用TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。

    • 攻击示意图如下

    • 防范措施有SYN-Cookie,防火墙地址状态监控技术,SYN-Cookie如下图

    • 基于防火墙地址状态监控技术防御SYN Flood攻击的示意图如下

    • UDP Flood拒绝服务攻击,由于UDP协议的无状态不可靠的天然特性,UDP Flood拒绝服务攻击的原理非常简单,即通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。

    5.4TCP/IP网络协议栈攻击防范措施
    • 监测,预防与安全加固
      在短期内,基础TCP/IP网络协议不可能进行重新设计和部署实施,无法从根本上改变目前网络面临严重安全威胁的状况,通过部署一些监测,预防和安全加固的防范措施,是增强网络对已知攻击抵御能力不可或缺的环节。

    • 网络安全协议
      如图所示

    • 下一代互联网协议IPV6

    软件介绍
    • Netwox是一个非常强大且易用的开源工具包,可以创建任意的TCP/UDP/IP数据报文。支持命令行方式构造及发送伪造包,可以通过脚本编程实现自动化处理
    • Netwag是一个有GUI界面的实施网络欺骗攻击的软件

    实践过程

    下边的表格是这次实验用到的虚拟机,kali作为攻击机,metas linux作为靶机,seed作为被劫持的用户,metas linux的账号和密码都是msfadmin,这次实验要求三台机子处于同一个局域网内。我把他们都设置成VMNET8 NAT了。

    机子 IP地址 MAC地址
    kali 192.168.200.3 00:0c:29:15:20:10
    seed 192.168.200.5 00:0c:29:8c:3e:c5
    Metas linux 192.168.200.125 00:0c:29:25:79:33

    ARP缓存欺骗攻击

    原理说明:这个攻击的目的就是攻击机向局域网内发送广播,将靶机的ip地址与攻击机的mac地址形成映射关系,使得seed在访问metas的时候,会变成访问kali。下面是操作步骤。

    1.用seed ping metas,先建立arp缓存表,然后arp -a查看一下缓存表,如下图所示。

    2.在kali上执行下边代码

    netwox 80 -e 00:0c:29:15:20:10 -i 192.168.200.125   //80代表netwox的第80个工具,-e代表要改的mac地址,-i代表要修改的ip地址
    

    执行后kali就会在局域网内广播这条命令,让局域网内主机修改自己的arp缓存表。
    可以看到seed的arp修改了

    3.验证一下,seed ping一下192。168.200.125,在kali上用wireshark抓取一下数据包,可以看到数据包发到了kali上。
    .5 ping .125

    .125的mac地址变了

    ICMP重定向攻击

    攻击原理:这个攻击是通过修改被劫持主机的路由表来实现劫持主机向外发送数据包时,会经过攻击机节点。下面说一下操作步骤。

    1.查看seed的路由表信息

    netstat -rn
    

    2.在kali上输入如下命令

    netwox 86 -f "host 192.168.200.5" -g 192.168.200.2 -i 192.168.200.3
    

    这段代码的意思是如果监听到源地址或目的地址为192.168.200.5的报文,就以192.168.200.3的名义向该ip发送重定向报文,让其将报文发到192.168.200.2上

    3.在seed上ping baidu,发现其访问靶机的数据包被重定向到kali上了。

    SYN FLOOD攻击

    攻击原理:通过伪造大量的源ip地址向靶机发送TCP SYN包,使得靶机无法响应别的机器的访问。

    1.用seed上的telnet访问靶机,输入如下命令,并输入用户名和密码,均为msfadmin

    telnet 192.168.200.125
    

    2.在kali上利用netwox的76号工具对靶机的23号端口进行SYN FLOOD攻击

    netwox 76 -i 192.168.200.125 -p 23
    

    3.在kali上打开wireshark可以看到有大量伪造ip向靶机发送SYN连接请求

    4.在seed上尝试使用telnet访问靶机,发现访问不了,说明靶机的该端口瘫痪了

    TCP RST攻击

    攻击原理:这是一种假冒干扰TCP通信连接的技术方法,通过设置标志位rst为1,使得连接中断。导致被劫持主机无法和靶机继续通信。

    1.在kali上用netwox的78号工具对靶机进行TCP RST攻击

    netwox 78 -i 192.168.200.125
    

    2.使用seed访问靶机,发现无法访问

    TCP会话劫持攻击

    攻击原理:攻击机监听劫持机的会话,然后顺着TCP的SEQ和ACK值向靶机发送伪造数据包。以此达到会话劫持的目的。

    1.使用seed登录靶机。telnet 靶机ip。打开kali的wireshark,监听。

    2.在Linux靶机上随便输入个命令,我输入了ls,然后用kali的wireshark查看监听的数据包,发现了如下两个包的数据,一个是l,一个是s

    3.查看Data是s的数据包的tcp报文,可以看到net seq和ack,源端口,目的端口。

    4.在kali中输入下面指令

    netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.5 --ip4-dst 192.168.200.125 --tcp-src 53986 --tcp-dst 23 --tcp-seqnum 150 --tcp-acknum 703 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"  //68656C6C6F776F726C64代表helloword的ascii码
    

    这么长的一串其实就是伪造的报文。

    5.在wireshark中发现了tcp dup和tcp retranismission,说明劫持成功了。

    学习感想和体会

    这次实验感觉内容有点丰富。做下来虽然感觉累,但是也很有收获。对一些攻击手段有了一定的掌握。知识量有点大,一时半会还吸收不过来。慢慢来吧。

    学习中遇到的问题及解决

    问题1:三个虚拟机没法ping通

    我把三个虚拟机设置在了VMnet8的NAT下,就可以ping通了

    参考文献

    星帆的博客
    解建国的博客

  • 相关阅读:
    vue-cil和webpack中本地静态图片的路径问题解决方案
    vue-cil 中的配置分析
    webpack中mainifest.js vendor.js app.js 三者的区别
    css 中可以继承的属性
    有关正则表达式的Js方法(replace)
    css 常用的几种垂直居中(包括图片)
    如何在Vue中建立全局引用或者全局命令
    删除数组中多个不连续的数组元素的正确姿势
    数据库
    代码片段
  • 原文地址:https://www.cnblogs.com/funmary/p/12605173.html
Copyright © 2020-2023  润新知