1. 介绍

scapy是一个可用于网络嗅探的非常强大的第三方库。在网络嗅探方面前面的博文介绍过通过Raw Socket进行网络嗅探,但是Raw Socket比较底层,使用起来可能不太容易而且在不同的系统上也有一定的区别。

在网络流量嗅探方面,常用的一些第三方库:

scapy

接下来我详细介绍下scapy的使用,它在这些库中功能最强大使用也最灵活。具有以下几个特点:

交互模式,用作第三方库。可以用来做packet嗅探和伪造packet。 已经在内部实现了大量的网络协议。(DNS,ARP,IP,TCP,UDP等等) 可以用它来编写非常灵活实用的工具。

更详细的信息可参考官方scapy使用说明书。

2. 使用scapy

2.1 scapy安装

既然是第三方库,系统上默认是没有安装的。在Ubuntu下,我们可以直接使用以下命令进行安装:

sudo apt-get install scapy

安装完成以后,只需要在终端下执行sudo scapy就可以进入scapy的命令行模式。

2.2 scapy可用到的协议层次ls() 列出scapy中已实现的网络协议。还有很多下图中没有列举出来,可亲自试验一下便知。

ls(IP) 列出IP协议头部字段格式。

IP().show() 显示包的IP信息。

lsc() 列出scapy中可以使用的命令或函数。

conf scapy配置选项

2.3 scapy嗅探示例

在scapy命令模式下,异常输入以下代码进行试验。

1)、嗅探流量包。

1

2

3

4

5

6

7>>>

>>> pkts = sniff(iface = eth0,count =3 )

>>>

>>> pkts

>>>

sniffer函数进行嗅探流量,iface表示使用的网卡接口,count是嗅探包的个数。结果显示嗅探到了3个TCP包。可以输入pkts[i]查看包的具体内容。

1

2

3

4

5>>> pkts[0]

>>>

>>>

>>>

可以看到以太网帧头各个字段的具体值,还有后面跟的协议类型,这里是IPv4,还有IP个字段的值以及IP上层的TCP协议及其字段值。如果感觉还是不够清晰,可以使用pkts[i].show()更加清楚明了的看到packet中各协议字段的具体值。

2)、将嗅探到的packet内容写到pcap文件中和读取pcap文件。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16>>>

>>>

>>> wrpcap(demo.pcap,pkts)

>>>

>>>

>>> read_pkts = rdpcap(demo.pcap)

>>>

>>> read_pkts[0]

>>>

>>>

>>> read_pkts[1]

>>

>>>

>>>

3)、为sniffer函数添加过滤条件。

用过wireshark或者tcpdump的coders都知道,网络中的流量是庞大而复杂的,有时候我们需要增加一些特定的条件将我们想要看到的数据筛选出来。比如filter= udp。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24>>>

>>> pkts = sniff(iface = eth0,filter = udp,count =3 )

>>>

>>> pkts[1]

>>>

>>> pkts[2]

>>>

>>>

>>>

3)、动态打印出概要结果。

在scapy命令模式中输入命令pkts = sniff(iface = eth0,filter = icmp,count = 30, prn = lambda x: x.summary()),这里我把嗅探包的数量提高到30,然后过滤ICMP协议类型的包。一边等待显示结果,可以另起一个终端,然后ping一个网址,观察嗅探现实的结果。

4)、帧与字符串的互相转换

vcD4NCjxwcmUgY2xhc3M9"brush:java;"> >>> >>> >>> icmp_str = str(pkts[0]) >>> >>> icmp_str @l?.??'5BYEd?Y@@ò?à¨à¨_eu?£;?` S?ì? +?J?ìz??\$?Yeμa?£7e??@?,??yJ_QaQ???<_qb>>> >>> recombine = Ether(icmp_str) >>> >>> recombine>>> >>>

5)、导入导出base64编码格式的数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20>>>

>>>

>>> export_object(str(pkts[0]))

eNoBeQCG/4ACVXJAbI8u1cQIACc1QlkIAEUAAGTD3UAAQAby+MCoAQ7AqAFfABbwdeOjOwSpYApT

gBgTzIQUAAABAQgKDAsrqUrlFMx6GYK9XCTHWRwc8LVhnqMLNwzwy6FAhizYxXlKX1GqUfWY1Txf

cRVCq85FqCadC5VxAS4+6i3U

>>>

>>> newPkt = import_object()   #将上一步导出的字符串填入,回车,ctrl_+d结束。

eNoBeQCG/4ACVXJAbI8u1cQIACc1QlkIAEUAAGTD3UAAQAby+MCoAQ7AqAFfABbwdeOjOwSpYApT

gBgTzIQUAAABAQgKDAsrqUrlFMx6GYK9XCTHWRwc8LVhnqMLNwzwy6FAhizYxXlKX1GqUfWY1Txf

cRVCq85FqCadC5VxAS4+6i3U

>>> newPkt

@l.??'5BYEd?Y@@ò?à¨à¨_eu?£;?`

S?ì?

+?J?ìz??\$?Yeμa?£7e??@?,??yJ_QaQ???<_qb>

>>> Ether(newPkt)

>>>

>>>

python的scapy_python scapy网络嗅探相关推荐

  1. python scapy网络嗅探

    1. 介绍 scapy是一个可用于网络嗅探的非常强大的第三方库.在网络嗅探方面前面的博文介绍过通过Raw Socket进行网络嗅探,但是Raw Socket比较底层,使用起来可能不太容易而且在不同的系 ...

  2. Python中Scapy网络嗅探模块的使用

    目录 Scapy scapy的安装和使用 发包 发包和收包 抓包 将抓取到的数据包保存

  3. python的scapy_Python Scapy vs dp

    我不明白为什么人们说斯凯比表现更好.我很快检查如下所示,赢家是dpkt.是dpkt&gt:scapy&gt:pyshark.在 我用于测试的输入pcap文件大约是12.5mb.时间是用 ...

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

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

  5. 《Python渗透测试编程技术:方法与实践》:网络嗅探与欺骗

    第八章 网络嗅探与欺骗 漏洞渗透程序在网络中都以数据包形式传输,如果能对网络中的数据包进行分析,就可以深入掌握渗透原理,另外,很多网络攻击方法都是利用精心构造的数据包来完成,例如常见的ARP欺骗,利用 ...

  6. python 网络嗅探实验

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

  7. python网络嗅探

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

  8. Python黑客编程3网络数据监听和过滤

    课程的实验环境以下: •      操作系统:kali Linux 2.0 •      编程工具:Wing IDE •      Python版本:2.7.9 •      触及到的主要python ...

  9. 网络嗅探与欺骗----函数sniff()、ARP的原理、ARP欺骗、AARP欺骗的中间人攻击

    网络嗅探与欺骗 如果想要彻底了解一个网络,那么最好的办法就是对网络中的流量进行嗅探 嗅探工具可以用来窃取网络中明文传输的密码,监视网络中的数据流向,甚至可以收集远程登录所使用的NTLM数据包(这个数据 ...

最新文章

  1. 使用Poi读取xlsx类型的Excel
  2. 跟我一起写 Makefile(整理版)
  3. 用Apache构建WEB服务器
  4. 4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
  5. gis怎么提取水系_arcgis水系提取流程(dem)
  6. RubyOnRails培训大纲
  7. 【状压DP】易懂讲解状态压缩/状态压缩DP
  8. Ext2.2 combo 多选效果
  9. 三星I909破解使用GPRS上网教程
  10. 解决字符串存在\u6d4b\u8bd5\u5206\u7c7等中文汉字(乱码)(unicode码)
  11. 互联网化企业软件应该具备什么功能
  12. 天顶围棋 8 zenith 8_世界围棋冠军数排名TOP10:李昌镐第一 古力柯洁并列第4
  13. Symbian SDK release 下载地址
  14. 生活中的开销,怎么记账合适
  15. Identity Card
  16. 华三指定启动配置文件_华三交换机的一些配置命令
  17. 简述控制反转ioc_什么是控制反转(Inversion of Control,IoC)
  18. 饿了吗 系统_“外卖骑手,困在系统里”刷屏!饿了么宣布将上线“多等5分钟”功能,网友吐槽:转移矛盾...
  19. Mac 使用 mysqlclient 报错 NameError: name ‘_mysql‘ is not defined
  20. 【技术小说连载】新三国外传——徐庶赴曹

热门文章

  1. CoinGeek直播大会(2020)将在著名的纽约曼哈顿中心举行
  2. 外链应该这样发,网站排名速度提升十陪 1
  3. sublime text 打开总是弹框报错Unable to download XXX. Please view the console for more details.解决办法
  4. PPT在线转换成视频的步骤
  5. 赤峰中考计算机考试软件,赤峰市2018中考信息测试题单项选择部分-初三信息技术试卷与试题.pdf...
  6. JAVA垃圾回收-可达性分析算法
  7. SQLServer将日期转换成字符串格式
  8. java--for循环执行的顺序
  9. Photoshop脚本开发环境
  10. delphi 两行代码实现合并多张图片生成mp4视频