首页 > python中的数据包处理模块scapy调研笔记

python中的数据包处理模块scapy调研笔记

Scapy简介

Scapy的是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,P0F等)。最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN)等,这也是其他工具无法处理完成的。



Scapy is a Python program that enables the user to send, sniff and dissect and forge network packets. This capability allows construction of tools that can probe, scan or attack networks.

sniff 嗅探

dissect 解剖

forge  伪造

fingerprinting  指纹识别



安装方法

模块官网

https://pypi.python.org/pypi/scapy

目前最新版本号是2.3.2

wget 'https://pypi.python.org/packages/source/s/scapy/scapy-2.3.2.tar.gz#md5=b8ca06ca3b475bd01ba6cf5cdc5619af'

tar zxvf scapy-2.3.2.tar.gz

cd scapy-2.3.2

python setup.py install

然后在命令行确认下:

import scapy

from scapy.all import *

conf

查看是否有错误,然后运行参考文献[1]中的例子?



另外在ubuntu上需要额外安装标准依赖包

sudo apt-get install tcpdump graphviz imagemagick python-gnuplot python-crypto python-pyx



/符号表示两个链路层的组合

>>>> IP()/TCP()

>>>> IP()/TCP()/"GET /HTTP/1.0 "     数据部分可以直接使用字符串 



Run Scapy with root priviledges.

In Scapy v2 use from scapy.all import * instead of from scapy import *.

in Python _ (underscore) is the latest result

The sendp() function will work at layer 2. It’s up to you to choose the right interface and the right link layer protocol.



正确的使用方法

sudo scapy

进入scapy交互环境,输入quit()退出并返回shell命令行环境

查看某个函数的具体用法

help(sniff)



参考文献

[1].http://www.cnblogs.com/xiaowuyi/p/3329795.html

[2].http://blog.csdn.net/wang_walfred/article/details/40044141  非常重要,对各函数的解释非常详细

[3].http://blog.csdn.net/wang_walfred/article/details/40072751   非常精彩

[4].http://www.secdev.org/projects/scapy/doc/installation.html   官网安装文档

[5].http://www.secdev.org/projects/scapy/doc/usage.html  详见用法说明,非常详细

更多相关:

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...

  • CMake主页是 https://cmake.org/download/ 1.安装必备包 yum install -y gcc gcc-c++ make automake ncurses-devel git wget curl 2.获取CMake最新64位源码包,当前版本号为3.4.0 wget https:...