TSharkでパケットキャプチャする!(フィルタリング)

WireSharkに付属するTSharkでパケットをキャプチャします。

tsharkコマンドを引数なしで実行する!

tsharkコマンドを引数なしで実行するとパケットキャプチャが開始されます。

$ sudo tshark
Running as user "root" and group "root". This could be dangerous.
Capturing on 'enp0s3'
    1 0.000000000     10.1.0.1 → 239.255.255.250 SSDP 375 NOTIFY * HTTP/1.1 
    2 0.000205847     10.1.0.1 → 239.255.255.250 SSDP 381 NOTIFY * HTTP/1.1 
    3 0.000730901     10.1.0.1 → 239.255.255.250 SSDP 322 NOTIFY * HTTP/1.1 

パケットキャプチャを行うデバイスを確認する!

「-D」オプションを使用すると、パケットキャプチャを行うデバイスを確認することができます。

# sudo tshark -D
Running as user "root" and group "root". This could be dangerous.
1. enp0s3
2. lo (Loopback)
3. any
4. bluetooth-monitor
5. nflog
6. nfqueue
7. usbmon0
8. usbmon1
9. usbmon2
10. ciscodump (Cisco remote capture)
11. sshdump (SSH remote capture)
12. udpdump (UDP Listener remote capture)

ネットワークインターフェースを指定してパケットをキャプチャする!

「-i」オプションでパケットっキャプチャを行うネットワークインターフェースを指定することができます。

$ sudo tshark -i enp0s3
Running as user "root" and group "root". This could be dangerous.
Capturing on 'enp0s3'
    1 0.000000000 Dell_a8:15:eb → Broadcast    ARP 60 Who has 10.1.20.2? Tell 10.1.1.11
    2 0.570328567   10.1.12.11 → 10.1.1.1     SSH 198 Server: Encrypted packet (len=132)
    3 0.570496162     10.1.1.1 → 10.1.12.11   TCP 66 43162 → 22 [ACK] Seq=1 Ack=133 Win=501 Len=0 TSval=2933654675 TSecr

フィルタリングしてキャプチャする!

「-f」オプションでフィルタリングすることができます。フィルタリングの条件は、tcpdumpと同じ書式で指定します。

$ sudo tshark -i enp0s3 -f "port 22"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'enp0s3'
    1 0.000000000     10.1.1.1 → 10.1.12.11   SSH 118 Client: Encrypted packet (len=52)
    2 0.000079399   10.1.12.11 → 10.1.1.1     SSH 94 Server: Encrypted packet (len=28)
    3 0.000241100     10.1.1.1 → 10.1.12.11   TCP 66 42458 → 22 [ACK] Seq=53 Ack=29 Win=12289 Len=0 TSval=863525637 TSecr=3588349139
    4 0.732811042   10.1.12.11 → 10.1.1.1     SSH 422 Server: Encrypted packet (len=356)

複合条件も、tcpdumpと同じく指定できます。

$ sudo tshark -i enp0s3 -f "port 22 and host 10.1.1.1"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'enp0s3'
    1 0.000000000     10.1.1.1 → 10.1.12.11   SSH 118 Client: Encrypted packet (len=52)
    2 0.000077598   10.1.12.11 → 10.1.1.1     SSH 94 Server: Encrypted packet (len=28)
    3 0.000228034     10.1.1.1 → 10.1.12.11   TCP 66 42458 → 22 [ACK] Seq=53 Ack=29 Win=12289 Len=0 TSval=863683842 TSecr=3588507352
    4 0.735861943   10.1.12.11 → 10.1.1.1     SSH 422 Server: Encrypted packet (len=356)

おわりに

WireSharkに付属するTSharkでも、tcpdumpと同じようにパケットキャプチャを行うことができます。

関連記事