qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 行业新闻 > 正文

Scapy 用以分析最底层网络数据包

奇岸开发
ahqian.com
10/29/2022
wechat

无需加好友免费技术支持

伴随着Python他在安全领域越来越流行与使用。比如,它能使用requests 控制模块创作Web要求专用工具;使用sockets撰写TCP网络通讯程序流程;适合于分析和形成字节流struct模块。在网络安全领域,分析与处理网络包更加普遍

我们也会使用tcpdump和wireshark(tshark)。可是,如果你想要自身写程序,你必须一个更灵活多变的系统语言(库),这也是文中要推荐的Scapy。

Scapy 用以分析最底层网络数据包Python模块和互动式程序流程抽象化外包装最底层包解决,使网络数据包解决比较简单。此类数据库系统可广泛用于网络安全领域,适合于分析和捕捉系统漏洞、数据泄漏、网络监管、入侵防御系统流量和。Scapy集成化大数据可视化和汇报形成,便捷显示结果和信息。

Scapy基本要素是明确提出根据行业特殊语言的表达有线格式(Wire Format)管理方法。

Scapy能通过pip安装:

pip install scapy

还可以通过发行版的包管理器组装,例如yum,但它的版本号很有可能太老了,早已落伍了。

可以直接从官方网库房clone源代码组装:

git clone github /secdev/scapy

随后,它能够简单的运作:

cd scapy

用Scapy非常简单的事就是念书PCAP下载文件Wireshark的sip-rtp-opus-hybrid.pcap 实例PCAP以数据包为例子:

用rdpcap()函数详细介绍PCAP载入内容的函数:

>>> pkts = rdpcap("sip-rtp-opus-hybrid.pcap")

>>> pkts

能够更详细的阅读文章PCAP可以用文档中的信息PcapReader从开启的文件句柄中迭代更新载入数据包,一次一包,bing实例对象:

>>> fd = open("sip-rtp-opus-hybrid.pcap", "rb")

>>> reader = PcapReader(fd)

>>> reader

>>> for CC in reader:

...: print(CC)

...:

>>> fd.close()

以上所显示,每一个数据包多以有线格式给予。Scapy 用网络层局部变量包囊每一个数据信息。Scapy层目标相匹配于网络协议书以及有线格式。

获得第一个数据包并查验它IP层是否可用:

>>> first= CC[0]

>>> first.haslayer(IP)

True

>>> IP in first

True

要分析来源于特殊层数据包,也可以根据标准的层开展引索,并容许Scapy打印出所有字段:

可以用16进制打印出数据包hexdump()作用:

>>> hexdump(first)

为了能彻底分析和导出数据包,必须调用show()方式:

>>> first.show()

能够得知,上边并没有高效的分析SI由于负荷Scapy二进制协议书关键解决 网络局部变量的比较低一部分,SIP可是,还可以导入第三方控制模块来分析一些网络层协议,比如HTTP协议书。

比如,大家可以载入事先捕捉的数据包PCAP如果想做一些数据包网络嗅探,假如系统软件打算在混合模式下应用网络插口,能够启用文档sniff()从网口获得一些数据包函数:

>>> for CC in sniff(count=5):

...: CC.show()

...:

Scapy可用于和Wireshark(tshark)、tcpdump 同样BPF词法过虑网络嗅探数据包和大多数别的专用工具适用:

>>> for CC in sniff(filter="udp", count=5):

...: CC.show()

...:

储存捕捉的数据包 PCAP 适合于进一步分析wrpcap()函数导出文件:

>>> capture = sniff(filter="udp", count=5)

>>> capture

>>> wrpcap("udp.pcap", capture)

网络数据包除获和分析)网络数据包外,Scapy还提供了形成各种各样积极出轨的数据包:网络扫描仪、网络服务器检验、根据推送进攻系统软件格式不正确要求等。

下边试着ping网络服务器涉及到向服务项目推送服务项目ICMP数据包:

>>> CC = IP(dst="XXX") / ICMP()

>>> CC.show()

随后调用sr1()函数能够推送一个函数ICMP数据包(即ping),等候数据包回到:

>>> rr=sr1(CC)

Begin emission:

Finished sending 1 packets.

...*

Received 4 packets, got 1 answers, remaining 0 packets

>>> rr

之上正确ICMP回应。

比如,完成好几个数据包和接受回应ping可以使用扫描仪)sr()作用。推送好几个数据包,但等候单独回应。也可以用sr1_flood()作用。

Scapy根据轻载了Python/操作符完成堆叠,不会再强制性按网络层顺序执行,从而达到预想的人力次序(这一点在一些评估和运用中非常有利)。

>>> CC=ICMP() / UDP() / IP() / IP()

>>> CC

>>>

>>> CC.show()

###[ ICMP ]###

type= echo-request

code= 0

chksum= None

id= 0x0

seq= 0x0

###[ UDP ]###

sport= domain

dport= domain

len= None

chksum= None

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= ipv4

chksum= None

src= 127.0.0.1

dst= 127.0.0.1

options

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= hopopt

chksum= None

src= 127.0.0.1

dst= 127.0.0.1

options

>>> hexdump(CC)

WARNING: No IP underlayer to compute checksum. Leaving null.

0000 08 00 F7 65 00 00 00 00 00 35 00 35 00 30 00 00 ...e...5.5.0..

0010 45 00 00 28 00 01 00 00 40 04 7C CF 7F 00 00 01 E..(...@.|...

0020 7F 00 00 01 45 00 00 14 00 01 00 00 40 00 7C E7 ...E...@.|.

0030 7F 00 00 01 7F 00 00 01

这主要目的是形成一切网络数据包(故意损坏)展开系统漏洞检测科学研究或者使用。自然,针对不太熟悉这一领域的消费者,强烈要求尽量不要试着,以免引起难题。

Scapy还支持根据PyX(要提前组装控制模块)数据可视化。能够导出数据包或数据包目录的图型(PostScript/PDF格式):

>>> xxCC[404].pdfdump(layer_shift=1)

>>> xxCC[404].psdump("/tmp/xxCC.eps",layer_shift=1)

运用函数fuzz()可以利用模糊不清模版和循环系统推送迅速搭建产生的随机测试值进行测试。在下列实例中,IP层正常的,UDP和NTP层被fuzz。UDP 校正将恰当,UDP 总体目标端口号要被接纳 NTP轻载为123,并且NTP版本号将被强行为4,全部别的端口号要被动态随机:

send(IP(dst="target")/fuzz(UDP()/NTP(version=4)),loop=1)

...^C

Sent 16 packets.

这儿阐述了一些毛遂自荐的前提Scapy自然,那只是主要用途scapy冰山一角巨大的作用,请见政府文件。

据小虫孰知,目前已用了一些专用工具scapy包:

Trackerjacker: WiFi网络映射器

Wifiphisher: Wifi创建连接点的一种手段

Sshame:SSH 公匙暴力破解器

ISF:应用工业系统的架构。

还有一些更独特的用处必须你hacker进一步探寻。

热度338

了解更多Scapy 用以分析最底层网络数据包欢迎联系奇岸开发客服。

奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

微信二维码

微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

精彩推荐

猜你喜欢