#!/usr/bin/python
#coding=utf-8
import dpkt
import socket
import optparse# 默认设置检测不正常数据包的数量的阈值为1000
THRESH = 1000def findDownload(pcap):for (ts, buf) in pcap:try:eth = dpkt.ethernet.Ethernet(buf)ip = eth.datasrc = socket.inet_ntoa(ip.src)# 获取TCP数据tcp = ip.data# 解析TCP中的上层协议HTTP的请求http = dpkt.http.Request(tcp.data)# 若是GET方法,且请求行中包含“.zip”和“loic”字样则判断为下载LOICif http.method == 'GET':uri = http.uri.lower()if '.zip' in uri and 'loic' in uri:print "[!] " + src + " Downloaded LOIC."except:passdef findHivemind(pcap):for (ts, buf) in pcap:try:eth = dpkt.ethernet.Ethernet(buf)ip = eth.datasrc = socket.inet_ntoa(ip.src)dst = socket.inet_ntoa(ip.dst)tcp = ip.datadport = tcp.dportsport = tcp.sport# 若目标端口为6667且含有“!lazor”指令,则确定是某个成员提交一个攻击指令if dport == 6667:if '!lazor' in tcp.data.lower():print '[!] DDoS Hivemind issued by: '+srcprint '[+] Target CMD: ' + tcp.data# 若源端口为6667且含有“!lazor”指令,则确定是服务器在向HIVE中的成员发布攻击的消息if sport == 6667:if '!lazor' in tcp.data.lower():print '[!] DDoS Hivemind issued to: '+srcprint '[+] Target CMD: ' + tcp.dataexcept:passdef findAttack(pcap):pktCount = {}for (ts, buf) in pcap:try:eth = dpkt.ethernet.Ethernet(buf)ip = eth.datasrc = socket.inet_ntoa(ip.src)dst = socket.inet_ntoa(ip.dst)tcp = ip.datadport = tcp.dport# 累计各个src地址对目标地址80端口访问的次数if dport == 80:stream = src + ':' + dstif pktCount.has_key(stream):pktCount[stream] = pktCount[stream] + 1else:pktCount[stream] = 1except:passfor stream in pktCount:pktsSent = pktCount[stream]# 若超过设置检测的阈值,则判断为进行DDoS攻击if pktsSent > THRESH:src = stream.split(':')[0]dst = stream.split(':')[1]print '[+] ' + src + ' attacked ' + dst + ' with ' + str(pktsSent) + ' pkts.'def main():parser = optparse.OptionParser("[*]Usage python findDDoS.py -p <pcap file> -t <thresh>")parser.add_option('-p', dest='pcapFile', type='string', help='specify pcap filename')parser.add_option('-t', dest='thresh', type='int', help='specify threshold count ')(options, args) = parser.parse_args()if options.pcapFile == None:print parser.usageexit(0)if options.thresh != None:THRESH = options.threshpcapFile = options.pcapFile# 这里的pcap文件解析只能调用一次,注释掉另行修改# f = open(pcapFile)# pcap = dpkt.pcap.Reader(f)# findDownload(pcap)# findHivemind(pcap)# findAttack(pcap)with open(pcapFile, 'r') as f:pcap = dpkt.pcap.Reader(f)findDownload(pcap)with open(pcapFile, 'r') as f:pcap = dpkt.pcap.Reader(f)findHivemind(pcap)with open(pcapFile, 'r') as f:pcap = dpkt.pcap.Reader(f)findAttack(pcap)if __name__ == '__main__':main()

分析LOIC流,判断DDoS攻击源相关推荐

  1. 分析流量对防御DDOS攻击有何价值?

    由于很多企业对安全事件知之甚少,在这种情况下,安全分析师通常会在威胁造成损害后做出反应,因此他们必须过滤大量难以理解的日志数据才能做到这一点.但是,有一些解决方案可以为企业.MSSP.托管提供商和服务 ...

  2. 全年DDoS攻击分析|知道创宇云安全2018年度网络安全态势报告

    *本报告由知道创宇云安全出品* 数据来源:知道创宇云防御平台 前言 2018年,网络安全领域暗流涌动,攻击趋势不断攀升,T级DDoS攻击多次爆发.数据泄露事件层出不穷.勒索软件大行其道.此外,随着我国 ...

  3. Apache Storm 实时流处理系统通信机制源码分析

    我们今天就来仔细研究一下Apache Storm 2.0.0-SNAPSHOT的通信机制.下面我将从大致思想以及源码分析,然后我们细致分析实时流处理系统中源码通信机制研究. 1. 简介 Worker间 ...

  4. DDOS攻击/防御介绍

    目录 1.防御流程图 2.支持基于业务的精细化防护 3.引流方式 4.回注方式多样化 4.1 MPLS VPN回注 4.2 GRE tunnel回注 4.3 二层回注 4.4 PBR(策略路由)回注 ...

  5. 史上最全DDoS攻击与防御教程

    可怕的DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等特点,DDoS攻击已经演变成全球性网络安全威胁. 购买阿里云服务器等产品或腾讯云产品,请先领取优惠券礼包 ...

  6. DDoS高安全性ip服务:解决各种DDoS攻击问题

    随着互联网时代的到来,我们的生活和工作离不开互联网.人们在充分享受网络空间便利的同时,也无法避免威胁.其中,DDoS攻击是最常见的形式. 研究表明,DDoS攻击已成为当前网络威胁.勒索的主要载体之一, ...

  7. 虚拟专题:知识图谱 | DDoS攻击恶意行为知识库构建

    来源:电信科学 DDoS攻击恶意行为知识库构建 刘飞扬, 李坤, 宋飞, 周华春 北京交通大学电子信息工程学院 摘要:针对分布式拒绝服务(distributed denial of service,D ...

  8. DDoS 攻击与防护(一):如何识别 DDoS 攻击?DDoS 防护 ADS 服务有哪些?

    文章目录 前言 一.什么是 DDoS 防护 ADS? 1.1.什么是 DDoS 攻击? 1.2.如何识别 DDoS 攻击? 1.3.从 Web 访问流程分析 DDoS 攻击 1.4.DDoS 攻击类型 ...

  9. 军备竞赛:DDoS攻击防护体系构建

    作者:腾讯安全平台部 lake2 前言 DDoS攻击(Distributed Denial of Service,分布式拒绝服务攻击)的历史可以追溯到1996年(还记得经典的Ping of Death ...

  10. 使用docker、ovs、sFlow、floodlight验证DDoS攻击以及缓减

    搭建环境 搭建一个简单的实验环境,hacker攻击某一网络中的web服务器,web服务与交换机s1相连,此外s1也作为sflow的代理sflow agent,并且受控于floodlight控制器,如下 ...

最新文章

  1. “AI就是统计学”?阿里AI负责人金榕逐条驳诺奖得主萨金特
  2. git提交代码到github时出现everything up-to-date,但是代码没有上传成功
  3. java 打印对象属性 工具类_关于java实现任意对象输出字符串的工具类ObjectUtils用户打印日志、接口调试及监控等...
  4. 【Qt】数据库实战之QSqlRelationalTableModel
  5. bat 中 for 的使用 帮助文档 中文版
  6. 【mindspore】数据加载报错,提示The pointer[cnode] is null.
  7. linux ftell函数(用于得到文件位置指针当前位置相对于文件首的偏移字节数)计算文件的字节大小
  8. psftp的用法(超级详细)
  9. 股票爬取接口如何获取股票实时行情数据?
  10. matlab 读取.pgm,【数字图像处理】pbm/pgm/ppm图片的读写(Matlab)
  11. ALOS 12.5米DEM 数字高程模型数据免费下载介绍(20200617)
  12. maven引用公共包_maven怎么 引入(或引用/使用) 自定义(或本地/第三方) jar的三种方式 图文教程-Fun言...
  13. mt6737电池状态监测
  14. 使用函数统计指定数字的个数 (15 分)
  15. 通过编程求解炉石传说酒馆战旗最佳血量和攻击力分配方式
  16. 从“薛定谔的猫”联想到“好奇害死猫”
  17. 工薪族巧理财之定期存款中整存整取、零存整取、存本取息之间的微妙区别
  18. SpringBoot+Mybatis+Mysql+Vue+ElementUi实现一个《流浪猫狗领养救助管理系统》毕业设计(超详细教程)
  19. EasyUI切换主题风格
  20. Android机顶盒的迅雷离线+aria2+yaww的方案

热门文章

  1. CSDN账号,你需要不
  2. 小学计算机课的微案例,小学信息技术教学案例分析
  3. BackTrack4 官方指南
  4. 浙江工业大学计算机学院的博士招生,浙江工业大学计算机科学与技术学院、软件学院...
  5. 平面与网页设计中关于颜色搭配的问题
  6. shell 编写脚本批量ping ip
  7. Android加速球、360加速球
  8. wifi免密码登录认证流程
  9. 细说php第四版笔记,细说PHP 学习笔记(二)
  10. Unity3d资源包的使用心得