Scapy模組的學習

2021-09-25 07:12:34 字數 2106 閱讀 5625

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...