美文网首页Pythonjs css html
Python3下基于Scapy库完成网卡抓包解析

Python3下基于Scapy库完成网卡抓包解析

作者: frytea | 来源:发表于2023-04-04 09:03 被阅读0次

Scapy 是一个可以让用户发送、侦听和解析并伪装网络报文的 Python 程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。

Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的包进行回调操作。

Sniff 方法定义:

sniff(count=0,
      store=1,
      offline=None,
      prn=None,
      filter=None,
      L2socket=None,
      timeout=None,
      opened_socket=None,
      stop_filter=None,
      iface=None)
count:抓取报的数量,设置为0时则一直捕获
store:保存抓取的数据包或者丢弃,1保存,0丢弃
offline:从pcap文件中读取数据包,而不进行嗅探,默认为None
prn:为每个数据包定义一个回调函数,通常使用lambda表达式来写回调函数
filter:过滤规则,可以在里面定义winreshark里面的过滤语法,使用 Berkeley Packet Filter (BPF)语法,具体参考:[http://blog.csdn.net/qwertyupoiuytr/article/details/54670477](http://blog.csdn.net/qwertyupoiuytr/article/details/54670477)
L2socket:使用给定的L2socket
timeout:在给定的事件后停止嗅探,默认为None
opened_socket:对指定的对象使用.recv进行读取
stop_filter:定义一个函数,决定在抓到指定的数据之后停止
iface:指定抓包的网卡,不指定则代表所有网卡

filter 语法

type(定义了类型)
可选值:host, net, port, portrange
例如:
host hostnameA
net 172.31            //相当于172.31.0.0/16,又例如:192.168.1相当于192.168.1.0/24
port 80
portrange 6000-6010

dir(direction,定义了传输方向)
可选值:src, dst, src or dst, src and dst
例如:
src net 172.31
src or dst port 21

proto(protocol定义了网络协议)
可选值:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp, icmp
(fddi, tr, wlan是ether的别名, 包结构很类似)
例如:
ether src hostnameA
arp net 172.31
udp portrange 7000-8000

连接词:and, or, not
例如:
tcp or udp
not icmp

示例代码

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

from scapy.all import *

def pack_callback(packet):
    print ( packet.show() )
    if packet['Ether'].payload:
        print (packet['Ether'].src)
        print (packet['Ether'].dst)
        print (packet['Ether'].type)

    if packet['ARP'].payload:
        print (packet['ARP'].psrc)
        print (packet['ARP'].pdst)
        print (packet['ARP'].hwsrc)
        print (packet['ARP'].hwdst)
    time.sleep(2)

filterstr="arp"

sniff(filter=filterstr,prn=pack_callback, iface='eth0', count=0)

参考文献

相关文章

  • scapy相关

    python 的 scapy 库可以方便的抓包与解析包 pip install scapy 抓包: from sc...

  • ubuntu 抓包

    找出网卡 执行抓包 抓包完成后导出,用wireshark等打开

  • python解析pcap文件中的http数据包

    使用scapy、scapy_http就可以方便的对pcap包中的http数据包进行解析 scapy_http可以在...

  • scapy抓包1

  • wireshark使用

    抓包原理: 一、哪种网络可以抓到包: 1、主机环境:wireshark绑定本机网卡,直接抓本地网卡进出的流量 2、...

  • python抓取数据包

    在kali的环境中,系统自带了scapy第三方库,这个库可谓牛逼到没朋友,下面进行使用scapy抓取嗅探到的数据包...

  • scapy解析pcap文件

    针对wireshark或者tcpdump捕获的文件,使用python中的scapy库可以非常方便的进行解析,但是也...

  • 2017-12-28

    # Scapy Fuzz 模块解析 很久以来,scapy都是一个交互式发包的神器,因为定制所以强大,借助scapy...

  • tcpdump 抓包

    1:抓包命令 tcpdump-i网卡port端口-wabcd.pcap-v tcpdump-i网卡...

  • 移动端抓包方法总结

    1. 通过抓包能获取那些信息 2. 常见抓包方式预览 3. 网络代理工具抓包 4. 通过网关抓包 5. 虚拟网卡映...

网友评论

    本文标题:Python3下基于Scapy库完成网卡抓包解析

    本文链接:https://www.haomeiwen.com/subject/yyydddtx.html