Python实现检测CC攻击

脚本实现:

        此脚本用于测是否存在 CC 攻击:该脚本通过执行 netstat 命令,分析其输出结果,使用正则表达式提取源 IP 地址,并统计每个 IP 地址的连接数。然后,使用阈值来检查是否存在 CC 攻击,并通过调用操作系统命令行接口阻止可能进行攻击的 IP 地址的流量。

代码:

    import subprocessimport reimport os# 定义一个字典,用于存储IP地址和它的连接数connection_count = {}def get_netstat_output():process = subprocess.Popen(['netstat', '-anpt'], stdout=subprocess.PIPE)output, error = process.communicate()return outputdef count_connections(output):global connection_count# 使用正则表达式提取每行中的源IP地址和目标IP地址lines = output.split("\n")for line in lines:match = re.search(r"\d+\.\d+\.\d+\.\d+:\d+\s+(\d+\.\d+\.\d+\.\d+):\d+\s+ESTABLISHED", line)if match:src_ip = match.group(1)# 统计每个IP的连接数if src_ip in connection_count:connection_count[src_ip] += 1else:connection_count[src_ip] = 1def check_cc_attack(threshold):# 检查每个IP的连接数是否超过128for ip, count in connection_count.items():if count > threshold:print(f"可能存在CC攻击的IP: {ip} 连接数: {count}")# 调用防火墙对该 IP 地址进行封锁os.system(f"iptables -I INPUT -s {ip} -j DROP")if __name__ == "__main__":# 获取 netstat 命令的输出结果output = get_netstat_output()# print(output)# 统计每个IP的连接数res=count_connections(output)print(res)# 检查是否存在 CC 攻击,阈值设为 128check_cc_attack(128)

实现效果:

直接在Linux服务器上运行脚本,报错就查看本机python的版本

kali完成攻击后,服务器会直接调用iptables进行封禁,kali这边无法ping通

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部