1. 程式人生 > >scapy:網路資料包操作

scapy:網路資料包操作

scapy 是具有超強功能的資料包操作工具,不僅具有無數個協議的解碼功能,還可以 傳輸修改後的資料包.scapy的最大特點就是可以執行多種功能。例如:建立網路掃描、資料包轉儲、資料包攻擊時需要利用多個不同的工具,而只要一個scapy就夠了。

Welcome to Scapy (2.3.2)
>>> lsc()
arpcachepoison      : Poison target's cache with (your MAC,victim's IP) couple

arping              : Send ARP who-has requests to determine which hosts are up檢視主機的活動狀態

bind_layers         : Bind 2
layers on some specific fields' values 將特定欄位值繫結在2layer bridge_and_sniff : Forward traffic between two interfaces and sniff packets exchanged corrupt_bits : Flip a given percentage or number of bits from a string corrupt_bytes : Corrupt a given percentage or number of bytes from a string
defrag : defrag(plist) -> ([not fragmented], [defragmented], defragment : defrag(plist) -> plist defragmented as much as possible dyndns_add : Send a DNS add message to a nameserver for "name" to have a new "rdata"利用新"rdata"向名稱伺服器傳輸“name”相關資訊 dyndns_del : Send a DNS delete message to
a nameserver for "name"向名稱伺服器傳輸有關“name”的DNS 刪除資訊 etherleak : Exploit Etherleak flaw利用 Etherleak 漏洞 fletcher16_checkbytes: Calculates the Fletcher-16 checkbytes returned as 2 byte binary-string. fletcher16_checksum : Calculates Fletcher-16 checksum of the given buffer. fragment : Fragment a big IP datagram 分割大的IP 資料資訊 fuzz : Transform a layer into a fuzzy layer by replacing some default values by random objects getmacbyip : Return MAC address corresponding to a given IP address 顯示特定IP的mac地址 hexdiff : Show differences between 2 binary strings 顯示二進位制符號串的差異 hexdump : -- hexedit : -- is_promisc : Try to guess if target is in Promisc mode. The target is provided by its ip. 檢視猜測物件網絡卡是不是混雜模式 linehexdump : -- ls : List available layers, or infos on a given layeri顯示當前支援的層次資訊 promiscping : Send ARP who-has requests to determine which hosts are in promiscuous mode為檢視混雜模式主機而傳送ARP請求 rdpcap : Read a pcap file and return a packet list 讀取pcap資料並顯示資料包列表 send : Send packets at layer 3 sendp : Send packets at layer 2 sendpfast : Send packets at layer 2 using tcpreplay for performance 為測試layer2的效能而利用tcpreplay傳輸資料包 sniff : Sniff packets 嗅探資料包 split_layers : Split 2 layers previously bound sr : Send and receive packets at layer 3傳輸並結束layer3資料包 sr1 : Send packets at layer 3 and return only the first answer傳輸layer3資料包後並顯示第一個迴應 srbt : send and receive using a bluetooth sockete利用藍芽套接字傳輸和接收資料包 srbt1 : send and receive 1 packet using a bluetooth socket利用藍芽套接字傳輸和接收一個數據包 srflood : Flood and receive packets at layer 3 srloop : Send a packet at layer 3 in loop and print the answer each time srp : Send and receive packets at layer 2 srp1 : Send and receive packets at layer 2 and return only the first answer srpflood : Flood and receive packets at layer 2 srploop : Send a packet at layer 2 in loop and print the answer each time traceroute : Instant TCP traceroute tshark : Sniff packets and print them calling pkt.show(), a bit like text wireshark嗅探資料包後利用pkt.show()進行類似wireshark的輸出 wireshark : Run wireshark on a list of packets wrpcap : Write a list of packets to a pcap file 儲存為pcap檔案

檢視支援的層次形態時輸入:ls()

需要檢視scapy的環境設定時,輸入:conf
需要把iface的網路介面eth1 變為eth0時,只需要輸入命令:
conf.iface=’eth0’

利用sniff 轉儲資料包

預設的資料包轉儲命令:

sniff()

輸入sniff()不會發生任何的變化,但實際已處於資料包轉儲狀態要停止資料包轉儲是請執行 “Ctrl + c”
停止後顯示:

>>> sniff()
^C<Sniffed: TCP:2 UDP:0 ICMP:0 Other:0>

在這一階段為了更詳細的進行資料包轉儲,可以利用sniff以及filter選項選擇TCP/UDP/ICMP,而且通過count 選項指定需要轉儲的資料包。

>>> sniff(filter="tcp",count=15)
<Sniffed: TCP:15 UDP:0 ICMP:0 Other:0>

需要 轉儲特定IP資料包,可以使用命令:

>>> IP()
<IP  |>
>>> a=IP(dst="192.168.2.2")
>>> a.dst
'192.168.2.2'
>>> a.ttl
64
>>> 

設定好a 後:

sniff("a")

另一種方法是為需要轉儲的IP地址新增篩選器

sinff(filter="host 192.168.102.147")

轉儲的內容並沒有被包括到特定的變數,而是記錄在”_”中,使用
print _ 輸出內容
使用變數整理:

>>> b= _
>>> b.nsummary()

如果要檢視轉儲的資料包8

b[8]

想要樹狀結構表示匯出的結果,選擇show()選項

b[8].show()

需要用HEX表示轉儲資料包的16進位制時,使用hexdump()

hexdump(b[8])

scapy可以檢視IP路徑的traceroute功能

traceroute("google.com")

相關推薦

scapy:網路資料操作

scapy 是具有超強功能的資料包操作工具,不僅具有無數個協議的解碼功能,還可以 傳輸修改後的資料包.scapy的最大特點就是可以執行多種功能。例如:建立網路掃描、資料包轉儲、資料包攻擊時需要利用多個不同的工具,而只要一個scapy就夠了。 Welcome t

python應用系列教程——python使用scapy監聽網路資料、按TCP/IP協議進行解析

全棧工程師開發手冊 (作者:欒鵬) python使用scapy監聽抓取網路資料包。 scapy具有模擬傳送資料包、監聽解析資料包、網際網路協議解析、資料探勘等多種用處。這裡我們只來說一下scapy監聽資料包,並按照不同的協議進行解析。

Scapy 偽造網路資料

實驗說明 這裡說明的資料包偽造只是偽造資料包傳送的源地址。網路上有一些有人說可以對資料包內容的偽造(修改)和轉發,不過目前還沒找到這一點是如何完成的,甚至是在官方提供的文件上也沒有看到這一類操作的說明。 版權說明 目錄

深入淺出-網路七層模型&&網路資料

引言 今天回顧一下--網路七層模型&&網路資料包 網路基本概念 OSI模型 OSI 模型(Open System Interconnection model)是一個由國際標準化組織提出的概念模型,試圖供一個使各種不同的計算機和網路在世界範圍內實現互聯的標準框架。 它將計算機網路體系結

sk buff封裝和解封裝網路資料的過程詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux網路 - 資料的接收過程

轉自https://segmentfault.com/a/1190000008836467 本文將介紹在Linux系統中,資料包是如何一步一步從網絡卡傳到程序手中的。 如果英文沒有問題,強烈建議閱讀後面參考裡的兩篇文章,裡面介紹的更詳細。 本文只討論乙太網的物理網絡卡,不涉及虛擬裝置,並且

sk_buff封裝和解封裝網路資料的過程詳解

可以說sk_buff結構體是Linux網路協議棧的核心中的核心,幾乎所有的操作都是圍繞sk_buff這個結構體進行的,它的重要性和BSD的mbuf類似(看過《TCP/IP詳解 卷2》的都知道),那麼sk_buff是什麼呢?      

使用tcpdump+wireshark抓分析網路資料

最近和學弟在除錯一個GPRS通訊模組,需求是通過GPRS模組通過http協議傳送資料到伺服器,但是http協議一直失敗,伺服器返回400,通過查詢http狀態碼得知,http400錯誤是請求無效,因為GPRS模組沒有實現http協議的封裝,需要在TCP協議的基礎上,手動拼裝http格式的報文.所以初步猜測是h

Android網路資料的抓和分析

1. 手機獲得root許可權; 2. push tcpdump到 /; 3. chmod 755 tcpdump; 4. 抓包: adb shell tcpdump -s 0 -w /sdcard/capture.pcap 5. pull資料包到pc,使用wireshark

網路資料收發流程(一):從驅動到協議棧

早就想整理網路資料包收發流程了,一直太懶沒動筆。今天下決心寫了一、硬體環境intel82546:PHY與MAC整合在一起的PCI網絡卡晶片,很強大bcm5461:   PHY晶片,與之對應的MAC是TSECTSEC:      Three Speed Ethernet C

網路資料轉發過程

這篇文章講述了上網時資料包轉發的全過程,下面是電腦和網路裝置連線簡略圖:   以PC1 ping PC3為例講述資料包轉發過程: 1、當PC1 ping PC3時,發現它們的IP不在同一網段,PC1就

網路資料型別

型別一-------乙太網幀 EthernetV2幀頭結構為6bytes的源地址+6bytes的目標地址+2Bytes的協 議型別欄位+資料   型別二-----802.3/802.2幀 LLC is defined in ISO/IEC 8802-2:1998 SNAP

替代WinPcap的新型Windows網路資料截獲軟體——NPcap

Npcap介紹 Npcap是致力於採用Microsoft Light-Weight Filter (NDIS 6 LWF)技術和Windows Filtering Platform (NDIS 6 WFP)技術對當前最流行的WinPcap工具包進行改進的一個專案。Npc

【linux網路】linux核心網路資料流向圖

根據網路上搜集的資源以及檢視linux核心網路相關的程式碼,arvik繪製了一份linux核心網路資料包流向圖,該圖大致呈現了資料包從網絡卡進來以後到怎麼出網絡卡或者進入本地的流程 以及 本地資料怎麼流出網絡卡的流程。如下(linux核心版本3.10.36):

網路資料大小計算

1、資料鏈路層對資料幀的長度都有一個限制,也就是鏈路層所能承受的最大資料長度,這個值 稱為最大傳輸單元,即MTU。以乙太網為例,這個值通常是1500位元組。 2、對於IP資料包來講,也有一個長度,在IP包頭中,以16位來描述IP包的長度,也就是說, 一個IP包,最長可能是65535位元組。 3、結合以上兩個概

有關C#開發抓取、分析網路資料的程式碼段

 using   System;     using   System.Net;     using   System.Net.Sockets;     using   System.Runtime.InteropServices;     using   System.Wi

發現新大陸:一個最簡單的破解SSL加密網路資料的方法

1. 簡介相信能訪問到這篇文章的同行基本上都會用過流行的網路抓包工具WireShark,用它來抓取相應的網路資料包來進行問題分析或者其他你懂的之類的事情。一般來說,我們用WireShark來抓取包進行分析是沒有多大問題的。但這裡有個問題是,如果你碰到的是用SSL/TLS等加密

在已經截獲網路資料的情況下,做更新伺服器端的簡單WEB開發,請進。承諾RMB報酬,謝謝!

本人QQ:529615027  有一個程式,其實就是NP要更新,為了不讓NP更新,我想架設一個旁路伺服器,讓NP去我架設的伺服器更新資料。我截獲了NP更新的資料包。從資料包能看出原來伺服器的IP地址是218.6.139.196(其實IP有多個,更新程式使用的域名應該是np1

Linux traceroute --追蹤網路資料

通過traceroute我們可以知道資訊從你的計算機到網際網路另一端的主機是走的什麼路徑。當然每次資料包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統中,我們稱之為traceroute,在MSWi

Jpcap的學習筆記(五)如何使用JpcapCaptor例項來捕捉網路資料(上部)

 如何使用JpcapCaptor例項來捕捉網路資料包        當你通過開啟網絡卡裝置得到JpcapCaptor例項後,就可以利用它來捕捉網路資料包了。你可以利用以下兩種方法來捕捉網路資料包。第一