电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python使用scapy模塊發包收包

瀏覽:3日期:2022-06-20 13:29:27
前言

眾所周知,我們每天上網都會有很多數據包需要發送,然后處理在接受在發送,這樣一個循環往復的過程

Python使用scapy模塊發包收包

這里就顯示了很多數據包的發送接收數據,那什么是包呢?下面一起看看

包( packet )是網絡通信傳輸中的數據單位,一般稱之為數據包,其主要由源地址,目標地址,凈載數據組成

它包括包頭和包體,包頭是固定長度,包體長度不變

簡單了解下包的定義,下面我們來看看發包利器 scapy 的用法吧

一、常用命令

1、ls():顯示所有支持的數據包對象,可帶參數也可不帶,參數可以是任意具體的包

Python使用scapy模塊發包收包

可以看出,它包含了全部的內容,如果我們想詳細查看某個模塊中的內容,比如說我想查看 ARP ,tcp 的話了,可以這樣:

Python使用scapy模塊發包收包

在這里要告訴大家的是,我們必須要注意大小寫,ls(ARP)這樣才可以得出正確結果,ls(arp)是錯誤的。

2、lsc():列出所有函數

Python使用scapy模塊發包收包

滿屏的英文,我頭都是大的,不知道大家此時此刻是什么樣的心情,哈哈哈哈

3、hide_defaults():用來刪除一些用戶提供的那些和 default value 相同的項目

a=IP()print(a.hide_defaults())

4.display():可以簡單查看當前 packet 的各個參數的取值情況,

a=IP()a.display()

5.更多命令

命令 作用show_interfaces() 顯示網卡信息str(pkt) 組裝數據包hexdump(pkt)十六進制轉儲ls(pkt) 顯示出字段值的列表pkt.summary()一行摘要pkt.show() 針對數據包的展開視圖pkt.show2() 顯示聚合的數據包(例如,計算好了的校驗和)pkt.sprintf() 用數據包字段填充格式字符串pkt.decode_payload_as() 改變payload的decode方式pkt.psdump()繪制一個解釋說明的PostScript圖表pkt.pdfdump() 繪制一個解釋說明的PDFpkt.command() 返回可以生成數據包的Scapy命令nsummary() 同上,但規定了數據包數量conversations() 顯示一個會話圖表filter() 返回一個lambda過濾后的數據包列表hexdump() 返回所有數據包的一個hexdumpimport_hexcap() 將hexdump重新導入到Scapy中hexraw() 返回所有數據包Raw layer的hexdumppadding() 返回一個帶填充的數據包的hexdumpnzpadding() 返回一個具有非零填充的數據包的hexdumpplot() 規劃一個應用到數據包列表的lambda函數make table() 根據lambda函數來顯示表格traceroute('baidu.com') 查看IP路徑的traceroute功能export_object() 數據包轉換成base64編碼的Python數據結構import_object() 可以將輸出重新導入save_session() 保存所有的session變量load_session() 讀取保存的sessionfuzz() 更改一些默認的不被計算的值(比如校驗和checksums),更改的值是隨機的,但是是符合字段的值的。二、嗅探數據包

from scapy.all import *pkt = sniff(iface = 'Realtek PCIe GBE Family Controller',count = 3 ,filter=’tcp’,prn = lambda x: x.sprintf(’{IP:%IP.src%->%IP.dst%n}{Raw:%Raw.load%n}’))filter:過濾條件iface:網卡接口名稱count:數據包數量prn:回調函數,通常與lambda搭配使用sprintf()函數控制輸入信息抓取源地址為192.168.3.3的端口為80的tcp報文:sniff(filter='ip src 192.168.3.3 and tcp and tcp port 80', prn=lambda x:x.summary())抓取目的地址網段為192.168.3.3/24的報文:sniff(filter='dst net 192.168', prn=lambda x:x.summary())抓取非ICMP的報文:sniff(filter='not icmp', prn=lambda x:x.summary())將抓取到的報文的summary打印出來:sniff(filter='icmp', prn=lambda x:x.summary(), count=10)將所有IP報文的源地址打印出來:sniff(filter='icmp', prn=lambda x:x[IP].src, count=10)三、構造數據包

pkt= Ether()/IP(dst=’192.168.1.2’)/TCP(dport=80)

提到數據包,不得不說各個協議了,提到協議,又自然而然想到了 osi 七層模型

OSI 七層網絡模型 TCP/IP 四層概念模型 對應網絡協議 應用層(Application) 應用層 HTTP、TFTP, FTP, NFS, WAIS、SMTP 表示層(Presentation) 應用層 Telnet, Rlogin, SNMP, Gopher 會話層(Session) 應用層 SMTP, DNS 傳輸層(Transport) 傳輸層 TCP, UDP 網絡層(Network) 網絡層 IP, ICMP, ARP, RARP, AKP, UUCP 數據鏈路層(Data Link) 數據鏈路層 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP 物理層(Physical) 數據鏈路層 IEEE 802.1A, IEEE 802.2到IEEE 802.11

以上便是各個網絡協議對應的 osi 模型,那么各個協議的用法是怎樣的了,下面我們一起來看下

四、各個協議用法

1、構造一個 IP 包,并傳入一些參數

#構造一個 IP 包,并傳入一些參數pkt = IP(dst='192.168.1.2',ttl=10)ls(pkt) version:版本號ihl:頭長度tos:服務類型len:IP數據包總長id:標識符flags:標記flag:片偏移ttl:生存時間proto:協議類型chksum:頭部校驗src:源IP地址dst:目的IP地址options:可選項

2、構造ARP包

#構造ARP包ARP(op=1, hwdst='ff:ff:ff:ff:ff:ff', pdst=ip_address)#arp類的構造函數列表:ls(ARP)hwtype : XShortField = (1) 值為1表示以太網地址,其它還可能表示令牌環地址ptype : XShortEnumField = (2048) 0x0800表示IP地址,其它還可能是ICMP/IGMPhwlen : ByteField = (6) ARP報文中,它的值為6plen : ByteField = (4) ARP報文中,它的值為4op : ShortEnumField = (1) 取值為1或者2,代表ARP請求或者響應包。1.ARP請求,2.ARP應答,3.RARP請求,4.RARP應答 hwsrc : ARPSourceMACField = (None) 發送方Mac地址。psrc : SourceIPField= (None) 發送方IP地址。hwdst : MACField = (’00:00:00:00:00:00’) 目標Mac地址。pdst : IPField = (’0.0.0.0’) 目標IP地址。

3、構造Ether

#構造EtherEther(dst='ff:ff:ff:ff:ff:ff')ls(Ether)dst: DestMACField = (None) 目的MACsrc: SourceMACField = (None) 源MACtype : XShortEnumField = (36864)構造一個以太網數據包通常需要指定目標和源MAC地址,如果不指定,默認發出的就是廣播包ff:ff:ff:ff:ff:ff

4、構造TCP包

#構造TCP包sport : ShortEnumField = 20 (20) 目標端口dport : ShortEnumField = 80 (80) 源端口seq: IntField = 0 (0)ack: IntField = 0 (0)dataofs : BitField (4 bits) = None (None)reserved : BitField (3 bits) = 0 (0)flags : FlagsField (9 bits) = <Flag 2 (S)> (<Flag 2 (S)>)window : ShortField = 8192 (8192)chksum : XShortField = None (None)urgptr : ShortField = 0 (0)options : TCPOptionsField = [] (b’’)五、發包,收包

可分為兩種情況,用法如下:

1、只發不收

send(pkt, inter=0, loop=0, count=1, iface=N) pkt:數據包inter:發包間隔時間count:發包數量iface:網卡接口名稱send(),在第三層發包,沒有接收功能;send(IP(dst='www.baidu.com',ttl=2)/ICMP())sendp(),在第二層發包,沒有接收功能。sr(Ether()/IP(dst=www.baidu.com))

2、發包且收包

sr()和sr1()都是在第三層發包,sr1表示只接收第一個回復。sr(IP(dst='www.baidu.com',ttl=(1,4))/TCP(dport=[21,23,80],flags='S')) 返回兩個值sr1(IP(dst='www.baidu.com',ttl=(1,4))/ICMP()) srloop(IP(dst='www.baidu.com',ttl=1)/ICMP()) #不停的ping百度srloop(IP(dst='www.baidu.com',ttl=1)/ICMP(),inter=3,count=2) #每隔3秒ping一次,一共執行兩次#inter表示間隔,count記錄次數srp()和srp1()都是根據第二層發包,srp1表示只接收第一個回復srp(Ether()/IP(dst='www.baidu.com'))srp1(Ether()/IP(dst=www.baidu.com))六、SYN半開式掃描

當 TCP 鏈接指定端口時,flags 參數設為 S 時則為半開式掃描,若此時該端口處于監聽狀態,返回 syn/ack,否則返回 rst/ack

sr1(IP(dst='192.168.1.2')/TCP(dport=80,flags='S'))七、數據包序列化,反序列化

序列化:將數據包對象保存為 pcap 文件

反序列化:讀取 pcap 文件中的內容

pkt= Ether()/IP(dst=’192.168.1.2’)/TCP(dport=80)#將嗅探到的數據包內容寫到pcap文件中 wrpcap('hw.pcap',pkt)#讀取pcap文件。read=rdpcap(’hw.pcap’)print(read[1])#打印嗅探到的包的數據八、數據包與字符串轉換

更加直觀清晰的分析數據。

zfc= str(pkts[0]) z= Ether(zfc)九、導入導出 base64 編碼

為了方便我們對數據進行加密而發明的一種方式

export_object(str(pkts[0])) 導出數據包new_Pkt = import_object() #將上一步導出的字符串填入十、離線數據包的解析

如果我們捕獲到數據包,未聯網的情況下如何解析呢?

現在就可以使用我們的離線數據包分析數據了:

sniff(offline = 'hw.pcap')#離線數據包總結

通過上面的學習,我們對 scapy 算是有了一個基礎性的認識了,scapy 的確很強大,簡單的幾行命令就能實現發包收包,極大的節省了我們的開發時間

如果你深入學習它的每個命令,你會發現更多有趣的事情,當然這么強大的工具可不要拿來做壞事哦!

以上就是Python使用scapy模塊發包收包的詳細內容,更多關于Python用scapy模塊發包收包的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 高硼硅玻璃|水位计玻璃板|光学三棱镜-邯郸奥维玻璃科技有限公司 高温高压釜(氢化反应釜)百科 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 爆炸冲击传感器-无线遥测传感器-航天星百科 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 气动球阀_衬氟蝶阀_调节阀_电动截止阀_上海沃托阀门有限公司 | 轴流风机-鼓风机-离心风机-散热风扇-罩极电机,生产厂家-首肯电子 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 百度网站优化,关键词排名,SEO优化-搜索引擎营销推广 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 |