python 網路報文模擬和埠掃描庫 scapy的使用
轉載請註明:小五義 http://www.cnblogs.com/xiaowuyi
scapy是python寫的一個功能強大的互動式資料包處理程式,可用來發送、嗅探、解析和偽造網路資料包,常常被用到網路攻擊和測試中。它可
以代替hping,arpspoof.ARP SK,arping,p0f,甚至是部分nmap,Tcpdump和tshark。
一、scapy安裝
1、下載
從http://www.secdev.org/projects/scapy/下載release版本,這裡我下載的是(executable zip)
2、安裝
LINUX平臺:
將下載的壓縮檔案進行解壓,轉到解壓後的目錄,然後執行安裝。具體步驟如下:
$cd scapy-2.X (解壓後的目錄)
$sudo python setup.py install
windows平臺:
以python2.6為例,安裝時,需要安裝以下庫:
(1)Scapy,最新版本,解壓後,執行“”“python setup.py install”進行安裝
(2)pywin32:pywin32-214.win32-py2.6.exe
(3)winpcap:WinPcap_4_1_1.exe
(4)pypcap: pcap-1.1-scapy-20090720.win32-py2.6.exe
(5)libdnet:dnet-1.12.win32-py2.6.exe
(6)pyreadline: pyreadline-1.5-win32-setup.exe
具體下載地址請見:http://wikicode.net
3、升級
如果總是希望得到最新的版本,可以scapy的Mercurial庫:
(1)安裝Mercurial
$ sudo apt-get installl mercurial
(2)檢測scapy
$ hg clone http://hg.secdev.org/scapy
(3)安裝Scapy
$ cd scapy
$ sudo python setup.py install
邂逅,你就能夠總是升級到最新版本:
$ hg pull
$ hg update
$ sudo python setup.py install
二、執行
1、啟動
$ sudo scapy
或者
執行python後 import scapy
但要注意:
>>> from scapy import conf
會提出錯誤,要使用
>>> from scapy.all import conf
2.簡單的利用
生成四個IP的包,其中/30得到子網掩碼。如下:
Python 2.7.3 (default, Apr 10 2013, 05:09:49)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.all import *
WARNING: No route found for IPv6 destination :: (no default route?)
>>> IP()
<IP |>
>>> target="www.baidu.com"
>>> target="www.baidu.com/30"
>>> ip=IP(dst=target)
>>> ip
<IP dst=Net('www.baidu.com/30') |>
>>> [p for p in ip]
[<IP dst=61.135.169.104 |>, <IP dst=61.135.169.105 |>, <IP dst=61.135.169.106 |>, <IP dst=61.135.169.107 |>]
>>>