zoukankan      html  css  js  c++  java
  • 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详解》

  • 相关阅读:
    软件工程的实践项目的自我目标
    transform使用导致元素内字体出现模糊的坑~~~
    nvmw安装,用于控制node版本;
    开章大吉~
    eclipse运行Android项目出现“The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ”
    Date对象相关函数使用
    Balsamiq Mockups 注册码
    如何关闭sublime更新提示
    如何在边框中加入文字
    如何用手机测试移动端页面
  • 原文地址:https://www.cnblogs.com/chzhyang/p/11360046.html
Copyright © 2011-2022 走看看