Scapy基本使用

2021-09-08 13:56:49 字數 1738 閱讀 4775

scapy 是乙個強大的網路資料報操作工具。

>>> from scapy.all import *
>>> from scapy.all import *

>>> ip_package = ip(dst='www.163.com', ttl=80) #構造乙個ip包

>>> package = ip(dst='www.163.com')/tcp(dport=80)/"get / http/1.1\r\n\r\n" #構造tcp包

>>> package #顯示包的內容

>>

scapy 提供了兩個函式來傳送資料報:send() 以及 sendp()。

send() :作用於第三層也就是網路層,也就是說它會幫你處理掉路由以及下面兩層(即物理層和鏈路層)。

sendp(): 作用於第二層。

當指定管關鍵字引數 return_packets 為 true 是會返回傳送的包列表。

sr 函式負責傳送資料報並接收應答,返回值是一對資料報以及其應答,還包括沒有被應答的資料報,所以一共有兩個列表。

sr1 函式是上面的乙個變種,只返回乙個應答資料報列表。這些傳送的資料報必須位於第三層之上(ip、arp 等等)。

srp 函式和 sr 類似,但是作用於第二層之上,如果沒有任何響應,則當到達超時時間的時候將得到乙個 none 的值。

scapy 可以讀取 pcap 檔案以及往 pcap 檔案寫入包資料

>>> a = rdpcap("/spare/captures/isakmp.cap")

>>> a

# 或者

>>> a = sniff(offline="isakmp.cap")

使用 scapy 進行嗅探操作,最核心的函式即是 sniff。它有一些常用的入參,如下表所示:

count	需要捕獲的包的個數,0 代表無限

store 是否需要儲存捕獲到的包

filter 指定嗅探規則過濾,遵循 bpf (伯克利封包過濾器)

timeout 指定超時時間

iface 指定嗅探的網路介面或網路介面列表,預設為 none,即在所有網路介面上嗅探

prn 傳入乙個可呼叫物件,將會應用到每個捕獲到的資料報上,如果有返回值,那麼它不會顯示

offline 從 pcap 檔案讀取包資料而不是通過嗅探的方式獲得

# 嗅探例項

python 安裝scapy 安裝scapy時出錯

好的,所以我正在嘗試為python3安裝scapy,但是我遇到了一些問題 當我輸入這個命令時 pip install scapy 這是輸出 collecting scapy using cached scapy 2.3.3.tgz unpack scapy 2.3.3.tgz the member ...

環境搭建 Scapy

scapy是python寫的乙個功能強大的互動式資料報處理程式,可用來傳送 嗅探 解析和偽造網路資料報,常常被用到網路攻擊和測試中。它可 以代替hping,arpspoof.arp sk,arping,p0f,甚至是部分nmap,tcpdump和tshark。一 scapy安裝 2 安裝 3 公升級...

scapy用法整理

scapy是乙個功能強大的基於python的互動式資料報處理程式和庫。它可以很容易地處理像掃瞄,tracerouting,探測,單元測試,攻擊或網路發現 可替代最經典的任務hping,85 nmap,arpspoof,arp sk,arping,tcpdump,wireshark,p0f等 它在大多...