函数sniff()中可以使用多个参数,下面先来了解其中几个比较重要参数的含义。

(1)count:表示要捕获数据包的数量。默认值为0,表示不限制数量。

(2)store:表示是否要保存捕获到的数据包,默认值为1

(3)prn:这个参数是一个函数,这个函数将会应用在每一个捕获到的数据包上。

如果这个函数有返回值,将会显示出来。默认是空; 返回一个数据包信息

(4)iface:表示要使用的网卡或者网卡列表。

sniff()还支持了过滤器的使用

这个过滤器使用了一种功能非常强大的过滤语法——“伯克利包过滤”语法。
这个规则简称为 BPF,利用它可以确定该获取和检查哪些流量,忽略哪些流量。
BPF可以帮助我们通过比较各个层协议中数据字段值的方法对流量进行过滤。
BPF的主要特点是使用一个名为“原语”的方法来完成对网络数据包的描述,
例如,可以使用“host”来描述主机,“port”来描述端口,同时也支持“与”“或”“非”等逻辑运算。可以限定的内容包括地址、协议等。

一些常见的过滤器。

(1)只捕获与网络中某一个IP的主机进行交互的流量:“host 192.168.1.1”。
(2)只捕获与网络中某一个MAC地址的主机交互的流量:“ether host 00-1a-a0-52-e2-a0”。
(3)只捕获来自网络中某一个IP的主机的流量:“src host 192.168.1.1”。
(4)只捕获去往网络中某一个IP的主机的流量:“dst host 192.168.1.1”,host也可以省略。
(5)只捕获23端口的流量:“port 23”。
(6)捕获除了23端口以外的流量:“!23” 。
(7)只捕获目的端口为80的流量:“dst port 80”。
(8)只捕获ICMP流量:“icmp”。
(9)只捕获type为3,code为0的ICMP流量:“icmp[0] = 3 &&icmp[1] = 0”。

步骤:

在kali上执行脚本,嗅探192.168.72.131,也就是本机,同时在另一个终端保持长ping,用来执行脚本时抓取ping包

脚本放到最后

接着会返回到当前目录一个catch.pacp文件,我们使用wireshark打开

可以看到抓到了去往www.baidu.com(33.156.66.14)的icmp请求和应答报文

python脚本:

from scapy.all import *
import sysif len(sys.argv) != 2:print("Usage: catchPackets<IP>:\neg: catchPackets 192.168.1.1")sys.exit()# 定义IP地址
ip = sys.argv[1]# 定义callback 回调函数
def callBack(packet):print(packet.show())packets = sniff(filter="host " + ip, prn=callBack, count=5)
# filter表示调用过滤器,规则为BPF,
# prn指定回调函数,每当一个符合filter的报文被探测到时,就会执行回调函数,
# count指定最多嗅探多少个报文(是指符合filter条件的报文,而非全部报文)
# 将抓取的信息 封装成一个 .pcap文件
wrpcap("catch.pcap", packets)

python实现嗅探相关推荐

  1. 使用python来嗅探局域网内的QQ号码

    使用python来嗅探局域网内的QQ号码 增加了一个令牌的判断,可以抓新版本的QQ和老版本的QQ包了. 因为朋友们说这个程序已经无法捕捉到最新的QQ登陆包了,所以修改了一下.因为时间关系,我没有修改本 ...

  2. python 网络嗅探实验

    python 网络嗅探实验 #!/usr/bin/env python3.6 # coding: utf-8import socket import struct import binascii# 变 ...

  3. python局域网嗅探_使用python来嗅探局域网内的qiuqiu号码

    使用python来嗅探局域网内的"qiuqiu号码" 2007年4月16日更新 增加了一个令牌的判断,可以抓新版本包了. 说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环 ...

  4. “人生苦短,我用Python“——网络嗅探与欺骗

    嗅探与欺骗 网络数据嗅探 ARP的原理和缺陷 ARP欺骗 中间人攻击 参考文献 如果想要彻底了解一个网络,那么最好的办法就是对网络中的流量进行嗅探.此篇记录几个嗅探工具,这些嗅探工具可以用来窃取网络中 ...

  5. python解析http数据包_如何在python中嗅探HTTP数据包?

    I want to sniff all the HTTP packets in my computer via python(version2.6.. is this possible? can I ...

  6. python网络嗅探

    网络嗅探 目的 1.学习socket编程,掌握socket网络编程实例: 2.掌握利用SOCK_RAW方式直接在链路层获取数据报文的方法: 3.掌握使用socket进行网络嗅探.对报文进行分析.获取主 ...

  7. 关于《Python绝技:运用Python成为顶级黑客》的学习笔记

    本篇文章主要把<Python绝技:运用Python成为顶级黑客>中的代码敲一遍,学学Python安全相关的编程与思路,然后根据具体的情况修改一下代码. 第一章--入门 1.准备开发环境 安 ...

  8. 书籍推荐——Python绝技:运用Python成为顶级黑客

    Python绝技:运用Python成为顶级黑客 本文推荐一本关于信息安全的图书:<Python绝技:运用Python成为顶级黑客>. 当您听到黑客这个词的时候是不是有点激动呢,尤其是顶级黑 ...

  9. 为什么黑客用python-《Python绝技》:运用Python成为顶级黑客

    点击"阅读原文"可以直接购买该书籍. 本月月考的奖品是<Python绝技>两本!敬请期待吧!Xcon&神话行动创始人呆神.Keenteam陈良.鹰总cnhawk ...

  10. 用python成为顶级黑客-python绝技:运用python成为顶级黑客 PDF 超清中文版

    给大家带来的一篇关于python相关的电子书资源,介绍了关于python绝技.python黑客方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小42 MB,TJO编写,目前豆瓣.亚马逊.当 ...

最新文章

  1. 第二篇 - EOS Currency 合约案例
  2. 给Python初学者的最好练手项目,进来看就对了!
  3. android byteBuffer的使用
  4. timesten支持mysql吗_Timesten常用命令
  5. 浅谈JQuery中$('.classname').get(0); $('.classname').eq(0); $('.classname')[0]三者的区别
  6. SAP UI5 应用的 OData XML 格式的元数据请求解析原理,基于 DOMParser
  7. 信息学奥赛一本通 1170:计算2的N次方 | OpenJudge NOI 1.6 12:计算2的N次方
  8. 基于QStyledItemDelegate的例子 Star Delegate Example
  9. nodejs安装anywhere快速启动一个web服务
  10. 数据库索引:位图索引
  11. 用小程序做问卷调查,获取数据就是这么简单!
  12. Beijing Thwarts Coke's Takeover Bid
  13. 新手入门刷题(专题二)排序 (第一部分)
  14. pathon中的元组与序列
  15. Android APP连接 MySQL
  16. linux中nginx安装前置条件以及安装流程,非常简单
  17. 如何学习自动化测试?一文4从个方面带你入门自动化测试【建议收藏】
  18. Java dom4j如何获取,添加,删除,查找,设置Element属性呢?
  19. LeetCode题解(0594):计算最长和谐子序列(Python)
  20. 如何获取苹果设备UDID?

热门文章

  1. SSH超市进销存管理系统
  2. SysWow64和System32
  3. 学习笔记-Wood‘s anomalies
  4. 社区人物志|缪翎:见证开源世界的女性力量
  5. 【风光摄影】用滤镜在前期控制完美光比
  6. 函数6:lambda 表达式
  7. 阿里云服务器默认登录密码是什么?
  8. Latex Beamer 入门教程
  9. 2022-2028年中国农产品期货市场投资分析及前景预测报告
  10. 龙卷风“掀翻”亚拉巴马州 至少19人死亡