2017-12-26 6 views
1

Scapyのsniffコマンドにフィルタを適用する際に問題があります。ただパケットを待ち、Scapyスニッフフィルタが機能しない

pkts = sniff(count=10, filter='tcp') 

それが終わることはありません:。

Welcome to Scapy (2.3.3) 
>>> pkts = sniff(count=10) 
>>> for p in pkts: p.summary() 
... 
'IP/TCP xx.xx.xx.xx:ssh > xx.xx.xx.xx:53128 PA/Raw' 
'IP/TCP xx.xx.xx.xx:60661 > xx.xx.xx.xx:http_alt PA/Raw' 
'IP/TCP xx.xx.xx.xx:http_alt > xx.xx.xx.xx:60661 A' 
'IP/TCP xx.xx.xx.xx:32874 > xx.xx.xx.xx:http S' 
'IP/TCP xx.xx.xx.xx:https > xx.xx.xx.xx:58026 PA/Raw' 
'IP/TCP xx.xx.xx.xx:58026 > xx.xx.xx.xx:https A' 
'IP/TCP xx.xx.xx.xx:60804 > xx.xx.xx.xx:http_alt A' 
'IP/TCP xx.xx.xx.xx:63244 > xx.xx.xx.xx:http_alt PA/Raw' 
'IP/TCP xx.xx.xx.xx:http_alt > xx.xx.xx.xx:63244 A' 
'IP/TCP xx.xx.xx.xx:43843 > xx.xx.xx.xx:http_alt A' 

が、私は試してみてください。最も単純なケースでは、私はこのように、Scapy CLIで10個のパケットを盗聴することができます

私は、Ubuntu 16.04サーバーを実行しているレンタルされたVPSを使用しています。たとえば、私はLinuxのトラフィック制御(tc)を使用することができません。

これがどのように起こる可能性がありますか?

編集: BPFフィルタは、tcpdumpに対して正しく機能します。

+0

FYI:私の問題を回避するには、/フィルターでtcpdumpを使用してのpcapファイルを作成し、その後のpythonの中に、そのファイルを読むことです怖い。 –

+0

また、大きなpcapファイルをスニッフィングするための[この回答](https://stackoverflow.com/a/37964206/9141316) –

答えて

1

これは、BPFフィルタが正しいインターフェイス用にコンパイルされていない可能性があるためです。あなたは(https://github.com/secdev/scapyから)Scapyの現在の開発版を入手し、あなたのsniff()呼び出しでインターフェースを指定する必要があります。

pkts = sniff(count=10, filter='tcp', iface='eth0') # replace eth0 with your interface name 
+0

Thanks Pierre。私がGithubを正しく読んでいるならば、2.3.3が現在のリリースです。しかしifaceを追加しても問題は解決しません。私は同じ振る舞いを得ます –

+0

2.3.3は現在のリリースですが、現在の開発バージョンには多くの修正が含まれています。だから私は "あなたはScapyの現在の開発版を入手するべきだ"と言ったのです。 – Pierre

+0

あなたは正しいです。 devブランチへの切り替えは、あらゆる種類のものを修正する –

関連する問題