方法论

在简单了解了Linux的发展史并掌握了Linux的系统&操作逻辑后,KALI手册的第一课,就是如何进行有效的压力测试。在七层模型(OSI)中,压力测试通常会测试传输层和网络层,以保证系统的三要素(机密性、完整性、可用性)。

压力测试有着不同的测试原理,同时也有着不同的方法和工具。总的来说,大概可以分成三种,即1、LOT(专用设备、物联网设备)压力测试

2、基于IP传输协议的WAN压力测试

3、基于SIP\TCP\的互联网压力测试

在我阅读KALI手册时,我发现一个很重要的问题:作者使用一块蛋糕的各个层次来讲解OSI七层模型,特别的晦涩难懂,于是我还是参考了许多CSDN上大佬的讲解,如有理解不当之处,还请原谅。

以下一段文字引用自KALI使用手册

你需要保证正在使用系统的安全,无论是你还是系统都应该有被测试的权限。无论看起来多么简单的测试,总是有可能造成损害。

接下来是KALI的一个小彩蛋:

工具篇

fragroute

一个很老的程序,采用最简单的规则:生成一些虚假的数据,然后拆分成许多数据包(可能是首尾不相连的,首尾重复的,或者其他任何一种上下连接方式),随后发往用户指定的IP地址,观察系统能否正确的处理这些碎片包的偏移量。

在使用此工具时,最理想的情况是目标主机没有受到任何有用的数据,这不是最终的目的,压力测试的最终目的只是收集信息。

fragroute配置:

ip_chaff dub 7 //字段生存时间7

ip_frag 64 new //IP数据包字节分段为64位

drop random 33 //丢包概率33%

dup random 40 //随机复制数据包概率40%

order random // 执行

print // 打印细节

此配置理想情况下,数据到达被测试端点时,不会存在任何内容。相关细节会显示出来,从而说明对收到的数据包执行的操作。使用fragroute -f frag.rules 192.168.XX.XX命令执行发送指令,规则文件的名称是可以改变的。

通常,此方法只用来测试单个系统,要测试本地网络中的片段,可以向目标网络发送ping命令来发送请求,使用规则文件的fragroute输出。

fragroute -f frag.rules 192.168.XX.XX

hping3

此工具可以再命令行上进行制作数据包,并进行IP和传输表头字段的自动填充。hping3可以不需要任何等待时间就可以实现洪水攻击,该工具可以自动德、快速的发送尽可能多的流量。

hping3 --flood -S -p 80 192.168.XX.XX //使用hping3,使用SYN消息,通过80端口向目标主机进行洪水攻击

我在台式机上运行hping3,对我的笔记本电脑进行了一次测试。在攻击开始后,我的笔记本电脑网络完全没有响应,但是系统资源的占用并不高。同时,网络的占用量也并没有达到我的预期值(最高占用5M/S,我使用的是超六类网线,带宽为500M)。原因是,操作系统中保留了包含传输控制协议(TCP)协议的内存,为了使系统表现良好并且能够完成连接,系统使用半开连接插槽。如果这些插槽数量用完,那么系统就不会接受新的连接,包括来自合法客户端的连接。所以,系统完全能够处理SYN洪水。但是我的网络端口确实遭受了很强的冲击,完全无法联网,说明比网络层我想象的要脆弱的多。

inviteflood

使用inviteflood通过SIP协议进行洪水攻击。

inviteflood eth0 XXX.COM 192.168.XX.XX 150000 //指定invitefloo作为发送信息的端口,目标为SIP服务器用户名,随后与之相关的域名,发送150000个请求

因为SIP是一个VoIP协议,所以我们的目标需要是一套配置了用户名的服务器,如果不知道用户名,可以用目标系统的IP地址,那么命令中会出现两个相同的IP地址。

Pentmenu

高集成的自动化工具总是能提高我们的效率。Pentmenu是GitHub上的一个开源的集成化测试工具,KALI并没有收录,需要去GitHub上自行下载资源包。

https://github.com/GinjaChris/pentmenu

随后使用unzip命令解压压缩包,记住解压后的目录,并调用最高管理员权限,一步步找到pentmenu所在的文件夹,使用is文件打开其中的shell script文件即可进入程序

或者,直接文件管理器打开文件夹,把script文件拖进终端回车,效果相同。

随后选择第二项,Dos攻击,会列出可用的攻击模式。

简单介绍一下这些模式:

1:Echo报文洪水,发送大量的ICMP请求报文(ICMP ECHO)信息给目标主机,目标主机会回应一个reply报文。在此过程中,会占用大量CPU资源,从而导致服务器瘫痪。

2:著名的黑护士攻击,攻击者曾在2017年使用15M的带宽打瘫了思科防火墙。通过每秒发送40,000至50,000个类型和代码均为3的ICMP报文,致使服务器的负载过重。

3:SYN洪水,向服务器发送大量的伪造的IP报文,占满服务器的半连接插槽(SYN连接队列),从而导致服务器不能处理其他请求。

4:ACK洪水,向目标主机发送带ACK标志位的TCP报文,目标主机会监测报文是否合法,是则回复端口开放,不是则不作回应。

5:RST复位洪水。攻击者伪造一个路由B,当合法路由A(同时也是被攻击者)向服务器发送TCP连接请求报文时,立刻向A发送复位请求,这时A会立刻释放连接并清空缓存,导致永远也连接不上服务器。

6:XMAS洪水,与前几个相同,但是发送所有的TCP标记

7:UDP洪水,将UDP数据包发送到指定的IP和端口

8:SSL DOS攻击,使用OpenSSL尝试DOS目标。

9:完全不清楚作用

10:完全不清楚作用

11:使用hping3从选择的目标主机IP启动多个TCP SYN扫描,这不是攻击

12:通过向不存在的域发送大量DNS查询对您的DNS进行压力测试。

KALI应用篇(一)压力测试相关推荐

  1. 压力测试及缓存服务器

    第一篇 WEB压力测试 一.常用工具 常用压力测试工具:ab,httpd_load,webbench,seige. 仅仅作为测试使用,与实际能力区别也挺大的. 比较好的测试工具:惠普公司的loadru ...

  2. Web性能测试篇:AB 压力测试

    目录 1. 压力测试的概念\定义 2. AB的起源 3. 运行平台区分(Windows\Linux|Mac) 4. 你的第一个AB GET请求脚本 5. AB发起POST.PUT请求 6. AB附带有 ...

  3. android测试篇(四)android专项测试之压力测试

    前言 抄袭文章来源:Android App专项测试-压力测试篇 小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过And ...

  4. 【Jmeter基础篇】03:如何进行post接口压力测试

    目前网络上有很多很多Jmeter的压力测试使用指南,但是在实际使用过程中,很多朋友会遇到许多并不处于理想状态的情况,比如某些参数不知道应该往哪里放,具体怎么分析测试结果等等. 所谓压力测试,实质就是让 ...

  5. 转载:Jmeter压力测试教程(入门篇)

    前言 Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具.本篇文章主要的目的是帮助没有接触过Jmeter的人快速上手,迅速掌握Jm ...

  6. Portable Virtual Box+Kali Linux+Docker+WRK做压力测试

    需求:在Windows下安装Linux虚拟机,并安装docker,在docker镜像中安装WRK并进行"压力测试".主要考量是:(1)Windows下使用Linux,并进行前期的压 ...

  7. jmeter压力测试_如何使用Jmeter进行压力测试?这篇入门讲解拿去不谢!

    一.下载安装jmeter 这里不多说了,大家可以自行下载. 二.运行jmeter.bat 在bin目录下,使用管理员方式运行jmeter.bat 随之会打开jmeter的GUI界面,注意不要关闭运行的 ...

  8. 测试nignx php请求并发数,Nginx 高级篇(八)ab 压力测试即 nginx 的性能统计模块...

    我们总得要对自己的网站或者接口做压力测试的,总不能写好了代码不做测试就上线啊,谁知道你的网站或者接口能承受多少的并发和访问量,压力测试我们可以使用apache的ab小工具来搞或者使用github上提供 ...

  9. Android App专项测试-压力测试篇

    小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过Android平台的一门工具Monkey.在学习本门课程之前,如果你具 ...

  10. jmeter并发测试教程_JMeter压力测试并发测试(入门篇)

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...

最新文章

  1. 题解 P4692 【[Ynoi2016]谁的梦】
  2. 智能计算机和智能化网络结论,人工智能技术中计算机网络技术的应用
  3. 僵尸进程的生成以及几种避免方法
  4. python英语翻译-python制作英语翻译小工具代码实例
  5. jsp动作元素include学习
  6. spring转发和重定向
  7. 以HANA为核心 SAP实时数据平台详解
  8. Oracle常用知识总结
  9. 使用Numpy和Opencv完成图像的基本数据分析(Part II)
  10. case class和trait
  11. php图像处理原生函数,php图像处理函数imagecopyresampled的用法
  12. 我的YUV播放器MFC小笔记:设置picture控件背景为黑色、窗口缩放
  13. 若依框架修改器的使用教程
  14. 格兰杰检验的基本步骤_Toda-Yamamoto 格兰杰因果检验 TY-Granger方法
  15. 装修后才知道的79件事
  16. PDF Reader XI 闪退+安装组件错误代码提示1935最完美最靠谱的解决方案
  17. linux ffmpeg 合并视频文件,使用ffmpeg合并视频
  18. mysql 8 commen table expression 树查询
  19. 云宏广东省中医院虚拟化管理平台
  20. vue.js 的学习之路

热门文章

  1. Webtrends的跨域访客跟踪机制
  2. java properties native2ascii_properties文件国际化之native2ascii
  3. 大土狗书屋好书推荐--《史蒂夫·乔布斯传》
  4. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  5. 打印机驱动是什么,打印机驱动有什么用,一定要安装打印机驱动吗
  6. 网页中打开msn窗口方法
  7. 35款FL插件免费下载
  8. NLPIR分词系统的使用
  9. 花生壳+FileZilla搭建公网FTP服务器
  10. 你知道最真实的大数据故事吗?13 个大数据应用案例告诉你。