2015-05-09 124 views
1

我有一个简单的sniff函数设置与scapy转发数据包到握手功能(我有一个网络服务器上设置端口102。但有一些奇怪的错误来了,然后我决定打印pkt.show(),我发现的是,有些软件包DID通过过滤器来莫名其妙scapy无法过滤某些数据包

我的嗅探功能:

a=sniff(filter="port 102", count=10, prn=handshake) 

这包管理才能通过:

###[ Ethernet ]### 
    dst  = 84:8f:69:f5:fe:ac 
    src  = b8:27:eb:92:a3:3b 
    type  = 0x800 
###[ IP ]### 
    version = 4L 
    ihl  = 5L 
    tos  = 0x0 
    len  = 44 
    id  = 1 
    flags  = 
    frag  = 0L 
    ttl  = 64 
    proto  = tcp 
    chksum = 0xe6c6 
    src  = 192.168.137.178 
    dst  = 192.168.137.1 
    \options \ 
###[ TCP ]### 
     sport  = iso_tsap 
     dport  = 2426 
     seq  = 605952828 
     ack  = 605952829 
     dataofs = 6L 
     reserved = 0L 
     flags  = SA 
     window = 8192 
     chksum = 0x5b7c 
     urgptr = 0 
     options = [('MSS', 1460)] 

正如你所看到的目的地端口是2426,它肯定不是端口102

我做了些什么愚蠢的?

回答

2

封装包中的源端口号为iso_tsap which is 102。如果要通过目标端口过滤,请尝试过滤器"dst port 102"。如果您需要更复杂一些的东西,hereBPF的语法,scapy使用该语法。