下載下傳和安裝
譯者: 飛龍 原文: Download and Installation 協定: CC BY-NC-SA 4.0
概覽
- 安裝 Python 2.5。
- 下載下傳并安裝 Scapy。
- (對于非Linux平台):安裝
和libpcap
及其 Python 包裝器。libdnet
- (可選):安裝用于特殊功能的其他軟體。
- 使用 root 權限運作 Scapy。
每個步驟可以以不同的方式完成,具體取決于你的平台和要使用的 Scapy 版本。
目前,Scapy 有兩個不同版本:
- Scapy v1.x。它隻包含一個檔案,并适用于 Python 2.4,是以它可能更易于安裝。 此外,你的作業系統可能已經含有一個為之特别準備的包或端口。 最後一個版本是 v1.2.2。
- Scapy v2.x。目前的開發版本增加了多個功能(例如 IPv6)。 它包括以
标準方式打包的幾個檔案。 Scapy v2 需要 Python 2.5。distutils
注意:在 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 倉庫:
- 安裝 Mercurial 版本控制系統,例如,在 Debian/Ubuntu 下執行:
或者在 OpenBSD 上:$ sudo apt-get install mercurial
$ pkg_add mercurial
- 克隆 Scapy 倉庫:
$ hg clone http://hg.secdev.org/scapy
- 以
标準方式來安裝 Scapy:distutils
$ 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(開發倉庫)。 它不需要
libpcap
或
libdnet
用于特殊功能的可選軟體
對于某些特殊功能,你必須安裝更多軟體。 有關如何安裝這些包的平台特定說明,請參見下一節。 這裡是涉及的主題和一些例子,你可以使用它們來嘗試是否能夠安裝成功。
- 繪圖。
需要 Gnuplot-py ,它需要 GnuPlot NumPyplot()
>>> p=sniff(count=50) >>> p.plot(lambda x:len(x))
- 2D 圖形。
psdump()
PyX ,而這需要一個 LaTeX 分發版 。 要以互動方式檢視 PDF 和 PS 檔案,你還需要 Adobe Reader (pdfdump()
)和 gvacroread
)。gv
>>> p=IP()/ICMP() >>> p.pdfdump("test.pdf")
- 圖形。
Grapviz ImageMagickconversations()
>>> p=readpcap("myfile.pcap") >>> p.conversations(type="jpg", target="> test.jpg")
- 3D 圖形。
VPythontrace3D()
>>> a,u=traceroute(["www.python.org", "google.com","slashdot.org"]) >>> a.trace3D()
- WEP 解密。
PyCrypto 。例子中使用了 Weplap 測試檔案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 。你需要支援第一代指紋識别的 老版本 (v4.23 之前)。nmap_fp()
>>> 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。
SoXvoip_play()
平台特定指南
Linux 原生
Scapy 可以在 Linux 上原生運作,不需要
libdnet
libpcap
安裝 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
$ 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
python-2.5.4.msi
。安裝後,将 Python 安裝目錄及其python-2.6.3.msi
子目錄添加到Scripts
。根據你的 Python 版本,預設值分别是PATH
C:\ Python25
C:\Python25\Scripts
C:\Python26
C:\Python26\Scripts
- Scapy :來自 Mercurial 倉庫 的 最新開發版本 。解壓縮歸檔檔案,在該目錄中打開指令提示符并運作
python setup.py install
- pywin32
pywin32-214.win32-py2.5.exe
pywin32-214.win32-py2.6.exe
- WinPcap
。你可能需要選擇WinPcap_4_1_1.exe
(在啟動時自動啟動 WinPcap 驅動程式),以便非特權使用者可以嗅探,特别是在 Vista 和 Windows 7 下。如果要使用以太網供應商資料庫來解析 MAC 位址或使用[x] Automatically start the WinPcap driver at boot time
指令,請下載下傳已經包含 WinPcap 的 Wireshark。wireshark()
- pypcap
pcap-1.1-scapy-20090720.win32-py25.exe
。這是 Scapy 的特殊版本,因為原始版本會導緻一些時序問題。現在在 Vista 和 Windows 7 上也可工作。在 Vista/Win7 下,右鍵單擊安裝程式并選擇pcap-1.1-scapy-20090720.win32-py2.6.exe
(以管理者身份運作)。Run as administrator
- libdnet
dnet-1.12.win32-py2.5.exe
。在 Vista/Win7 下,右鍵單擊安裝程式,選擇dnet-1.12.win32-py2.6.exe
Run as administrator
- pyreadline
pyreadline-1.5-win32-setup.exe
隻需下載下傳檔案并運作安裝程式。選擇預設安裝選項應該會安全。
為了友善起見,連結中直接給出了我使用的版本(對于 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
-
。 解壓 zip 檔案(例如到gp420win32.zip
),并将c:\gnuplot
目錄添加到gnuplot\bin
PATH
-
numpy-1.3.0-win32-superpack-python2.5.exe
。 Gnuplot-py 1.8 需要 NumPy。numpy-1.3.0-win32-superpack-python2.6.exe
-
。 解壓到臨時目錄,打開指令提示符,進入臨時目錄并鍵入gnuplot-py-1.8.zip
python setup.py install
2D 圖形(
psdump
,
pdfdump
-
PyX-0.10.tar.gz
python setup.py install
- MikTeX MiKTeX 2.8 基本安裝程式 。 PyX 需要安裝 LaTeX 。 選擇一個不帶空格的安裝目錄(例如
,并将C\MikTex2.8
子目錄添加到你的(INSTALLDIR)\miktex\bin
PATH
圖形(
conversations
- Graphviz
。将graphviz-2.24.exe
添加到你的(INSTALLDIR)\ATT\Graphviz\bin
PATH
WEP 加密
pycrypto-2.1.0.win32-py2.5.zip
pycrypto-2.1.0.win32-py2.6.zip
指紋識别
nmap-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()
輸出聲音,這在 Windows 上不可用。/dev/dsp