Scapy的下载和安装(二)

概述

  1. 安装Python 2.7.X或3.4+
  2. 下载并安装Scapy。
  3. 遵循特定于平台的说明(依赖性)
  4. (可选):安装其他软件以实现特殊功能
  5. 使用root权限运行Scapy。

这些步骤中的每一步都可以根据您的平台和您要使用的Scapy版本以不同的方式完成。

目前,有两种不同版本的Scapy:

  • Scapy的版本2.x。目前的最新版本。它由以标准distutils方式打包的几个文件组成。Scapy v2 <= 2.3.3需要Python 2.5,Scapy v2> 2.3.3需要Python 2.7或3.4+。
  • Scapy v1.x(已弃用)。它不支持Python 3.它只包含一个文件,适用于Python 2.4,因此安装起来可能更容易。此外,您的操作系统可能已经为其准备了专门的软件包或端口。最后一个版本是v1.2.2。

注意

在Scapy v2中使用是from scapy.all import *而不是from scapy import *

安装Scapy的版本2.x 

以下步骤描述了如何安装(或更新)Scapy本身。根据您的平台,可能必须安装一些额外的库才能使其真正起作用。因此,请查看有关如何安装这些要求的平台特定章节。

注意

以下步骤适用于类Unix操作系统(Linux,BSD,Mac OS X)。对于Windows,请参阅下面的特殊章节

在继续之前,请确保已安装Python。

最新发布

注意

要获取最新版本,包含错误修正和新功能,但可能不稳定,请参阅开发版本

使用点子:

pip install scapy
您还可以将最新版本下载到临时目录并以标准distutils方式安装:
cd /tmp
wget --trust-server-names https://github.com/secdev/scapy/archive/master.zip   
or wget -O master.zip https://github.com/secdev/scapy/archive/master.zip
unzip master.zip
cd master
sudo python setup.py install

当前开发版

如果您一直想要具有所有新功能和错误修正的最新版本,请使用Scapy的Git存储库:

  1. 安装Git版本控制系统。例如,在Debian / Ubuntu上使用:

    $ sudo apt-get install git

    或者在OpenBSD上:

    $ doas pkg_add git

     

  2. 查看Scapy存储库的克隆:

    $ git clone https://github.com/secdev/scapy

     

  3. 以标准distutils方式安装Scapy:

    $ cd scapy
    $ sudo python setup.py install

     

然后您可以随时更新到最新版本:

$ git pull
$ sudo python setup.py install

注意

您可以运行scapy而无需使用run_scapy(unix)或run_scapy.bat(Windows)脚本安装它或直接从可执行zip文件运行它(请参阅上一节)。

安装Scapy v1.2(已弃用)

由于Scapy v1只包含一个Python文件,因此安装非常简单:只需下载最新版本并使用Python解释器运行它:

$ wget https://raw.githubusercontent.com/secdev/scapy/v1.2.0.2/scapy.py
$ sudo python scapy.py

特殊功能的可选软件

对于某些特殊功能,您必须安装更多软件。大多数这些软件都可以通过安装pip。以下是涉及的主题以及您可以用来尝试安装成功的一些示例。

  • 绘制。plot()需要Matplotlib。它可以通过安装pip install matplotlib

    >>> p=sniff(count=50)
    >>> p.plot(lambda x:len(x))

     

  • 2D图形。psdump()并且pdfdump()需要PyX,而PyX又需要LaTeX发行版:texlive(Unix)MikTex(Windows)

    注意:PyX需要Python 2.7上的版本0.12.1。这意味着在Python 2.7上,需要通过它安装。除此以外pip install pyx==0.12.1pip install pyx

    >>> p=IP()/ICMP()
    >>> p.pdfdump("test.pdf")

     

  • 图表。conversations()需要GraphvizImageMagick

    >>> p=readpcap("myfile.pcap")
    >>> p.conversations(type="jpg", target="> test.jpg")

     

  • 3D图形。trace3D()需要VPython-Jupyter

    Jupyter-IPython可以通过pip install vpython安装

    >>> a,u=traceroute(["www.python.org", "google.com","slashdot.org"])
    >>> a.trace3D()

     

  • WEP解密。unwep()需要密码学。使用Weplap测试文件的示例:

    密码学可以通过安装 pip install cryptography

    >>> enc=rdpcap("weplab-64bit-AA-managed.pcap")
    >>> enc.show()
    >>> enc[0]
    >>> conf.wepkey="AA\x00\x00\x00"
    >>> dec=Dot11PacketList(enc).toEthernet()
    >>> dec.show()
    >>> dec[0]

     

  • PKI操作和TLS解密。密码学也是必需的。

  • 指纹。nmap_fp()需要Nmap。您需要一个仍然支持第一代指纹识别的旧版本(在v4.23之前)。

    >>> load_module("nmap")
    >>> nmap_fp("192.168.0.1")
    Begin emission:
    Finished to send 8 packets.
    Received 19 packets, got 4 answers, remaining 4 packets
    (0.88749999999999996, ['Draytek Vigor 2000 ISDN router'])

     

  • VOIP。voip_play()需要SoX

特定于平台的指令

Linux原生

Scapy可以在Linux上本机运行,不需要libdnet和libpcap。

  • 安装Python 2.7或3.4+
  • 安装tcpdump并确保它在$ PATH中。(它仅用于编译BPF过滤器())-ddd option
  • 确保你的内核选择了Packet套接字(CONFIG_PACKET
  • 如果您的内核<2.6,请确保选择了Socket过滤CONFIG_FILTER

Debian / 

只需使用标准包:

$ sudo apt-get install tcpdump graphviz imagemagick python-gnuplot python-cryptography python-pyx
Scapy可选择使用python-cryptography v1.7或更高版本。它尚未apt在最近的操作系统版本中打包(例如Debian Jessie)。如果您需要与加密相关的方法,可以使用以下方法安装库:
# pip install cryptography

Fedora的

以下是如何在Fedora 9上安装Scapy:

# yum install git python-devel
# cd /tmp
# git clone https://github.com/secdev/scapy
# cd scapy
# python setup.py install

一些可选包:

# yum install graphviz python-cryptography sox PyX gnuplot numpy
# cd /tmp
# wget http://heanet.dl.sourceforge.net/sourceforge/gnuplot-py/gnuplot-py-1.8.tar.gz
# tar xvfz gnuplot-py-1.8.tar.gz
# cd gnuplot-py-1.8
# python setup.py install

Mac 

在Mac OS X上,Scapy本身不起作用。您需要安装Python绑定才能使用libdnet和libpcap。您可以选择使用Homebrew或MacPorts进行安装。它们都运行良好,但Homebrew用于运行Travis CI的单元测试 。

使用Homebrew安装

  1. 更新自制软件:

    $ brew update

     

  2. 安装Python绑定:

    $ brew install --with-python libdnet
    $ brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
    $ sudo brew install --with-python libdnet
    $ sudo brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb

     

使用MacPorts安装

  1. 更新MacPorts:

    $ sudo port -d selfupdate

     

  2. 安装Python绑定:

    $ sudo port install py-libdnet py-pylibpcap

     

OpenBSD系统

以下是在OpenBSD 5.9+上安装Scapy的方法

$ doas pkg_add py-libpcap py-libdnet git
$ cd /tmp
$ git clone http://github.com/secdev/scapy
$ cd scapy
$ doas python2.7 setup.py install

可选包(仅限OpenBSD)

PY-密码

# pkg_add py-cryptography

gnuplot及其Python绑定:

# pkg_add gnuplot py-gnuplot

Graphviz(大型下载,将安装几个GNOME库)

# pkg_add graphviz

ImageMagick(需要很长时间才能编译)

# cd /tmp
# ftp ftp://ftp.openbsd.org/pub/OpenBSD/4.3/ports.tar.gz
# cd /usr
# tar xvfz /tmp/ports.tar.gz
# cd /usr/ports/graphics/ImageMagick/
# make install

PyX(非常大的下载,将安装texlive等)

# pkg_add py-pyx

在/ etc /以太类型

# wget http://git.netfilter.org/ebtables/plain/ethertypes -O /etc/ethertypes

python-bz2(适用于UTscapy)

# pkg_add python-bz2

窗口

Scapy主要是针对类Unix系统开发的,在这些平台上运行得最好。但最新版本的Scapy支持Windows开箱即用。因此,您也可以在Windows机器上使用几乎所有Scapy的功能。

注意

如果您从Scapy-win v1.2.0.2更新到Scapy v2,请记住使用from scapy.all import *而不是。from scapy import *

您需要以下软件包才能在Windows上安装Scapy:

  • PythonPython 2.7.X或3.4+。安装后,将Python安装目录及其Scripts子目录添加到PATH。根据您的Python版本,默认值分别为C:\Python27C:\Python27\Scripts
  • Npcap最新版本。建议使用默认值。Scapy也适用于Winpcap。
  • Scapy的最新开发版本Git仓库。解压缩存档,在该目录中打开命令提示符并运行“python setup.py install”。

只需下载文件并运行安装程序即可。选择默认安装选项应该是安全的。

为方便起见,直接链接到支持的版本(Python 2.7和3.4+)。如果这些链接不起作用或者您使用的是其他Python版本(肯定不起作用),只需访问相应软件包的主页并查找Windows二进制文件即可。作为最后的手段,在网上搜索文件名。

安装所有软件包后,打开命令提示符(cmd.exe)并键入以运行Scapy scapy。如果已正确设置PATH,则会在C:\Python27\Scripts目录中找到一个小批处理文件,并指示Python解释器加载Scapy。

如果真的没有任何效果,请考虑跳过Windows版本并从Linux Live CD中使用Scapy - 在Windows主机上的虚拟机中或从CDROM启动:例如,旧版本的Scapy已包含在grml和BackTrack中。使用Live CD时,您可以使用上述安装方法轻松升级到最新的Scapy版本。

截图

已知错误

  • 您可能无法在Windows上捕获WLAN流量。在Wireshark wiki和WinPcap FAQ中解释了原因。尝试关闭混杂模式conf.sniff_promisc=False
  • 有时无法将数据包发送到localhost(或您自己主机上的本地IP地址)。

Winpcap / Npcap冲突

随着Winpcap变老,建议改用Npcap。Npcap是Nmap项目的一部分。

  1. 如果收到消息“Winpcap已安装在Npcap上”。这意味着您已经安装了winpcap和npcap版本,这是不推荐的。

您可以从Program Files中卸载winpcap,然后您将需要删除:

  • C:/Windows/System32/wpcap.dll
  • C:/Windows/System32/Packet.dll

如果您使用的是x64机器:

  • C:/Windows/SysWOW64/wpcap.dll
  • C:/Windows/SysWOW64/Packet.dll

改为使用npcap。Winpcap卸载程序不会删除这些文件。

2.如果您收到消息'已安装的Windump版本无法与Npcap一起使用',则肯定意味着您已安装旧版本的Windump。在https://github.com/hsluoyz/WinDump/releases上下载正确的版本

在某些情况下,它也可能意味着你已经安装了Npcap和Winpcap,而Windump正在使用Winpcap。使用上述方法完全删除Winpcap以解决问题。

离线构建文档

Scapy项目的文档是使用reStructuredText(文件* .rst)编写的,可以使用Sphinx python库构建。官方在线版本可在readthedocs找到

HTML版

构建HTML版本的说明如下:

(activate a virtualenv)
pip install sphinx
cd doc/scapy
make html

您现在可以_build/html/index.html在自己喜欢的Web浏览器中打开生成的HTML文件。

要使用ReadTheDocs的模板,您必须安装相应的主题:

pip install sphinx_rtd_theme

UML图

使用pyreverse您可以构建Scapy源代码的对象层次结构的UML表示。以下是如何为Fields对象构建继承图的示例:

(activate a virtualenv)
pip install pylint
cd scapy/
pyreverse -o png -p fields scapy/fields.py

这将生成classes_fields.png包含继承层次结构的图片。请注意,您可以根据需要提供任意数量的模块或程序包,但结果将很快变得不可读。

要查看DHCP层和ansmachine模块之间的依赖关系,您可以运行:

pyreverse -o png -p dhcp_ans scapy/ansmachine.py scapy/layers/dhcp.py scapy/packet.py

在这种情况下,Pyreverse还将生成一个packages_dhcp_ans.png显示所提供的不同python模块之间的链接。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值