How to: Capture packets remotely with Wireshark and tcpdump over ssh

This guide will go over the process of capturing packets with wireshark remotely over ssh using tshark. To use this, you will be required to enable public key authentication to login via SSH and also have root access on the remote machine.

Before installing any new packages, it is always good idea to update your package list. On a debian based machine using apt-get, you can do this by typing:

sudo apt-get update

For any machine using Yum

sudo yum update

Install TCPDump on Remote Machine

The first thing you will need to do is to install TCPDump on the remote machine. On any debian based machine, you can install this using

sudo apt-get install tcpdump

On any other machine using yum as its package manager

yum install tcpdump

OPTIONAL-Capturing packets using TCPDump

The next step is optional but will show you how to capture packets on the machine using tcpdump. The basic way of doing this is to type in the following command - Make sure to replace INTERFACE with the interface you would like to listen on. If you dont care, replace it with 'any'

tcpdump -i INTERFACE

This should then start capturing packets on the requested interface. If you would like to safe all packets the machine receives to a file, you can do so using this command.

Using this command, you will need to make sure to update the ip address to that of the remote system along with the path to the private key. You should also change INTERFACE as mentioned in the section above. Also, the command will ignore all packets sent on port 22 (default for ssh). You may want to change this port or remove it all together.

Bash Script

I have written a bash script to automate this so you can run the file and supply the interface. The code for this is here although you can find the most up to date version on GitHub: