DDOS使用CentOS 6攻击WHM

时间:2015-01-11 22:25:09

标签: linux apache bash tcp awk

我有以下命令来连接当前的IP:

netstat -ntu | awk '{print $5}' | egrep -o -e '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | sort | uniq -c  | awk '{if ($1 > 50) print $2" # "$1" times."}' | sort -n

当我运行上面的命令时,会得到以下结果:

68.4.90.74 # 185 times.
77.42.241.230 # 258 times.
78.40.177.38 # 658 times.
79.171.81.237 # 798 times.
79.172.252.26 # 435 times.

运行此命令以获取有关上述IP的详细信息

netstat -noap | grep 68.4.90.74

会给你(简单):

tcp        0      0 xxx.xxx.xxx.xxx:80          68.4.90.74:56484            ESTABLISHED 10561/httpd         keepalive (6398.07/0/0)
tcp        0      0 xxx.xxx.xxx.xxx:53          68.4.90.74:56480            ESTABLISHED 10519/httpd         keepalive (6379.57/0/0)
tcp        0      0 xxx.xxx.xxx.xxx:53          68.4.90.74:56481            ESTABLISHED 9817/httpd          keepalive (6379.56/0/0)
tcp        0      0 xxx.xxx.xxx.xxx:53          68.4.90.74:56483            ESTABLISHED 9838/httpd          keepalive (6379.56/0/0)
tcp        0      0 xxx.xxx.xxx.xxx:80          68.4.90.74:56482            ESTABLISHED 10505/httpd         keepalive (6379.34/0/0)

我的问题是如何更新第一个代码以通过无端口80连接IP虽然以下代码可以获取通过特定端口连接的IP:

netstat -ntu | awk '/\:80\ / {print $5}' | egrep -o -e '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | sort | uniq -c  | awk '{if ($1 > 50) print $2" # "$1" times."}' | sort -n

1 个答案:

答案 0 :(得分:0)

这个awk脚本为您完成了大部分工作:

netstat -ntu | awk '/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ && !($5 ~ /:80$/){split($5,a,":");++seen[a[1]]}END{for(i in seen)print i, "#", seen[i], "times."}'

第一种模式与您的相似,但我使用+而不是*来匹配一个或多个数字。第二种模式确保第5个字段不会以:80结尾。仅处理与第一个模式匹配但不匹配第二个模式的行。

将第5个字段拆分为数组a并保留数组seen中所有IP地址的计数。最后,遍历seen中的所有元素并打印输出。