2015-05-09 61 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使用該語法。