首页
社区
课程
招聘
[旧帖] [求教]用scapy.sniff抓TCP包 0.00雪花
发表于: 2017-2-17 10:59 2208

[旧帖] [求教]用scapy.sniff抓TCP包 0.00雪花

2017-2-17 10:59
2208
【Question】
各位大神本人小白,最近想用scapy的sniff函数抓特定的tcp数据包进行分析,但是遇到了如下问题:
1. 抓到的tcp包与过滤器filter设置的不一致
2. 用sprinf输出Raw.load没有显示
【Code】
from scapy.all import *

filter_S2U = '(src host 192.168.1.20) and (dst port 5678) and tcp[36:2] = 0x0228'

def findpacket(filtre):
  pkt=sniff(iface='wlan0',count=1,filter=filtre) 
  wrpcap('demo.pcap', pkt)
  pkt[0].show()
  hexdump(pkt[0])
  print 'Raw.load:'
  tcpload = pkt[0].sprintf('%Raw.load%')
  print 'tcpload[4:6]'
  cmdseq = tcpload[4:6]
  print cmdseq
  return pkt  

findpacket(filter_S2U )

【Output】

说明
1.图中src,dst与代码中过滤器filter_S2U正好相反
2.图中Raw.load没有显示,但从数据包来看TCP是携带数据的
PS:filter中加上tcp[36:2] = 0x0228是想捕获tcp部分偏移36字节处的后两个字节(图中红色圆圈处),让他们等于0228,不知这种用法是否正确?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//