Scapy 中文文档:二、下载和安装

下载和安装

译者:飞龙

原文:Download and Installation

协议:CC BY-NC-SA 4.0

概览

  • 安装 Python 2.5。
  • 下载并安装 Scapy。
  • (对于非Linux平台):安装libpcaplibdnet及其 Python 包装器。
  • (可选):安装用于特殊功能的其他软件。
  • 使用 root 权限运行 Scapy。

每个步骤可以以不同的方式完成,具体取决于你的平台和要使用的 Scapy 版本。

目前,Scapy 有两个不同版本:

  • Scapy v1.x。它只包含一个文件,并适用于 Python 2.4,因此它可能更易于安装。 此外,你的操作系统可能已经含有一个为之特别准备的包或端口。 最后一个版本是 v1.2.2。
  • Scapy v2.x。当前的开发版本增加了多个功能(例如 IPv6)。 它包括以distutils标准方式打包的几个文件。 Scapy v2 需要 Python 2.5。

注意:在 Scapy v2 中使用from scapy.all import *来代替from scapy. import *

安装 Scapy v2.x

以下步骤描述如何安装(或更新)Scapy 本身。 根据你的平台,可能需要安装一些额外的库才能使其真正工作。 所以,请大家在平台特定之指南中查看如何安装这些必需的东西。

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

确保在继续之前安装了 Python。

最新发行版

最新版本下载到临时目录,并以distutils标准方式来安装。

$ cd /tmp
$ wget scapy.net
$ unzip scapy-latest.zip
$ cd scapy-2.*
$ sudo python setup.py install

或者,你也可以执行 Zip 文件:

$ chmod +x scapy-latest.zip
$ sudo ./scapy-latest.zip

或者:

$ sudo sh scapy-latest.zip

或者:

$ mv scapy-latest.zip /usr/local/bin/scapy
$ sudo scapy

注意:要制作 zip 可执行文件,需要在 zip 标头之前添加一些字节。 大多数但并不是所有 zip 程序都会处理它。 如果你的 zip 程序报告该 zip 文件被损坏,可以更改它,或在 http://hg.secdev.org/scapy/archive/tip.zip 下载一个不可执行的 zip 文件。

当前开发版

如果你总想使用带有所有新功能和错误修正的最新版本,请使用 Scapy 的 Mercurial 仓库:

  1. 安装 Mercurial 版本控制系统,例如,在 Debian/Ubuntu 下执行:

    $ sudo apt-get install mercurial
    

    或者在 OpenBSD 上:

    $ pkg_add mercurial
    
  2. 克隆 Scapy 仓库:

    $ hg clone http://hg.secdev.org/scapy
    
  3. distutils标准方式来安装 Scapy:

    $ cd scapy
    $ sudo python setup.py install
    

之后你可以始终更新到最新版本:

$ hg pull
$ hg update
$ sudo python setup.py install

Mercurial 的更多信息请参阅 Mercurial book

安装 Scapy v1.2

由于 Scapy v1 仅包含一个单一的 Python 文件,安装很容易:只需下载最新版本并使用 Python 解释器运行它:

$ wget http://hg.secdev.org/scapy/raw-file/v1.2.0.2/scapy.py
$ sudo python scapy.py

在 BSD 系统上,你还可以尝试使用最新版本的 Scapy-bpf(开发仓库)。 它不需要libpcaplibdnet

用于特殊功能的可选软件

对于某些特殊功能,你必须安装更多软件。 有关如何安装这些包的平台特定说明,请参见下一节。 这里是涉及的主题和一些例子,你可以使用它们来尝试是否能够安装成功。

  • 绘图。plot()需要 Gnuplot-py,它需要 GnuPlotNumPy

    >>> p=sniff(count=50)
    >>> p.plot(lambda x:len(x))
    
  • 2D 图形。 psdump()pdfdump()需要 PyX,而这需要一个 LaTeX 分发版。 要以交互方式查看 PDF 和 PS 文件,你还需要 Adobe Readeracroread)和 gvgv)。

    >>> p=IP()/ICMP()
    >>> p.pdfdump("test.pdf")
    
  • 图形。conversations()需要 GrapvizImageMagick

    >>> p=readpcap("myfile.pcap")
    >>> p.conversations(type="jpg", target="> test.jpg")
    
  • 3D 图形。trace3D()需要 VPython

    >>> a,u=traceroute(["www.python.org", "google.com","slashdot.org"])
    >>> a.trace3D()
    
  • WEP 解密。unwep()需要 PyCrypto。例子中使用了 Weplap 测试文件

    >>> 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]
    
  • 指纹识别。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 上原生运行,不需要libdnetlibpcap

安装 Python 2.5。
安装tcpdump并确保它在$ PATH中。 (它只用于编译 BPF 过滤器(-ddd选项))
确保你的内核已选择分组套接字(CONFIG_PACKET
如果你的内核<2.6,请确保选择套接字过滤(CONFIG_FILTER

Debian/Ubuntu

只需使用标准包:

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

Fedora

这里是在 Fedora 9 中安装 Scapy 的方法:

# yum install mercurial python-devel
# cd /tmp
# hg clone http://hg.secdev.org/scapy
# cd scapy
# python setup.py install

一些可选包:

# yum install graphviz python-crypto 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 OS X

以下是在 Mac OS 10.4(Tiger)或 10.5(Leopard)上安装 Scapy 的方式。

建立环境变量

  • 安装 X11。 在 Mac OS X DVD 上,它位于『可选 Installs.mpkg』软件包中。
  • 安装 SDK。 在 Mac OS X DVD 上,它位于『Xcode Tools/Packages』目录中。
  • 从 Python.org 安装 Python 2.5。 使用 Apple 的 Python 版本会导致一些问题。 请见 http://www.python.org/ftp/python/2.5.2/python-2.5.2-macosx.dmg

使用 MacPorts 安装

  • 从 macports.org 下载 dmg 并安装它。

  • 更新 MacPorts:

    $ sudo port -d selfupdate
    
  • 安装 Scapy:

    $ sudo port install scapy
    

像上面的通用安装所展示的那样,随后你可以更新到最新版。

从源码安装

安装libdnet和 Python 包装器:

$ wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
$ tar xfz libdnet-1.12.tgz
$ ./configure
$ make
$ sudo make install
$ cd python
$ python2.5 setup.py install

安装libpcap和 Python 包装器:

$ wget http://dfn.dl.sourceforge.net/sourceforge/pylibpcap/pylibpcap-0.6.2.tar.gz
$ tar xfz pylibpcap-0.6.2.tar.gz
$ cd pylibpcap-0.6.2
$ python2.5 setup.py install

可选:安装readline

$ python `python -c "import pimp; print pimp.__file__"` -i readline

OpenBSD

这里是在 OpenBSD 中安装 Scapy 的方式:

# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/
# pkg_add py-libpcap py-libdnet mercurial
# ln -sf /usr/local/bin/python2.5 /usr/local/bin/python
# cd /tmp
# hg clone http://hg.secdev.org/scapy
# cd scapy
# python setup.py install

可选包

py-crypto

# pkg_add py-crypto

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(下载的东西非常多,会安装 textlive 以及其他)

# pkg_add py-pyx

/etc/ethertypes

# wget http://www.secdev.org/projects/scapy/files/ethertypes -O /etc/ethertypes

python-bz2(用于 UTscapy)

# pkg_add python-bz2

Windows

Scapy 主要是为类 Unix 系统开发的,并且在这些平台上能正常工作。 但是最新版本的 Scapy 开箱即用支持 Windows。 所以你可以在 Windows 机器上使用几乎所有的 Scapy 的功能。

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

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

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

为了方便起见,链接中直接给出了我使用的版本(对于 Python 2.5 和 Python 2.6)。如果这些链接不起作用,或者你使用的是不同的 Python 版本,只需访问相应软件包的主页并查找 Windows 二进制文件即可。你可以在网上搜索文件名作为最后的手段。

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

如果不能正常工作,考虑跳过 Windows 版本,并从 Linux Live CD 中使用 Scapy - 在 Windows 主机上的虚拟机中,或通过从 CDROM 引导:例如旧版本的 Scapy 已经包含在 grml 和 BackTrack 中。在使用 Live CD 时,你可以通过键入cd /tmp && wget scapy.net轻松升级到最新的 Scapy 版本。

可选包

绘图(plot

2D 图形(psdumppdfdump

  • PyXPyX-0.10.tar.gz。 解压到临时目录,打开命令提示符,进入临时目录并键入python setup.py install
  • MikTeXMiKTeX 2.8 基本安装程序。 PyX 需要安装 LaTeX 。 选择一个不带空格的安装目录(例如C\MikTex2.8,并将(INSTALLDIR)\miktex\bin子目录添加到你的PATH

图形(conversations

WEP 加密

PyCryptopycrypto-2.1.0.win32-py2.5.zippycrypto-2.1.0.win32-py2.6.zip

指纹识别

Nmapnmap-4.20-setup.exe。如果使用默认安装目录,Scapy 应自动查找指纹文件。
Queso:queso-980922.tar.gz。解压tar.gz文件(例如使用 7-Zip)并将queso.conf放入你的 Scapy 目录

截图

已知 Bug

  • 你可能无法在 Windows 上捕获 WLAN 流量。 原因在 Wireshark wiki 和 WinPcap 常见问题中有解释。 尝试关闭混合模式conf.sniff_promisc = False
  • 数据包无法发送到 localhost(或你自己的主机上的本机 IP 地址)。
  • voip_play()函数不工作,因为他们通过/dev/dsp输出声音,这在 Windows 上不可用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,639评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,093评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,079评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,329评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,343评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,047评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,645评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,565评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,095评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,201评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,338评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,014评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,701评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,194评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,320评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,685评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,345评论 2 358

推荐阅读更多精彩内容