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步骤 的相关文章

  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • 找出Linux上一个进程使用了​​多少内存页

    我需要找出进程分配了多少内存页 每个页面是 4096 进程内存使用情况我在查找正确值时遇到一些问题 当我查看 gome system monitor 时 内存映射下有几个值可供选择 Thanks 这样做的目的是将内存使用量除以页数并验证页大
  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • Pthreads - 高内存使用率

    我正在用 C 编写一些东西 在 256Mb 系统上的 Linux 中创建大量 Pthread 我通常有 200Mb 的免费空间 当我使用少量线程运行该程序时 它可以工作 但是一旦我让它创建大约 100 个线程 它就会出现错误 因为系统内存不
  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

  • 用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