专栏首页FreeBufCC攻击应急:自动拉黑IP的Shell脚本

CC攻击应急:自动拉黑IP的Shell脚本

前言

前两天参加面试,面试官问我:如果攻击方采用代理ip进行cc攻击,我们应该如何应急?

由这个问题,引发了我的一些思考。他假定的场景是网站没有任何防护措施(就是在互联网上裸奔),好吧,既然没有任何的防护,在应急的时候,能不能通过脚本自动分析web日志,根据访问量自动拉黑ip?

脚本介绍

脚本设计思路:通过计划任务统计单位时间内的IP访问量,设定一个阀值,访问量超过阀值就自动拉黑。

#!/bin/bash
#该脚本可以根据web日志的访问量,自动拉黑IP(加入计划任务,结合计划任务在固定时间段内执行,并根据该时间段内产生的日志进行分析)

#首先把日志保存到根目录一份,计算日志有多少行
line1=`wc -l /access_log|awk '{print$1}'`
cp /var/log/httpd/access_log /

#计算现有的日志有多少行
line2=`wc -l /var/log/httpd/access_log |awk '{print$1}'`

#根据上一次备份的日志和现在拥有的行数差值,作为单位时间内分析日志访问量
tail -n $((line2-line1)) /var/log/httpd/access_log|awk '{print$1}'|sort -n|uniq -c|sort >/1.txt

cat /1.txt|while read line
do 
echo $line >/line
num=`awk '{print$1}' /line`

#设定阀值num,单位时间内操作这个访问量的ip会被自动拉黑
if (($num>12))
then
    ip=`awk '{print$2}' /line`
    firewall-cmd --add-rich-rule="rule family=ipv4 source address='${ip}' port port=80 protocol=tcp reject" --permanent
    firewall-cmd --reload

fi
done

脚本测试

一台centos7虚拟机,搭建有http服务

1.Web可以正常访问

2.启动虚拟机centos的防火墙

3.把脚本加入计划任务

4.用nikto模拟大量的访问

5.再访问可以看到本地的IP已经无法访问网页

6.通过firewall-cmd —list-all 可以看到自己本地的ip地址已经被拉黑

7.我们也可以对在/etc/firewalld/zones/public.xml文件中对防火墙的规则进行直接操作,方便我们后期对拉黑的ip进行移除,修改等操作

总结:

这个脚本只是给出一个样例,里面的阀值num需要根据自己网站的访问量自行调整。也可以根据这个脚本来演化,比如基于访问特征拉黑ip,有兴趣的可以自己研究。

*本文作者:mozili,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:mozili

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 老外手把手带你搭建DMZ渗透测试实验室(Part 1,2)

    小编注: 大家好。接下来给大家带来两篇老外的文章,是关于构建渗透环境的文章,这是第一篇。如果有什么地方翻译地不对,还请各位大大轻拍。下面一系列的步骤都是如何在G...

    FB客服
  • 企业安全建设之HIDS

    入侵检测重点关注的,是GetShell这个动作,以及GetShell成功之后的恶意行为(为了扩大战果,黑客多半会利用Shell进行探测、翻找窃取、横向移动攻击其...

    FB客服
  • 一加手机系统预装APP被曝存在后门

    移动安全研究专家Elliot Alderson公开表示,某些一加手机的系统预装应用EngineerMode中存在后门,而他人或可利用这款应用来对手机进行root...

    FB客服
  • jmeter集群下脚本日志和报告处理

    apache jmeter是apache软件基金会出品的一款用于接口测试,压力测试的开源软件,由于其免费开源,插件自由扩展,理论上可以支持所有种类的接口测试。j...

    嘉为科技
  • linux防止恶意采集攻防战

      知道了原因就比较好办了,屏蔽那些ip段应该就太平了。将log日志中的ip地址提取出来(剔除本地ip、搜索引擎蜘蛛ip、目标市场ip),然后找这些ip的规律,...

    ytkah
  • [angularjs] angularjs系列笔记(三)模型

    陶士涵
  • PHP通过explode函数简单利用ip138获取ip/域名位置信息

    function get_ipcity($ip){ $str=file_get_contents("http://m.ip138.com/ip.asp?ip={...

    V站CEO-西顾
  • 【STM32F429开发板用户手册】第39章 STM32F429的FMC总线应用之SDRAM

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255

    armfly
  • 刚三岁的拼多多赴美上市!活跃用户数近3亿,仅次于淘宝京东……

    美国东部时间6月29日(北京时间6月30日),刚创立三年的拼多多向美国证券交易委员会(SEC)正式提交招股书。招股书显示,拼多多计划通过IPO交易筹资最多10亿...

    昱良
  • C编程笔记

    1.编译命令gcc test.c -o test 带上参数o就是指定编译文件名 2.printf(“%.2lf”,b) 其中前面2是小数点后位数,l是字母...

    苦咖啡

扫码关注云+社区

领取腾讯云代金券