Kali Linux 安装slowhttptest步骤

2023-05-16

Kali Linux 安装slowhttptest步骤

Slowhttptest其实是一个DoS压力测试工具,它集成有三种慢速攻击模式(slowloris、slow http post、slow read attack),并且能导出日志报告,节约了部分写文档的时间,是一个特别好用且强大的工具。

注意:

测试网站不要随便用公网网站测试;建议自己搭建靶场测试;

或者测试此靶场:http://caichuanqi.cn

安装步骤

https://blog.csdn.net/wwwwww1102/article/details/102784035
apt-get install slowhttptest 
 slowhttptest -h 

使用步骤

https://blog.csdn.net/root143/article/details/79581349
ulimit -n 8000 && slowhttptest -c 8000 -X -r 100 -g -o / -w 512 -y 1024 -n 5 -z 32 -k 3 -u http://caichuanqi.cn -p 3

一、Slowhttptest安装

Mac安装命令:
brew update && brew install slowhttptest

安装好Slowhttptest之后可以直接执行命令Slowhttptest检测是否成功安装
大家也可以利用GitHub安装,有兴趣的可以自己研究,命令如下:
git clone https://github.com/shekyan/slowhttptest

二、Slowloris模式

Slowloris攻击原理:
1.Slowloris也称为slow headers,是通过耗尽server的并发连接池来达到攻击目的的一种DoS攻击方式,这和前面讲的Syn-Flood有点相似,不过Slowloris是应用层的攻击
2.正常情况下当client和server通信时,client发送的header请求头信息的结尾应该是"0d0a0d0a"。但是如果启用Slowloris这种模式则只会发送"0d0a",而HTTP协议默认在服务器接收到全部信息之后才会开始处理,如果始终没有接收到完整的request信息那么服务器会为其保留连接池并持续等待后续信息直到连接超时
3.通常配置不太好的的服务器的并发连接池数并不多,当攻击者连续不间断的建立连接并占满server的连接池资源之后,server就不能为正常用户提供服务,达到DoS攻击效果
如果对上述原理不太理解,笔者给大家描述一个生活中常见的场景:当大家在麦当劳点餐的时候,最前面点餐的那个人点了一个汉堡,然后他还准备点其他东西,但是又一直不说要啥,就一直霸站着收银台导致后面的客人无法点餐,如果德克士的每个收银台都被这样的客人霸占着,那么最后就会导致麦当劳无法做生意了,也就造成了DoS
Slowloris攻击实战环境准备:
Mac端的Slowhttptest
靶机metasploitable 2.0 IP=192.168.1.103

实战演示:
ulimit -n 1024 && slowhttptest -c 1000 -H -g -o /Users/apple1/Desktop/my_header_stats -i 10 -r 100 -t GET -u https://host.example.com/index.html -x 24 -p 3

参数解释:
[ ulimit -n 1024 ] 指定同一时间能并发打开的文件数为 1024;

[ -c 1000 ] 指定测试过程中与目标建立的连接数为1000;

[ -H ] 指定开始SlowLoris攻击模式并发送未完成的HTTP请求;

[ -g -o my_header_stats ] 让Slowhttptest生成CSV和HTML的报告文件,并指定路径/文件名 ;

[ -i 10 ] Specifies the interval between follow up data ;

[ -r 100 ] 指定连接速率为100/s ; [ -t GET ] 通过GET方式连接 ;

[ -u https://host.example.com/index.html ]指定URL;

[ -x 24 ] 启用慢速读取测试;

[ -p 3 ] 官方:在判断server被DoS之前,发送连接请求之后,等待HTTP response的时间间隔为3S || 笔者:client发送request请求3S内没接收到server的response就标志服务器被DoS

三、Slow Http Post模式

Slow Http Post攻击原理
1.Slow Http Post也称作Slow body,其本质也是通过耗尽服务器的连接池来达到攻击目的,而且攻击过程和上面提到的Slowloris差不多
2.在Post攻击中http header头是完整发送的,但是这里会利用header头里面的content-length字段,正常情况下content-length的长度就是所要发送的数据长度,但是攻击者可以定制client发送的content-length,于是如果攻击者发送一个content-length特别大的值,那么server就会等待后续没有传完的body内容
3.此时攻击者会延迟发送后续的body甚至是不发送,但是server端依旧会在等待并为其保留连接池并持续等待后续信息直到连接超时
4.问题来了,如果攻击者与服务器建立大量连接,而且都告诉server后续还要传输数据,那么server的连接池到达一定程度时就会被占满达到DoS攻击
如果对上述原理不太理解,笔者给大家描述一个生活中常见的场景:当大家在麦当劳点餐的时候,最前面点餐的那个人点了一个汉堡,于是开始付钱,先付了一毛,给收银员说等我找找钱放哪了再付剩下的钱,但是又一直找不到不给,就一直霸站着收银台导致后面的客人无法点餐,如果德克士的每个收银台都被这样的客人霸占着,那么最后就会导致麦当劳无法做生意了,也就造成了DoSSlow Http Post攻击实战

ulimit -n 4096 && slowhttptest -c 3000 -B -g -o /Users/apple1/Desktop/my_body_stats -i 110 -r 100 -s 8192 -t GET -u http://host.example.com/loginform.html -x 10 -p 3参数解释:
[ -B ] 启用Slow Http Post模式发送未完成的HTTP消息体;

[ -s ] 指定content-length长度为8192;

四、Slow Read attack模式

Slow Read attack攻击原理
1.正如名字所描述的那样,就是慢速读取server传输过来的数据,如果大家看过我的sockstress那篇文章可知client可以通过控制TCP的window size来控制传输速率
2.如果攻击者将window size置为一个特别小的值,但是却又请求一个特别大的资源,那么服务器就会与这个连接进行长时间通信,如果建立的连接数足够大就会塞满server的连接池
3.当server端缓冲区未发送的资源堆积过多时还会导致缓冲区溢出,也无法响应其他请求
4.正如漏斗一样,漏斗口很小,但是我们却一个劲的往里面装沙子,这样迟早把漏斗涨满
Slow Read attack攻击实战
ulimit -n 8000 && slowhttptest -c 8000 -X -r 100 -g -o /Users/apple1/Desktop/my_header_stats -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://host.example.com/resources/index.html -p 3**参数解释**
[ -X ] 指定使用Slow Read attack模式,缓慢读取HTTP响应请求;

[ -w 512 -y 1024 ] 指定window size大小为512~1024 byte;

[ -n 5 ] 指定读取数据的间隔为5S;

[ -z 32 ] 指定每次从接收数据的缓冲区中读取数据的长度为5 byte;

[ -k 3 ] 在同一连接中重复请求的次数为3次

这次服务器不仅被DoS了,而且因为缓冲区溢出导致CPU被大量占用,导致无法执行其它系统命令

五、防御策略

1.将标题和消息体限制在最小的合理长度上。针对接受数据的每个资源,设置更严格的特定于URL的限制。
2.设置合理的连接超时时间
3.定义最小传入数据速率,并删除比该速率慢的连接
4.如果Web服务器从相同的IP接收到数千个连接,同一个用户代理在短时间内请求相同的资源,直接禁掉IP并且记录日志
具体的防御策略大家可以参考这篇文章:
http://blog.shekyan.com/2011/11/how-to-protect-against-slow-http-attacks.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kali Linux 安装slowhttptest步骤 的相关文章

  • 如何将 elf 解释器(ld-linux.so.2/ld-2.17.so)构建为静态库?

    如果我的问题不准确 我深表歉意 因为我没有太多 Linux 相关经验 我目前正在构建一个 Linux 从头开始 主要遵循 linuxfromscratch org 版本的指南 7 3 我遇到了以下问题 当我构建可执行文件时 获取一个称为 E
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 命名互斥体的 Mono 替代方案

    在 Windows NET 上 命名的互斥体可用于同步多个进程 不幸的是 Mono 在 Linux 上不太支持这一点 他们的发行说明 http www mono project com Release Notes Mono 2 8 Shar
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • Linux 中有没有一种轻量级的方法来获取当前进程数?

    我希望我的 基于 C C 的 程序显示一个数字指示器 指示本地系统上当前有多少个进程 将经常查询正在运行的进程数值 例如每秒一次 以更新我的显示 有没有一种轻量级的方法来获取该数字 显然我可以调用 ps ax wc l 但我不想强迫计算机生
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 进程如何知道它已收到信号

    如果我错了 请纠正我 以下是我对信号的理解 据我所知 信号生成 和信号传递有2个不同 事物 为了产生信号 操作系统只是在位数组中设置一个位 在过程控制中维护 工艺块 PCB 每一位 对应于特定信号 当设置一个位时 这意味着 该位对应的信号为
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 为什么我的代码在编译用于分析 (-pg) 时在多线程下运行比在单线程下运行慢?

    我正在写一个光线追踪器 最近 我在程序中添加了线程 以利用 i5 四核上的附加内核 奇怪的是 应用程序的调试版本现在运行速度变慢 但优化后的构建运行速度比添加线程之前更快 我将 g pg 标志传递给 gcc 以进行调试构建 并将 O3 标志

随机推荐

  • 用java实现判断回文

    判断回文 要求代码实现 要求 编码实现 xff1a 输入一个字符串 xff0c 判断该字符串是否是回文 xff08 回文是指将该字符串含有的字符逆序排列后得到的字符串和原字符串相同的字符串 xff09 如果是回文 xff0c 则输出 Yes
  • codeblocks的多行快速注释的快捷键

    codeblocks的多行快速注释的快捷键 多行注释的快捷键 xff1a ctrl 43 shift 43 c 取消多行注释的快捷键 xff1a ctrl 43 shift 43 x
  • ubuntu错误添加了环境变量

    1 问题 今天试着安装一些东西 xff0c 错误的多添加了一些环境变量 xff0c 在虚拟环境里没有发现异样 xff0c 但从虚拟环境出来后发现在终端输入许多命令都显示未找到命令 xff0c 比如 终端输入 python 显示 bash p
  • win10摄像头灰色斜杠问题(Lenovo)

    方法一 百度 xff1a 在笔记本win10系统中 xff0c 通常都自带有摄像头功能 xff0c 但是有用户想要打开摄像头进行拍照或者视频的时候 xff0c 却遇到了不能用的情况 xff0c 一直显示一个灰色相机加一个斜杠 xff0c 没
  • SQL注入__布尔盲注和时间盲注

    SQL注入 布尔盲注和时间盲注 布尔盲注 猜测数据库 id 61 1 39 and length database 61 8 id 61 1 39 and length database gt 8 当前数据库第一位 截取数据库第一位 通过A
  • 命令执行绕过技巧

    命令执行绕过技巧 参考 xff1a https blog csdn net weixin 39190897 article details 116247765 参考 xff1a https blog csdn net solitudi ar
  • kali-信息收集简介

    kali 信息收集简介 nbtscan 这是一款用于扫描Windows网络上NetBIOS名字信息的程序 该程序对给出范围内的每一个地址发送NetBIOS状态查询 xff0c 并且以易读的表格列出接收到的信息 xff0c 对于每个响应的主机
  • 如何将图片转化为base64编码格式显示

    如何将图片转化为base64编码格式显示 base64编码 是将数据用 64 个可打印的字符进行编码的方式 xff0c 任何数据底层实现都是二进制 xff0c 所以都可以进行 base64编码 xff0c base64编码 主要用在数据传输
  • 利用frp工具实现内网穿透

    利用frp工具实现内网穿透 注意 xff1a 此工具依赖一个有公网 IP 的 PC 或服务器 内网穿透工具就是为了解决上述的没有公网 IP 的问题的 frp简介 项目地址 xff1a https github com fatedier fr
  • MISC相关工具下载

    写在前面 xff1a 本文包含在windows和在kali下使用的工具 xff0c win下已做标 MISC相关工具下载 图片相关 jpg f5 steganography F5隐写 xff0c 需要passwd 安装 kali中安装 xf
  • 程序设计思维与实践 Week8 作业 B 猫猫向前冲

    题目描述 xff1a 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xff0c 3 xf
  • CobaltStrike的使用

    CobaltStrike的使用 01CobaltStrike CobaltStrike是一款渗透测试神器 xff0c 被业界人称为CS神器 CobaltStrike分为客户端与服务端 xff0c 服务端是一个 xff0c 客户端可以有多个
  • Wireshark软件使用教程

    Wireshark软件使用教程 Wireshark是非常流行的网络封包分析软件 xff0c 可以截取各种网络数据包 xff0c 并显示数据包详细信息 常用于开发测试过程各种问题定位 本文主要内容包括 xff1a 1 Wireshark软件下
  • Sublime text 3 如何下载安装汉化插件,配置python2编译环境

    Sublime text 3 如何下载安装汉化插件 xff0c 配置python2编译环境 下载地址 下载地址 xff1a http www sublimetext com download 软件汉化 首先 xff0c 需要安装Packag
  • 利用WireShark将pcap数据流还原文件

    利用WireShark将pcap数据流还原文件 使用工具 xff1a WireShark WinHex 1 打开pcap文件 2 对数据流进行筛选 利用ctrl 43 f打开或Edit 编辑查找分组 选择分组字节流 字符串 xff0c 筛选
  • 利用python脚本删除txt文件每行后4个字符,并换行

    利用python脚本删除txt文件每行后4个字符 xff0c 并换行 import os filename 61 r 34 123 txt 34 new filename 61 r 34 1234 txt 34 with open file
  • 摩斯密码解密py脚本

    摩斯密码解密py脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010
  • MinGW+Sublime Text下载和安装运行C和C++程序

    MinGW 43 Sublime Text下载和安装运行 MinGW下载和安装教程 http c biancheng net view 8077 html Sublime Text运行C和C 43 43 程序 http c bianchen
  • grep 命令介绍

    grep 命令介绍 grep 查找文件里符合条件的字符串 xff0c 常与管道符 cat ps一起使用 xff1b 主要用于查找文件中符合条件的字符串 统计文件中符合条件的字符串行数 grep 不显示自身进程 grep 常用命令参数 c x
  • Kali Linux 安装slowhttptest步骤

    Kali Linux 安装slowhttptest步骤 Slowhttptest其实是一个DoS压力测试工具 xff0c 它集成有三种慢速攻击模式 slowloris slow http post slow read attack xff0