scapy在python中被大量的使用,它主要處理和報文有關的東西。
pip install scapy
1.命令列輸入scapy,可以與之互動。
下面建立乙個資料報
>>> test=ip()
>>> test.src
'127.0.0.1'
>>> test.dst
'127.0.0.1'
>>> test.ttl
64
可以看見使用ip()建立了乙個資料報,它都會設有預設值。要設定值得時候,可以建立的時候就設定,如>>>test=ip(ttl=128)
或者建立之後更改
>>>test=ip()
>>>test.ttl=128
注意這裡ip要大寫。
/
這個符號起到組合得作用。當使用該操作符時,下層可以根據其上層,使它的乙個或多個預設欄位被過載。(您仍可以賦予您想要的值)乙個字串也可以被用作原料層(raw layer)。
osi七層:
應用層
表示層會話層
傳輸層網路層
資料鏈路層
物理層
from scapy.all import *
a=rdpcap("/root/desktop/1.pcapng")
for i in a:
if i.haslayer("tcp"):
info=i["tcp"].payload.original#the original payload is ***.payload.original
print(info.decode("utf8","ignore"))
a=ip()
a.psdump() #變成影象
a.pdfdump() #變成pdf
ls(pkt) 顯示出字段值的列表
pkt.command() 返回可以生成資料報的scapy命令
pkt.summary() 一行摘要
send和sendp都能傳送資料報,send()函式將會在第3層傳送資料報,而sendp()函式將會工作在第2層。選擇合適的介面和正確的鏈路層協議都取決於你。>>>send(ip())
sr()傳送和接收資料報。下面是示例:
sr1(ip(dst="www.nmap.org")/tcp(dport=80,flags="s"))
其中tcp的flags=」s「表示syn建立連線,補充一下(ack表示響應,fin表示關閉連線,rst表示重置,psh表示有data資料傳輸)。
report_ports()這個函式,可以自動化syn掃瞄。
a=report_ports("www.nmap.org",(79,81))
print(a)
掃瞄結果:
這是乙個函式,可以直接用。
traceroute(target="www.baidu.com",maxttl=30,dport=80)
help(sniff)一下,什麼都有。 Python學習 利用scapy庫實現ARP欺騙
一 本次測試的實驗環境 kali 受害機 ip 10.10.10.129 win2003 受害機 ip 10.10.10.130 閘道器 ip 10.10.10.2 二 如下 三 拓展 在kali中測試成功,哈哈哈。以上 僅僅只是,讓目標主機斷網,如果要想截獲一些有價值的東西,可以這行下面的操作 s...
安裝scapy遇到的問題
1.mac平台 在mac上安裝scapy可以說是困難重重,一來因為scapy實在有些小眾和老舊,再加上安裝說明文件都是python2.5 也沒有詳細說明一些安裝問題。折騰了大概三個小時之後終於解決了這個老大難。注 我的環境為anaconda2.3 python2.7.10 一,首先scapy依賴了以...
用Scapy解析TTL欄位的值
usr bin python coding utf 8 from scapy.all import import time import optparse 為避免ipy庫中的ip類與scapy庫中的ip類衝突,重新命名為iptest類 from ipy import ip as iptest ttl...