認証解除攻撃を検出するためにbashスクリプトを作成しようとしています(私はMacを使用しています)。私はコマンドを知っていますが:
$ tcpdump -l -I -i en0 -e -s 256 type mgt subtype deauth
認証解除パケットを検出したら、接続解除パケットも検出したいと思います。通常、次の方法で切断パケットを検出できます。
$ tcpdump -l -I -i en0 -e -s 256 type mgt subtype disassoc
しかし、接続解除と認証解除パケットを同時に取得するようにこのコマンドを操作する方法があるかどうか疑問に思います。たとえば、コマンドは次のようになります。
$ tcpdump -l -I -i en0 -e -s 256 type mgt subtype deauth disassoc
明らかに動作しません。しかし、これが私が求めていることを理解するのに役立つことを願っています。
また、次のコマンドを使用するだけで完全に理解されています。
$ tcpdump -l -I -i en0 -e -s 256 type mgt
切断および認証解除パケットを含むすべての管理フレームを表示しますが、他の無関係なフレーム(ビーコン、プローブ要求など)によってブロックされます。
実際、私はgrep
望ましくないパケットをほぼすべて削除し、接続解除と認証解除パケットだけを残す簡単な実装を知っていますが、これはやや控えめなアプローチであり、より効率の悪いbash計算時間が必要だと思います。即時管理フレーム。
tcpdump
私が望む2つのパケットタイプを検出するように上記のコマンドを変更する簡単な方法はありますか?それとも、grep
上記のような他の種類の解決策を見つける必要がありますか?
PS 私はLinuxではなくOSXを使用しています。
答え1
で述べたようにtcpdump マンページ、キーワードとフィルタをand
組み合わせるor
ことができますnot
。グループ化には括弧を使用できます(シェルがコマンドラインを正しく解析するには引用符が必要な場合があります)。
tcpdump -l -I -i en0 -e -s 256 'type mgt and (subtype deauth or subtype disassoc)'