易风软件库12月9日消息,随着Python的日益普及,在平安范畴的使用也越来越多。例如,您可以运用请求模块编写一个工具来收回Web恳求;用套接字编写TCP网络通讯程序;解析和生成字节流可以运用struct模块。并且解析和处置网络分组在网络平安范畴更为罕见,通常
我们将运用tcpdump和wireshark(tshark)。但是,假如您想编写本身的程序实行处置,您需求一个更灵敏的言语包(库),这就是本文将引见的Scapy。
概述Scapy是一个Python模块和交互式程序,用于解析底层网络数据包。该程序对底层数据包实行笼统打包,使得网络数据包的处置变得十分复杂。该类库可普遍使用于网络平安范畴,可用于破绽应用、数据走漏、网络监控、入侵检测和流量剖析与捕捉。Scapy集成了数据可视化和报告生成,可以方便地显示后果和数据。
Scapy的根本思想是提出一种特定于范畴的言语,以便方便快捷地管理Wire格式。
运转Scapy可以经过pip装置:
pip装置scapy
也可以经过发行版的包管理器装置,比方yum,但是它的版本例如太老了,过时了。
也可以间接从官方仓库克隆源代码装置:
git克隆github /secdev/scapy
然后,您可以复杂地运转:
cd scapy
。/run_scapy
示例用法解析PCAP捕捉用Scapy做的最复杂的事情就是读取PCAP文件。让我们下载Wireshark的sip-rtp-opus-hybrid.pcap示例pcap数据包作为示例:
运用rdPCAP()函数引入PCAP文件并读取其内容:
& gt& gt& gtpkts = RDP cap(" sip-RTP-opus-hybrid . pcap ")
& gt& gt& gtpkts
& ltsip-RTP-opus-hybrid . pcap:TCP:0 UDP:7 ICMP:0 Other:0 & gt;
要更详细地读取PCAP文件中的数据,可以运用PcapReader从翻开的文件句柄中迭代读取数据包,一次读取一个数据包,bing实例化对象:
& gt& gt& gtFD = open(" sip-RTP-opus-hybrid . pcap "," rb ")
& gt& gt& gtreader = PCA reader(FD)
& gt& gt& gt读者
& ltscapy . utils . PCA reader at 0x7f 913 c7c 24 e 0 & gt;
& gt& gt& gt关于阅读器中的抄送:
...:打印(抄送)
...:
& gt& gt& gtfd.close()
如上所示,每个数据包都是以有线格式提供的。Scapy在网络层堆叠每个数据包。Scapy层对象对应于网络协议及其有线格式。
获取第一个数据包并反省IP层能否可用:
& gt& gt& gtfirst= CC
要以十六进制打印数据包,可以运用hexdump()函数:
& gt& gt& gthexdump(第一)
为了完全解析并完满输入数据包,您需求调用show()办法:
& gt& gt& gtfirst.show()
可以看出,以上未能无效地剖析SI负载。这是由于Scapy次要处置二进制协议网络堆栈的较低局部,而SIP不处置。但是可以引入第三方模块来解析一些使用层协议,比方HTTP协议。
例如,实时数据包捕捉剖析可以读取带有预捕捉数据包的PCAP文件。假如您想实行一些数据包嗅探,假如系统预备在混杂形式下运用网络接口,您可以调用sniff()从网卡获取一些数据包:
& gt& gt& gt关于嗅探中的CC(计数=5):
...:CC.show()
...:
Scapy还可以运用与Wireshark(tshark)和tcpdump相反的BPF语法来过滤嗅探到的数据包,并且许多其他工具支持:
& gt& gt& gt关于嗅探中的CC(filter = " UDP ",count=5):
...:CC.show()
...:
要将捕捉的数据包保管到PCAP文件中以供进一步剖析,可以运用wrpcap()函数导出到文件中:
& gt& gt& gt捕捉=嗅探(过滤器="udp ",计数=5)
& gt& gt& gt捕捉
& lt已嗅到:TCP:0 UDP:5 ICMP:0其他:0 & gt
& gt& gt& gtwrpcap("udp.pcap ",capture)
发送ping包可以嗅探(捕捉和解析)网络包,但是Scapy也支持为各种自动诈骗生成包:网络扫描、服务器探测、发送攻击系统格式错误的恳求等等。
这里有一个ping服务器的尝试,包括向服务发送一个internet控制音讯协议:
& gt& gt& gtCC = IP(dst="XXX") / ICMP()
& gt& gt& gtCC.show()
然后调用sr1()函数,可以发送一个互联网控制音讯协议(即ping)并等候前往包前往:
& gt& gt& gtrr=sr1(CC)
开端发射:
已发送完1个数据包。
...*
收到4个数据包,失掉1个答案,剩余0个数据包
& gt& gt& gt阻力比
以上失掉了正确的ICMP回复。
为了发送多个数据包和接纳呼应(例如,ping扫描),可以运用sr()函数。发送多个数据包,但等候单个呼应。还可以运用sr1_flood()函数。
协议层乱序Scapy经过重载Python“/”运算符完成层堆叠,不再强迫依照网络层顺序执行,从而到达预期的人为顺序(在一些测试和使用中很有用)。
& gt& gt& gtCC=ICMP() / UDP() / IP() / IP()
& gt& gt& gt抄送
& ltICMP | & ltUDP | & ltIP frag = 0 proto = ipencap | & ltIP | >;& gt& gt& gt
& gt& gt& gtCC.show()
###
它被设计为可以生成恣意网络数据包(成心损坏),用于破绽测试研讨或应用。当然,关于不熟习这一块的用户,激烈建议不要随便尝试,以免引提问题。
数据可视化Scapy还支持经过PyX对数据实行可视化(需求事后装置模块)。可以作为数据包或数据包列表输入的图形(PostScript/PDF格式):
& gt& gt& gtxxCC
模糊测试应用函数fuzz()可以经过疾速结构生成随机测试值,并运用模糊模板实行测试,循环发送。在上面的例子中,IP层是正常的,UDP和NTP层是模糊的。UDP校验和将是正确的,UDP目的端口将被NTP过载到123,NTP版本将被强迫为4,一切其他端口将被随机化:
send(IP(dst = " target ")/fuzz(UDP()/NTP(version = 4)),loop=1)
................C
发了16包。
综上所述,我们在这里引见scapy的一些根本用法。当然,这只是Scapy宏大功用中的冰山一角。更多用法请参考官方文档。
据Bug所知,有些工具曾经运用scapy包了:
Trackerjacker: WiFi网络映射器
Wifi fisher:Wifi接入点创立工具
Sshame:SSH公钥暴力解析器
ISF:工业系统的应用框架。
黑客需求进一步探究一些更特殊的用处。
以上就是今天所分享的内容了,更多行业知识、软件引荐、功能比照、工具测评请关注易风软件库。每天给大家带来更高效的企业服务软件,其中包括有礼想艺品,新南北,礼想,嗒米购,莱迪购,商盟讯,诚智通,淘一购,一点购,千语优选,城言,亲聊,聊购汇,乐享购,千语,新聚淘,博立购,深聊,苹果微信多开,安卓微信多开,探聊,惠趣购,易讯,友点赞,大麦购,古集优选,三秋,思语,纯净优选,淘个购,四季优选,搜货郎,探聊,聚通汇购等现如今热门社交软件,其中辅助功能有秒抢,避雷,埋雷软件,扫尾,单透软件等一些红包强项功能软件免费下载使用!