Tcpdump
TCPDump is a powerful command-line packet analyser tool that can be used to capture or filter TCP/IP packets that are received or transferred over a network on a specific interface.
Installing TCPDump
Most Linux distributions include tcpdump by default. If it's not installed, you can install it using a package manager. For example, on Ubuntu or Debian, you would use:
sudo apt-get install tcpdumpFinding Network Interfaces
You can list all network interfaces using the following command:
ip link showThis command will list all network interfaces. The active network interfaces are generally eth0 for ethernet, wlan0 for WiFi, and lo for localhost.
Capturing Traffic
Once you've identified the correct network interface, you can use tcpdump to capture traffic. The following command captures all traffic on wlan0 and writes it to capture.pcap:
tcpdump -i wlan0 -w capture.pcapReplace wlan0 with your network interface.
Reading PCAP files
You can read the captured packets with tcpdump using the -r option:
tcpdump -r capture.pcapExample TCPDump Commands
Here are some examples of tcpdump commands to narrow down your analysis to potentially interesting or sensitive information:
Monitor HTTP GET requests:
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'Capture DNS traffic:
tcpdump -n 'udp port 53'Capture traffic to/from a specific IP address:
tcpdump host 192.168.1.1Capture traffic on a specific port:
tcpdump port 80Capture and save traffic to a file:
tcpdump -w capture.pcapCapture TCP SYN packets:
tcpdump 'tcp[13] & 2!=0'Capture ICMP (ping) packets:
tcpdump icmpCapture all HTTP POSTs:
tcpdump -A 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'Capture all packets of length 500:
tcpdump 'len=500'Capture all packets of a certain length range:
tcpdump 'len >= 500 and len <= 1000'Capture packets from a specific source port:
tcpdump 'src port 80'Capture packets from a specific destination port:
tcpdump 'dst port 8080'Capture all TCP and UDP packets to or from a particular port:
tcpdump 'port 53 and (tcp or udp)'Capture all TCP packets with the PUSH and ACK flags set:
tcpdump 'tcp[13] = 24'Capture all UDP packets with a source or destination port of 53 (DNS):
tcpdump 'udp port 53'
This guide provides a basic introduction to using tcpdump to capture and analyse network traffic. Remember to perform these actions responsibly and only on networks and devices where you have permission.
Last updated
Was this helpful?