Scapy方法总结

极客

Scapy方法总结:从入门到实战,一篇让你少走弯路的血泪笔记!

说真的,刚接触Scapy那会儿,我整个人是懵的,网上教程东一块西一块,官方文档又写得跟天书似的,搞得我一度想放弃……但熬过那段阵痛期之后,我只能说:Scapy真香! 今天就把我踩过的坑、总结出来的Scapy方法总结全盘托出,希望能帮到正在摸索的你呀~

Scapy方法总结

先聊聊Scapy到底是个啥玩意儿?

简单粗暴地说,Scapy就是一个用Python写的交互式数据包操作程序,它能伪造、发送、嗅探、解析几乎任何协议的数据包,从ARP到TCP、从DNS到802.11,简直是个万能工具箱!比起Wireshark只能"看",Scapy能"看"还能"造",这才是它最迷人的地方嘛。

Scapy方法总结之核心构造方法

分层构造 —— 操作符

这个符号必须放第一位讲!Scapy用 来叠加协议层,IP()/TCP(),超级直观,我当初就是被这个设计惊艳到了,比那些要写一堆参数的库优雅太多啦。

show() 和 show2() 方法

构造完包不知道长啥样?pkt.show() 给你树状展示各字段,show2() 还会帮你算好校验和。强烈建议每次构造完都show一下,能省掉无数调试时间!

summary() 方法

一行字概括数据包,批量处理时特别爽,输出清爽不啰嗦。

Scapy方法总结之发送与接收

  • send():发三层包,不关心回包
  • sendp():发二层包(带以太网帧头)
  • sr():发三层包并接收响应,返回(answered, unanswered)元组,做扫描时超好用!
  • sr1():只等第一个响应包,探测场景必备

记得加 timeout 参数啊朋友们!我第一次写扫描脚本没设超时,程序卡那儿半天不动,气得我差点砸键盘……

Scapy方法总结之嗅探与解析

sniff() 方法配合 prn 回调函数,能实时处理抓到的包。filter 参数支持BPF语法,性能杠杠的,还有个 store 参数记得设成False,不然内存分分钟爆掉——这是血泪教训!

解析现成pcap文件就用 rdpcap(),返回包列表,遍历起来很方便。

Scapy方法总结之实用技巧

  • wrpcap() 保存抓包结果,配合 rdpcap() 做离线分析美滋滋
  • RandIP()、RandShort() 生成随机字段,做fuzz测试时太省事了
  • fuzz() 方法自动变异字段,找漏洞的好帮手
  • traceroute() 内置路由追踪,一行代码搞定

写在最后

好啦,这份Scapy方法总结就先到这儿,说实话,Scapy的方法远不止这些,但上面这些是我日常用得最多、也最值得先掌握的。建议你别光看,一定要动手敲一遍,哪怕照着抄也行——网络编程这东西,光看不练等于白搭!

有啥问题欢迎评论区聊,我看到就回~ 觉得有用的话,记得收藏这篇Scapy方法总结,下次忘了随时翻出来看看呀!


本文为个人实践经验总结,转载请注明出处。

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]