導航:首頁 > 編程語言 > pythondpkt教程

pythondpkt教程

發布時間:2022-06-28 18:43:37

python怎麼直接在數據鏈路層發送數據

使用python的socket模塊,在建立socket時選擇RAW模式:
s = socket(AF_PACKET, SOCK_RAW)
此時,s.send()函數的輸入值應包含目的MAC地址,源MAC地址,協議類型,負載。

Ⅱ Python滲透測試工具都有哪些

網路

Scapy, Scapy3k: 發送,嗅探,分析和偽造網路數據包。可用作互動式包處理程序或單獨作為一個庫

pypcap, Pcapy, pylibpcap: 幾個不同 libpcap 捆綁的python庫

libdnet: 低級網路路由,包括埠查看和乙太網幀的轉發

dpkt: 快速,輕量數據包創建和分析,面向基本的 TCP/IP 協議

Impacket: 偽造和解碼網路數據包,支持高級協議如 NMB 和 SMB

pynids: libnids 封裝提供網路嗅探,IP 包碎片重組,TCP 流重組和埠掃描偵查

Dirtbags py-pcap: 無需 libpcap 庫支持讀取 pcap 文件

flowgrep: 通過正則表達式查找數據包中的 Payloads

Knock Subdomain Scan: 通過字典枚舉目標子域名

SubBrute: 快速的子域名枚舉工具

Mallory: 可擴展的 TCP/UDP 中間人代理工具,可以實時修改非標准協議

Pytbull: 靈活的 IDS/IPS 測試框架(附帶超過300個測試樣例)

調試和逆向工程

Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH

Immunity Debugger: 腳本 GUI 和命令行調試器

mona.py: Immunity Debugger 中的擴展,用於代替 pvefindaddr

IDAPython: IDA pro 中的插件,集成 Python 編程語言,允許腳本在 IDA Pro 中執行

PyEMU: 全腳本實現的英特爾32位模擬器,用於惡意軟體分析

pefile: 讀取並處理 PE 文件

pydasm: Python 封裝的libdasm

PyDbgEng: Python 封裝的微軟 Windows 調試引擎

uhooker: 截獲 DLL 或內存中任意地址可執行文件的 API 調用

diStorm: AMD64 下的反匯編庫

python-ptrace: Python 寫的使用 ptrace 的調試器

vdb/vtrace: vtrace 是用 Python 實現的跨平台調試 API, vdb 是使用它的調試器

Androguard: 安卓應用程序的逆向分析工具

Capstone: 一個輕量級的多平台多架構支持的反匯編框架。支持包括ARM,ARM64,MIPS和x86/x64平台

PyBFD: GNU 二進制文件描述(BFD)庫的 Python 介面

Fuzzing

Sulley: 一個模糊器開發和模糊測試的框架,由多個可擴展的構件組成的

Peach Fuzzing Platform: 可擴展的模糊測試框架(v2版本 是用 Python 語言編寫的)

antiparser: 模糊測試和故障注入的 API

TAOF: (The Art of Fuzzing, 模糊的藝術)包含 ProxyFuzz, 一個中間人網路模糊測試工具

untidy: 針對 XML 模糊測試工具

Powerfuzzer: 高度自動化和可完全定製的 Web 模糊測試工具

SMUDGE: 純 Python 實現的網路協議模糊測試

Mistress: 基於預設模式,偵測實時文件格式和偵測畸形數據中的協議

Fuzzbox: 媒體多編碼器的模糊測試

Forensic Fuzzing Tools: 通過生成模糊測試用的文件,文件系統和包含模糊測試文件的文件系統,來測試取證工具的魯棒性

Windows IPC Fuzzing Tools: 使用 Windows 進程間通信機制進行模糊測試的工具

WSBang: 基於 Web 服務自動化測試 SOAP 安全性

Construct: 用於解析和構建數據格式(二進制或文本)的庫

fuzzer.py(feliam): 由 Felipe Andres Manzano 編寫的簡單模糊測試工具

Fusil: 用於編寫模糊測試程序的 Python 庫

Web

Requests: 優雅,簡單,人性化的 HTTP 庫

HTTPie: 人性化的類似 cURL 命令行的 HTTP 客戶端

ProxMon: 處理代理日誌和報告發現的問題

WSMap: 尋找 Web 伺服器和發現文件

Twill: 從命令行界面瀏覽網頁。支持自動化網路測試

Ghost.py: Python 寫的 WebKit Web 客戶端

Windmill: Web 測試工具幫助你輕松實現自動化調試 Web 應用

FunkLoad: Web 功能和負載測試

spynner: Python 寫的 Web瀏覽模塊支持 Javascript/AJAX

python-spidermonkey: 是 Mozilla JS 引擎在 Python 上的移植,允許調用 Javascript 腳本和函數

mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台介面實時檢查和編輯網路流量

pathod/pathoc: 變態的 HTTP/S 守護進程,用於測試和折磨 HTTP 客戶端

Ⅲ python在windows平台上有哪些比較好的UI自動化測試工具

Python有許多有用的內建模塊(os,subprocess,socket,urllib,httplib,re,sys等等)和第三方模塊(cymruwhois,scapy,dpkt,spider等等).使用Python模塊很簡單」import 」
OS模塊是非常重要的因為你需要在你的Python代碼裡面調用系統命令 !

Ⅳ 在linux下,python怎麼才能抓到網卡上的所有TCP數據包

Ethereal 自帶許多協議的 decoder,簡單,易用,基於winpcap的一個開源的軟體.但是它的架構並不靈活,如何你要加入一個自己定義的的解碼器,得去修改 Ethereal的代碼,再重新編譯,很煩瑣.對於一般的明文 協議,沒有什麼問題,但是對於加密協議,比如網路游戲,客戶端程序一般會在剛連接上的時候,發送一個隨機密鑰,而後的報文都會用這個密鑰進行加密,如此. 要想破解,得要有一個可編程的抓包器.
libpcap是一個不錯的選擇,但是對於抓包這樣需要反復進行」試 驗->修改」這個過程的操作,c 語言顯然不是明智的選擇.
Python提供了幾個libpcapbind。在windows平台上,你需要先安裝winpcap,如果你已經安裝了Ethereal非常好用
一個規范的抓包過程
import pcap
import dpkt
pc=pcap.pcap() #注,參數可為網卡名,如eth0
pc.setfilter('tcp port 80') #設置監聽過濾器
for ptime,pdata in pc: #ptime為收到時間,pdata為收到數據
print ptime,pdata #...
對抓到的乙太網V2數據包(raw packet)進行解包
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if data.dport==80:
print p.data.data.data # by gashero
一些顯示參數
nrecv,ndrop,nifdrop=pc.stats()
返回的元組中,第一個參數為接收到的數據包,(by gashero)第二個參數為被核心丟棄的數據包。

Ⅳ python 在windows下有沒有類似於zio的模塊,可以打開本地程序或者tcp連接到遠程的埠,實現命令行交互

試試python的DPKT模塊,主要是網路編程方面的

Ⅵ 如何利用Python嗅探數據包

一提到Python獲取數據包的方式,相信很多Python愛好者會利用Linux的libpcap軟體包或利用Windows下的WinPcap可移植版的方式進行抓取數據包,然後再利用dpkt軟體包進行協議分析,我們這里想換一個角度去思考:
1. Python版本的pcap存儲內存數據過小,也就是說緩存不夠,在高並發下容易發生丟包現象,其實C版本的也同樣存在這樣的問題,只不過Python版本的緩存實在是過低,讓人很郁悶。
2. dpkt協議分析並非必須,如果你對RFC 791和RFC 793等協議熟悉的話,完全可以使用struct.unpack的方式進行分析。
如果你平常習慣使用tcpmp抓取數據包的話,完全可以使用它來代替pcap軟體包,只不過我們需要利用tcpmp將抓取的數據以pcap格式進行保存,說道這里大家一定會想到Wireshark工具,具體命令如下:
1. tcpmp dst 10.13.202.116 and tcp dst port 80 -s 0 -i eth1 -w ../pcap/tcpmp.pcap -C 1k -W 5
我們首先需要對pcap文件格式有所了解,具體信息大家可以參考其他資料文檔,我這里只說其重要的結構體組成,如下:
1. sturct pcap_file_header
2. {
3. DWORD magic;
4. WORD version_major;
5. WORD version_minor;
6. DWORD thiszone;
7. DWORD sigfigs;
8. DWORD snaplen;
9. DWORD linktype;
10. }
11.
12. struct pcap_pkthdr
13. {
14. struct timeval ts;
15. DWORD caplen;
16. DWORD len;
17. }
18.
19. struct timeval
20. {
21. DWORD GMTtime;
22. DWORD microTime;
23. }
這里需要說明的一點是,因為在Python的世界裡一切都是對象,所以往往Python在處理數據包的時候感覺讓人比較麻煩。
至於對於如何監控tcpmp生成的pcap文件數據,大家可以通過pyinotify軟體包來實現(相信大家一定對於rsync+inotify的組合比較熟悉),如下:
1. class Packer(pyinotify.ProcessEvent):
2. def __init__(self, proct):
3. self.proct = proct
4. self.process = None
5.
6. def process_IN_CREATE(self, event):
7. logger.debug("create file: %s in queue" % self.process_IF_START_THREAD(event))
8.
9. def process_IN_MODIFY(self, event):
10. self.process_IF_START_THREAD(event)
11. logger.debug("modify file: %s in queue" % self.process_IF_START_THREAD(event))
12.
13. def process_IN_DELETE(self, event):
14. filename = os.path.join(event.path, event.name)
15. logger.debug("delete file: %s" % filename)
16.
17. def process_IF_START_THREAD(self, event):
18. filename = os.path.join(event.path, event.name)
19.
20. if filename != self.process:
21. self.process = filename
22. self.proct.put(filename)
23.
24. if self.proct.qsize() > 1:
25. try:
26. logger.debug("create consumer proct.qsize: %s" % self.proct.qsize())
27. consumer = Consumer(self.proct)
28. consumer.start()
29. except Exception, errmsg:
30. logger.error("create consumer failed: %s" % errmsg)
31.
32. return filename
33.
34. class Factory(object):
35. def __init__(self, proct):
36. self.proct = proct
37. self.manager = pyinotify.WatchManager()
38. self.mask = pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY
39.
40. def work(self):
41. try:
42. try:
43. notifier = pyinotify.ThreadedNotifier(self.manager, Packer(self.proct))
44. notifier.start()
45. self.manager.add_watch("../pcap", self.mask, rec = True)
46. notifier.join()
47. except Exception, errmsg:
48. logger.error("create notifier failed: %s" % errmsg)
49. except KeyboardInterrupt, errmsg:
50. logger.error("factory has been terminated: %s" % errmsg)
在獲得要分析的pcap文件數據之後,就要對其分析了,只要你足夠了解pcap文件格式就可以了,對於我們來講只需要獲得TCP數據段的數據即可,如下:
1. class Writer(threading.Thread):
2. def __init__(self, proct, stack):
3. threading.Thread.__init__(self)
4. self.proct = proct
5. self.stack = stack
6.
7. self.pcap_pkthdr = {}
8.
9. def run(self):
10. while True:
11. filename = self.proct.get()
12. try:
13. f = open(filename, "rb")
14. readlines = f.read()
15. f.close()
16. offset = 24
17. while len(readlines) > offset:
18. self.pcap_pkthdr["len"] = readlines[offset+12:offset+16]
19. try:
20. length = struct.unpack("I", self.pcap_pkthdr["len"])[0]
21. self.stack.put(readlines[offset+16:offset+16+length])
22. offset += length + 16
23. except Exception, errmsg:
24. logger.error("unpack pcap_pkthdr failed: %s" % errmsg)
25. except IOError, errmsg:
26. logger.error("open file failed: %s" % errmsg)
在獲得TCP數據段的數據包之後,問題就簡單多了,根據大家的具體需求就可以進行相應的分析了,我這里是想分析其HTTP協議數據,同樣也藉助了dpkt軟體包進行分析,如下:
1. def worker(memcache, packet, local_address, remote_address):
2. try:
3. p = dpkt.ethernet.Ethernet(packet)
4. if p.data.__class__.__name__ == "IP":
5. srcip = "%d.%d.%d.%d" % tuple(map(ord, list(p.data.src)))
6. dstip = "%d.%d.%d.%d" % tuple(map(ord, list(p.data.dst)))
7. if p.data.data.__class__.__name__ == "TCP":
8. tcpacket = p.data.data
9. if tcpacket.dport == 80 and dstip == local_address:
10. srcport = tcpacket.sport
11. key = srcip + ":" + str(srcport)
12. if tcpacket.data:
13. if not memcache.has_key(key):
14. memcache[key] = {}
15.
16. if not memcache[key].has_key("response"):
17. memcache[key]["response"] = None
18.
19. if memcache[key].has_key("data"):
20. memcache[key]["data"] += tcpacket.data
21. else:
22. memcache[key]["data"] = tcpacket.data
23. else:
24. if memcache.has_key(key):
25. memcache[key]["response"] = dpkt.http.Request(memcache[key]["data"])
26. try:
27. stackless.tasklet(connection)(memcache[key]["response"], local_address, remote_address)
28. stackless.run()
29. except Exception, errmsg:
30. logger.error("connect remote remote_address failed: %s", errmsg)
31. logger.debug("old headers(none content-length): %s", memcache[key]["response"])
32. memcache.pop(key)
33. except Exception, errmsg:
34. logger.error("dpkt.ethernet.Ethernet failed in worker: %s", errmsg)
如果大家只是想單純的獲取IP地址、埠、流量信息,那麼問題就更簡單了,這里只是拋磚引玉。

Ⅶ 請問python的pcap和dpkt兩個模塊你是怎麼安裝的,我安裝不上。

我最後沒裝 因為我也用不了

Ⅷ 一個完整的UI自動化測試(Python)必須有什麼部分

Python有許多有用的內建模塊(os,subprocess,socket,urllib,httplib,re,sys等等)和第三方模塊(cymruwhois,scapy,dpkt,spider等等).使用Python模塊很簡單」import 」
OS模塊是非常重要的因為你需要在你的Python代碼裡面調用系統命令 !

Ⅸ python2.7 怎麼進行抓包和解包

1、抓包,可以下載winpcapy 或者自己載入winpcap動態庫
2、解包,使用dpkt解析
參考程序,基於進程抓包QPA工具

Ⅹ 使用pip命令安裝dpkt模塊時出現無法安裝的情況。(系統提示python setup.py egg_info命令出現錯誤)

只能說醉了,dpkt只支持2.6、2.7:

閱讀全文

與pythondpkt教程相關的資料

熱點內容
不去互聯網程序員 瀏覽:550
電腦qq郵箱解壓的圖片保存在哪裡 瀏覽:544
嵌入命令行 瀏覽:91
檔案為什麼被加密 瀏覽:485
十天學會單片機13 瀏覽:875
榮耀怎麼設置讓app一直運行 瀏覽:993
共享文件夾能在哪裡找到 瀏覽:435
旅遊訂旅店用什麼app 瀏覽:239
一個女程序員的聲音 瀏覽:496
魔術app怎麼用 瀏覽:340
單片機有4個8位的io口 瀏覽:897
win10rar解壓縮軟體 瀏覽:169
plc教程pdf 瀏覽:668
pythonshell清屏命令 瀏覽:279
檢測到加密狗注冊伺服器失敗 瀏覽:205
解壓後手機如何安裝 瀏覽:519
極客學院app為什麼下架 瀏覽:14
圖片批量壓縮綠色版 瀏覽:656
東北程序員帥哥 瀏覽:709
加密封條風噪小 瀏覽:975