本文共 6778 字,大约阅读时间需要 22 分钟。
译者:
原文:
协议:
libpcap
和libdnet
及其 Python 包装器。每个步骤可以以不同的方式完成,具体取决于你的平台和要使用的 Scapy 版本。
目前,Scapy 有两个不同版本:
distutils
标准方式打包的几个文件。 Scapy v2 需要 Python 2.5。注意:在 Scapy v2 中使用
from scapy.all import *
来代替from scapy. import *
。
以下步骤描述如何安装(或更新)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 文件被损坏,可以更改它,或在 下载一个不可执行的 zip 文件。
如果你总想使用带有所有新功能和错误修正的最新版本,请使用 Scapy 的 Mercurial 仓库:
安装 版本控制系统,例如,在 Debian/Ubuntu 下执行:
$ sudo apt-get install mercurial
或者在 OpenBSD 上:
$ pkg_add mercurial
克隆 Scapy 仓库:
$ hg clone http://hg.secdev.org/scapy
以distutils
标准方式来安装 Scapy:
$ cd scapy$ sudo python setup.py install
之后你可以始终更新到最新版本:
$ hg pull$ hg update$ sudo python setup.py install
Mercurial 的更多信息请参阅 。
由于 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(开发仓库)。 它不需要libpcap
或libdnet
。
对于某些特殊功能,你必须安装更多软件。 有关如何安装这些包的平台特定说明,请参见下一节。 这里是涉及的主题和一些例子,你可以使用它们来尝试是否能够安装成功。
绘图。plot()
需要 ,它需要 和 。
>>> p=sniff(count=50)>>> p.plot(lambda x:len(x))
2D 图形。 psdump()
和pdfdump()
需要 ,而这需要一个 。 要以交互方式查看 PDF 和 PS 文件,你还需要 (acroread
)和 (gv
)。
>>> p=IP()/ICMP()>>> p.pdfdump("test.pdf")
图形。conversations()
需要 和 。
>>> p=readpcap("myfile.pcap")>>> p.conversations(type="jpg", target="> test.jpg")
3D 图形。trace3D()
需要 。
>>> a,u=traceroute(["www.python.org", "google.com","slashdot.org"])>>> a.trace3D()
WEP 解密。unwep()
需要 。例子中使用了 。
>>> 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()
需要 。你需要支持第一代指纹识别的(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()
需要 。
Scapy 可以在 Linux 上原生运行,不需要libdnet
和libpcap
。
安装 Python 2.5。
安装tcpdump
并确保它在$ PATH
中。 (它只用于编译 BPF 过滤器(-ddd
选项)) 确保你的内核已选择分组套接字(CONFIG_PACKET
) 如果你的内核<2.6
,请确保选择套接字过滤(CONFIG_FILTER
) 只需使用标准包:
$ sudo apt-get install tcpdump graphviz imagemagick python-gnuplot python-crypto python-pyx
这里是在 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 10.4(Tiger)或 10.5(Leopard)上安装 Scapy 的方式。
从 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 中安装 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
Scapy 主要是为类 Unix 系统开发的,并且在这些平台上能正常工作。 但是最新版本的 Scapy 开箱即用支持 Windows。 所以你可以在 Windows 机器上使用几乎所有的 Scapy 的功能。
注意:如果你从 Scapy-win v1.2.0.2 更新到 Scapy v2,请记住使用
scapy.all import *
而不是from scapy import *
。
你需要以下软件包才能在 Windows 上安装 Scapy:
Scripts
子目录添加到PATH
。根据你的 Python 版本,默认值分别是C:\ Python25
和C:\Python25\Scripts
或C:\Python26
和C:\Python26\Scripts
。python setup.py install
。[x] Automatically start the WinPcap driver at boot time
(在启动时自动启动 WinPcap 驱动程序),以便非特权用户可以嗅探,特别是在 Vista 和 Windows 7 下。如果要使用以太网供应商数据库来解析 MAC 地址或使用wireshark()
命令,请下载已经包含 WinPcap 的 Wireshark。Run as administrator
(以管理员身份运行)。Run as administrator
(以管理员身份运行)。只需下载文件并运行安装程序。选择默认安装选项应该会安全。
为了方便起见,链接中直接给出了我使用的版本(对于 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
)
c:\gnuplot
),并将gnuplot\bin
目录添加到PATH
。python setup.py install
。2D 图形(psdump
,pdfdump
)
python setup.py install
。C\MikTex2.8
,并将(INSTALLDIR)\miktex\bin
子目录添加到你的PATH
。图形(conversations
)
(INSTALLDIR)\ATT\Graphviz\bin
添加到你的PATH
。WEP 加密
:或。
指纹识别
。。如果使用默认安装目录,Scapy 应自动查找指纹文件。
Queso:。解压tar.gz
文件(例如使用 7-Zip)并将queso.conf
放入你的 Scapy 目录 conf.sniff_promisc = False
。voip_play()
函数不工作,因为他们通过/dev/dsp
输出声音,这在 Windows 上不可用。转载地址:http://vxwel.baihongyu.com/