Npcapのライセンスはちょっとややこしくて、無償版のライセンスは5システムまで使用可能、またNmap, Wireshark, Microsoft Defender for Identityで使う場合は何ライセンスでも利用可能となっている*1*2。使っているソフトウェアのライセンスをUEM製品で管理ているんだけど、上記のような複雑な利用条件を解釈できる製品じゃない……という状況では、WiresharkといっしょにNpcapをインストールしていてもライセンス管理に問題ありと判定されてしまう可能性がある。
そのような場合、WiresharkをインストールするときにNpcapはインストールせずにおき、パケットキャプチャは他のソフトウェアで行い、Wiresharkは表示専用に使用するという方法が選択肢となる。OSがLinuxであればtcpdumpでキャプチャを行い.pcap
形式のファイルに出力できるので、それをそのままWiresharkで読み込めばよい。一方、OSがWindowsの場合はいろいろな方法があるようだったので列挙しておく。
netsh trace
netshコマンドにパケットキャプチャの機能がついている。netsh trace start capture=yes
のように実行する*3(())。
- メリット
- デメリット
pktmon
Windows10またはWindows Server 2019以降にデフォルトでインストールされているpktmonでもパケットキャプチャが行える*7。
- メリット
- デメリット
- プロミスキャスモードでのキャプチャが可能かの情報は見つけられなかった。
Add-NetEventPacketCaptureProvider
PowerShellであればNew-NetEventSession
とAdd-NetEventPacketCaptureProvider
でパケトキャプチャが行える*8*9。
- メリット
- PowerShell組込みのコマンドであり、追加のソフトウェアのインストールが不要。
- (未確認)プロミスキャスモードでのキャプチャが行える?
-PromiscuousMode
オプションがある。
- デメリット
- 出力ファイルをWiresharkで直接読み込めない。前述の方法で
.etl
から.pcap
形式への変換が必要。
- 出力ファイルをWiresharkで直接読み込めない。前述の方法で
番外:Microsoft Network Monitor, Microsoft Message Analyzer
以前はWindowsでパケットキャプチャを行うツールとしてMicrosoft Network Monitorが提供されていたが、これは廃止されてMicrosoft Message Analyzerに置き換えられた*10。Microsoft Message Analyzerも前述のとおり現在は提供されていない。Microsoft Network MonitorもMicrosoft Message Analyzerも、Microsoft提供のツールでNpcapに依存せずプロミスキャスモードが使えるツールだった*11。
番外:New-PefTraceSession
PowerShellにProtocol Engineering Framework (PEF)モジュールをインストールしていれば、New-PefTraceSession
cmdletでパケットキャプチャが行えるように読める*12。ただそもそもMicrosoft Message Analyzerが前提として必要という情報もある*13。手元でも実行できず、実用できるか不明。
*2:The free version of Npcap may be used (but not externally redistributed) on up to 5 systems (free license details). It may also be used on unlimited systems where it is only used with Nmap, Wireshark, and/or Microsoft Defender for Identity.
*3:https://isc.sans.edu/diary/19409
*4:https://github.com/microsoft/etl2pcapng
*5:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/pktmon-etl2pcap
*6:https://learn.microsoft.com/en-us/answers/questions/2071252/how-to-enable-promiscuous-mode-in-windows-10-using
*7:https://engineering.nifty.co.jp/blog/22242
*8:https://community.cisco.com/t5/tkb-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/wireshark%E4%BB%A5%E5%A4%96%E3%81%A7%E3%81%AEpacket-capture-windows/ta-p/4707959
*9:https://learn.microsoft.com/en-us/powershell/module/neteventpacketcapture/add-neteventpacketcaptureprovider
*10:https://en.wikipedia.org/wiki/Microsoft_Network_Monitor
*11:https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/basic-network-capture-methods/258922
*12:https://github.com/MicrosoftDocs/message-analyzer-docs-pr/blob/main/message-analyzer-guide/automating-tracing-functions-with-powershell.md