python抓包教程和异常包分析,构建故障分析平台采用python实现抓包分析数据包

本文介绍了使用dpkt、pcap等工具进行网络数据包的抓取和分析,通过设定过滤器抓取HTTP或VRRP数据包,然后进行解析,进一步实现自动化平台来处理运维问题。利用celery进行异步任务处理,避免堵塞,同时提供了一段Python代码示例展示如何抓取HTTP数据包。该方法可用于自动化解决网络监控和故障排查问题。
摘要由CSDN通过智能技术生成

前言:

同事今天和我说,他现在的任务在做一个头疼的问题,说时尚了点,就是用自动化解脱心碎的运维杂事,他这边刚入职,貌似是带领一帮小弟解决别人搞不定的问题,但是有些业务部够单纯,把事直接抛给我同事这边。。。 很无敌吧。

所以计划做一个自动化平台,可以去问题端去抓数据,然后分析数据包,入库,邮件通知。   这个是自动化完成的。

我这里就说下,我的解决思路和开发思路:

工具:

pcap dpkt saltsatck mysql tornado tcpdump

pcap               是用来抓包

dpkt               是用来解析数据包的

celery              异步任务

实现两大功能,用户他自己抓包,然后上传到页面上,然后我后端解析后,返回结果。

用户在平台上提交问题服务器的ip,并选定测试类型,我这里会到服务端跑用python的pcap抓包并分析结果,把结果上报到平台。

更多内容,请关注下我的个人博客,blog.xiaorui.cc

关于自动抓包分析,以前和同事做过处理dns攻击的,方案流程和第三方的工具和我上述是一样的。

遇到攻击,会分析dns的攻击的特征,然后再黑洞系统注射特征码禁止。

需要注意的是,在抓数据的时候,可能会产生堵塞,尤其是pcap,dpkt这东西,需要在后台自己的玩。这个时候就需要用celery把抓包分析包的任务放在后台执行。 你要是觉得subprocess合理的话,也可以用用subprocess 的pipe的,但是个人觉得也是个办法 ,更简单的方法是用tcpdump -w 写到一个文件里面,然后用dpkt去解析,这样的话,也不用pcap去解析啦。

安装是相当的简单,不管是centos和ubuntu都已经有默认的源了,我这里用的是ubuntu的开发机跑测试:

apt-get install python-libpcap

apt-get install libpcap-dev

apt-get install python-dpkt

pip install pypcap

原文:http://rfyiamcool.blog.51cto.com/1030776/1374484

下面是抓取http数据包的写法,大家可以慢慢取值,慢慢分拆数据。

#coding:utf-8

import pcap

import dpkt

import sys

aaa='a'

bbb='b'

pc=pcap.pcap()    #注,参数可为网卡名,如eth0

pc.setfilter('tcp port 80')    #设置监听过滤器

for ptime,pdata in pc:    #ptime为收到时间,pdata为收到数据

p=dpkt.ethernet.Ethernet(pdata)

if p.data.__class__.__name__=='IP':

ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))

#        print ip

if p.data.data.__class__.__name__=='TCP':

if p.data.data.dport==80:

sStr1 = p.data.data.data

sStr2 = 'Host: '

sStr3 = 'Connection'

sStr4 = 'GET /'

sStr5 = ' HTTP/1.1'

nPos = sStr1.find(sStr3)

nPosa = sStr1.find(sStr5)

for n in range(sStr1.find(sStr2)+6,nPos-1):

aaa=sStr1[sStr1.find(sStr2)+6:n]

for n in range(sStr1.find(sStr4)+4,nPosa+1):

bbb=sStr1[sStr1.find(sStr4)+4:n]

ccc=aaa+bbb

print ccc

0818b9ca8b590ca3270a3433284dd417.png

用wireshark瞅瞅:

0818b9ca8b590ca3270a3433284dd417.png

原文:http://rfyiamcool.blog.51cto.com/1030776/1374484

我前两天在做lvs操作平台的时候,额外加了一个针对vrrp的分析数据模块,大家可以举一反三在改改!

#coding:utf-8

#xiaorui.cc

#http://rfyiamcool.blog.51cto.com/

import pcap

import dpkt

import binascii

import struct

a=pcap.pcap()

a.setfilter('vrrp')   # 可以是'tcp' 'udp' 'port 80'等过滤用的

for i,j in a:

tem=dpkt.ethernet.Ethernet(j)

print ("11111%s %x",i,tem)

src='%d.%d.%d.%d' % tuple(map(ord,list(tem.data.src)))

dst='%d.%d.%d.%d' % tuple(map(ord,list(tem.data.dst)))

print tem.data.tos

print tem.data.sum

print tem.data.len

print tem.data.ttl

print tem.data.id

#    print tem.data.data

print tem.data.data.priority

print src

print dst

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

通过获取的数据,可以得知对端的vrrp情况,比如tos src dst vrrp主信息 !

好了,就这样了,过段时间再看看同事进行的如何,要是有新发现,给分享给大家的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python抓包分析是指使用Python编程语言,通过网络抓包工具和相关的库来分析网络数据包。通过抓包分析,我们可以了解网络通信过程中发送和接收的数据包的内容、协议、源地址、目标地址等信息。下面将从抓包原理、使用场景、Python库以及步骤等几个方面进行解答。 抓包原理是通过网络抓包工具(例如Wireshark)捕获网络数据包,然后将抓取到的数据包传输给Python程序进行分析和处理。Python提供了一些库,如Scapy和PyShark,可以直接与抓包工具交互并解析抓包数据。 Python抓包分析有广泛的使用场景。首先,可以用于网络安全分析,例如检测网络中的恶意流量或者网络攻击行为。其次,可以用于网络性能分析,例如分析网络延迟、带宽利用率等指标。此外,也可以用于网络协议研究、网络通信数据流分析等方面。 Python提供了多个库用于抓包分析,其中最常用的是Scapy和PyShark。Scapy是一个功能强大的网络数据包操作库,可以通过构造和解析数据包进行网络通信和分析。PyShark是一个基于TShark的Python封装库,可以实时捕获和解析网络数据包。 使用Python抓包分析的步骤一般括以下几个:首先,安装相关的Python库并配置环境;其次,选择合适的网络抓包工具,并配置好抓包环境;接下来,编写Python程序,通过库函数来进行抓包分析操作;最后,根据实际需求,对抓包数据进行解析、过滤和可视化处理。 总而言之,Python抓包分析是一种利用Python编程语言和相关库进行网络数据包分析的方法。通过抓包分析,可以了解网络通信过程中的数据包信息和协议,适用于网络安全、性能和协议研究等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值