• IP安全,DDoS攻击、tearDrop攻击和微小IP碎片攻击


    arp安全

    以太网帧的type =0806 表示arp
    arp攻击:hack伪造arp应答包给target(当target使用arp广播寻找目的mac时,回答mac=hack)

    IP报文格式

    20字节头部+最多40字节选项,IP数据报最长65535字节
    MTU 1500字节,帧头6+6+2=14字节
    常用ip头内容:
    前4位,协议(ipv4 ipv6),然后是4位的头部长度,单位是4字节
    标识字段用来唯一表示一个IP数据报,IP分片,根据标识和偏移重组,偏移量fragment offset的单位是8字节
    checksum只校验头部
    TTL,最大生存时间,即IP数据报被丢弃前,最多能经过几个节点,每过一节点,TTL减1,减到0时丢弃

    DoS攻击

    构造两个分片,第一个分片的偏移为0;第二个分片的偏移是64800。为了重组,目标主机会分配64k的缓存,可通过不断发包消耗目标内存。

    tear drop攻击

    利用系统处理IP分片重叠的漏洞
    前提:当产生IP分片重叠时,系统采取这种策略——由第一分片覆盖重叠区域,并将第二分片的剩余部分重组到第一分片后。

    先计算到底重叠长度,len=pre->end - p->offset;//pre代表前分片,p代表后分片
    然后将指向第二个分片的指针朝后移动这个长度,p->offset += len;
    接下来需要将第二个分片的剩余内容拷贝一下,以形成完整的数据报文。
    首先需要计算第二个分片还剩余多少字节。unsigned short fp->len = p->end - p->offset;
    接下来就可以从ptr开始,拷贝fp->len字节的内容,就完成了处理。
    对于正常的重叠
    在这里插入图片描述
    对于不正常的重叠,fp->len 会产生溢出,len变成一个很大的数(2^16 + 负数),拷贝后,很容易把内存中系统内核部分覆盖,导致崩溃。
    不正常的重叠

    微小碎片攻击

    包过滤防火墙,通过过滤SYN包,防止外部链接。假设防火墙filter的规则是:如果IP数据报的第一分片含有SYN,则拒绝这一分片,放行其他分片。
    IP数据报最小分片长度为68字节,利用i选项字段填满ip头=60字节,,则第一分片数据部分可以只有8字节
    第一分片只包含tcp头的前8字节,而syn被放在了第二分片,从而避开了filter。此时第二分片的offset为1。
    微小碎片
    如何防御:
    如果第二分片offset ==1 且是tcp协议,则丢弃第二分片

    IP欺骗,留后门

    • 假设hack要攻击某主机x,x有一个terminal与某sever建立了连接。 假设tcp的seq是有规律的。
    • hack 向server发syn洪泛,保证server在收到syn+ack后,不会发送RST
    • hack 伪造ip(与server不同)向x-terminal发包,寻找seq的规律
    • 冒充server_ip,根据seq规律,与x-terminal件里tcp连接
    • 发包命令x-t将外界设置为信任,echo ++ > ./rhost

    参考:
    https://zhuanlan.zhihu.com/p/58610182
    《TCP/IP详解》

  • 相关阅读:
    前端入门flutter-05Image组件
    前端入门flutter-03Flutter目录结构介绍、入口、自定义Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
    前端入门flutter-02Dart语言学习
    前端入门flutter-01配置环境
    恋上数据结构使用什么编程语言讲解
    centOS7+:docker版本过低升级到高版本
    JAVA中List数组判断是否有重复元数
    连接数据库时username冲突
    Quartz的学习
    MySQL 服务无法启动解决途径
  • 原文地址:https://www.cnblogs.com/chzhyang/p/11360046.html
Copyright © 2020-2023  润新知