SlideShare a Scribd company logo
Tcpdump, Linux Utilities, and 
BPFs for Incident Response
Quick Note 
• This talk isn’t about the full Incident Response 
process 
• We aren’t going to cover policy/reporting/etc 
• We are here to show some Kung Fu with 
tcpdump
Tcpdump for Network Forenscis 
• This presentation will show you how you can 
leverage tcpdump, Linux utilities, and BPFs to 
quickly rip through pcap 
• Understanding TCP/IP communications along 
with common attack patterns allows an 
analyst to profile suspicious behavior
• With any role in security it is critical to be the “Hunter” 
• You need to go beyond the automated tool 
– Write your own tools and scripts to address gaps in tools 
– Be able to manually perform you job function 
• #Don’t_Rely_On_Automated_Tools
Now for the boring stuff….syntax and 
some background stuff
Basic Syntax 
• Write to a file: 
– Tcpdump -ttttnnAi any -s0 -w file.cap 
• Read from a file: 
– Tcpdump -ttttnnAr file.cap 
• Command Switches Broken Down – Read the Man page: 
– -tttt: formats the time 
– -nn: prevents ports and IPs from being resolved 
– -i: interface to listen on 
– -r: read a pcap file in 
– -A: gives ASCII output 
– -s0: specifies the snap-in length so tcpdump grabs the full 
packet instead of only 96 bytes
Basic Syntax Cont. 
• -c: Useful switch to set a packet capture limit. 
• The command below sets a packet capture limit 
of 5000. This is useful to avoid having tcpdump 
processes going too far. 
– tcpdump -ttttnnAi any -s0 -w file.cap -c 5000 
• You may also find it useful to launch your 
tcpdump process via a screen session, or nohup 
the process to avoid it closing if your connection 
to the server dies.
BPF Filters 
• Berkeley Packet Filters (BPFs) allow you to 
filter for packets for interest 
– host: filter based on a specific host 
– net: filter based on a specific network range 
– tcp: match only packets that are TCP 
– udp: match only packets that are UDP 
– port: filter based on a specific port 
– Boolean Logic (and, or)
More Advanced BPF Syntax 
• Match HTTP GET requests: 
– tcp[20:4]=0x47455420 
• Match HTTP POST requests: 
– tcp[20:4]=0x504f5354 
• Match TCP packets to network 10.0.0.0/8 
– tcp and net 10.0.0.0/8 
• Match TCP SYN packets to host 192.168.56.10 
– tcp[13]=2 and host 192.168.56.10
Reading Pcap 
• You can combine Linux utilities to help 
summarize tcpdump’s output 
• The first and most common is the “less” utility. 
I commonly leverage it with “-S” to turn off 
word wrapping to which is easier for me to 
view: 
– tcpdump -ttttnnAr pcap_file.cap | less -S
Tcpdump and Linux Utilities 
• Many of the same techniques taught in our 
bash scripting lesson can be applied to 
tcpdump’s STDOUT 
• Below is a quick summary of useful utilities: 
– Grep / Egrep 
– Awk 
– Sed 
– Sort/Uniq
Tcpdump and Linux Utilities Cont. 
• Below is a quick example showing how you 
can leverage grep with tcpdump output:
Tcpdump and Linux Utilities Cont. 
• Below is an example of using sed to replace “GET” with “POST”
Tcpdump and Linux Utilities Cont. 
• Here is an example of using awk to print just the 6th element 
in the line:
Tcpdump and Linux Utilities Cont. 
• Now we can use awk again to print just the IP and 
not the port:
Tcpdump and Linux Utilities Cont. 
• Finally we can leverage sort and uniq to summarize 
the output:
Now for the fun stuff…Hunting 
Profiling Network Traffic 
• When hunting for compromise it’s a good idea to 
profile network activity 
• This involves defining the legitimate traffic and 
starting to look at the outliers 
• Let’s talk a bit about what I mean by outliers: 
– Systematic connections (TCP, UDP, DNS, Netflow) 
– Odd domain names: aldjkafsdpoiadfpoiasd.ru 
– Close to legit domain names: micosoftupdat.com
Profiling Network Traffic 
• I normally profile enterprise networks using a 
few different filters that grow to several 
hundred lines 
• I commonly break them down by: 
– DNS filter – Profile outbound DNS servers 
– Web filter – Profile web activity 
– Everything else filter – I catch the rest here
Bash For Loop 1-liner 
• Here is an really handy 1-liner I use all the time: 
for i in `ls *`; do <command> $i; done 
• This can help you automate many different 
commands you might need to do over and over, 
not just tcpdump 
• I will often move more complex automation tasks 
to Python
Incident Happens - GO 
• What do you do when you’re dealing with a potential 
compromise? 
– Depends heavily on what we know and what we have access to touch 
– Network traffic is one of the most powerful sources of data when 
dealing with a compromise 
• Assuming you know “Something bad is happening” how 
would you start?
Hunting: DNS 
• I normally start by hunting in DNS because I 
personally found a lot of success with this 
technique: 
– NXDOMAIN/Loopback/BOGON Name Resolution 
– Random looking: zaweqeoinadf.ru 
– Close to legit: micosoft.com 
– Timing: Always key – is this a machine? 1min, 
5mins? 
– Hits for known bad infrastructure
Hunting: DNS Cont. 
• Below is an example of a DNS profile script:
Hunting: Mapping Infrastructure 
• Once you have 1 IP or Domain you should be able to map out more 
badguy infrastructure 
– Similar Whois Registrant Information 
– Similar sounding domains (cnndaily.com aoldaily.com) 
– Other domains pointing to same IP 
– Other domains around known bad guy IP (.12 is bad, what about .13, 
.14, .11?) 
– Any additional subdomains? 
– Other domains sharing that name server 
– Historical view of what that domain pointed to? Bad guys reuse 
infrastructure, what did that domain resolve to last year? 
• Robtext, iplist.net, nslist.net, webboar.com, Domain Dossier, 
Google, Virustotal, DNSDB, Edv-consulting,
Hunting: Outbound Connections 
• Focusing on just outbound SYNs is another 
effective profiling technique 
• The goal with this technique is to figure out what 
is normal and start to pick out the odd ball 
connection 
• I once found a SYN every 1 hour, looking into it 
further it was an encrypted communication 
stream to a badboy place 
– Automated tools don’t do this well #Hunter
Hunting: Outbound Connections 
• Here is a filter example for outbound SYNs: 
– I may have it focus on odd ports, or try to weed out ranges to more 
common ports “443/80”
Hunting: Automation 
• Let’s not try to fight this battle alone!
Hunting: Scripting 
• When hunting I find myself doing A LOT of whois lookups to 
get info then create a filter so….I automated it with Team 
Cymru’s Python whois module (tool available upon request):
Summary 
• Don’t rely on automated tools 
• Be the hunter - the one who finds what tools 
miss 
• Be flexible and able to write your own tools 
when needed

More Related Content

PPTX
Linux networking
PPTX
PDF
CEPH DAY BERLIN - MASTERING CEPH OPERATIONS: UPMAP AND THE MGR BALANCER
PDF
1.mysql disk io 모니터링 및 분석사례
PDF
PyCon2022 - Building Python Extensions
PDF
Local File Inclusion to Remote Code Execution
PDF
Understanding greenlet
PDF
rtpengine and kamailio - or how to simulate calls at scale
Linux networking
CEPH DAY BERLIN - MASTERING CEPH OPERATIONS: UPMAP AND THE MGR BALANCER
1.mysql disk io 모니터링 및 분석사례
PyCon2022 - Building Python Extensions
Local File Inclusion to Remote Code Execution
Understanding greenlet
rtpengine and kamailio - or how to simulate calls at scale

What's hot (20)

PDF
Introduction to tcpdump
PDF
YOW2020 Linux Systems Performance
PDF
Monitoring As a Service
PDF
SOME INTERESTING FACTS ABOUT THE WORLD.pdf
PDF
Security Monitoring with eBPF
PPTX
Understanding DPDK
PDF
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
PDF
Hibernation in Linux 2.6.29
PPT
Module 3 Scanning
PPTX
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
PPTX
Obscure Go Optimisations
PDF
Squid proxy-configuration-guide
PDF
BloodHound: Attack Graphs Practically Applied to Active Directory
PDF
DDoS Threats Landscape : Countering Large-scale DDoS attacks
PPTX
Web Hacking With Burp Suite 101
PDF
Linux Networking Explained
ODP
Ceph Day Melbourne - Troubleshooting Ceph
PPTX
QEMU - Binary Translation
PDF
BPF: Tracing and more
PPTX
Linux Network Stack
Introduction to tcpdump
YOW2020 Linux Systems Performance
Monitoring As a Service
SOME INTERESTING FACTS ABOUT THE WORLD.pdf
Security Monitoring with eBPF
Understanding DPDK
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
Hibernation in Linux 2.6.29
Module 3 Scanning
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Obscure Go Optimisations
Squid proxy-configuration-guide
BloodHound: Attack Graphs Practically Applied to Active Directory
DDoS Threats Landscape : Countering Large-scale DDoS attacks
Web Hacking With Burp Suite 101
Linux Networking Explained
Ceph Day Melbourne - Troubleshooting Ceph
QEMU - Binary Translation
BPF: Tracing and more
Linux Network Stack
Ad

Viewers also liked (13)

PDF
CNIT 123 Ch 10: Hacking Web Servers
PDF
CNIT 124 Ch 13: Post Exploitation (Part 1)
PPT
Wireshark - presentation
PDF
CNIT 141: 9. Elliptic Curve Cryptosystems
PDF
CNIT 50: 6. Command Line Packet Analysis Tools
PDF
CNIT 141 8. Public-Key Cryptosystems Based on the DLP
PPTX
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
PPTX
Wireshark, Tcpdump and Network Performance tools
PPT
TCPdump-Wireshark
PPTX
Tcpdump
PDF
CNIT 125 Ch 5 Communication & Network Security (part 2 of 2)
PDF
CNIT 141: 10. Digital Signatures
PPTX
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
CNIT 123 Ch 10: Hacking Web Servers
CNIT 124 Ch 13: Post Exploitation (Part 1)
Wireshark - presentation
CNIT 141: 9. Elliptic Curve Cryptosystems
CNIT 50: 6. Command Line Packet Analysis Tools
CNIT 141 8. Public-Key Cryptosystems Based on the DLP
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Wireshark, Tcpdump and Network Performance tools
TCPdump-Wireshark
Tcpdump
CNIT 125 Ch 5 Communication & Network Security (part 2 of 2)
CNIT 141: 10. Digital Signatures
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Ad

Similar to Tcpdump hunter (20)

PPTX
Packet capture in network security
PPTX
Packet Analysis - Course Technology Computing Conference
PPTX
BSides_Charm2015_Info sec hunters_gathers
PPTX
SecureWV - APT2
PPTX
LACNOG - Logging in the Post-IPv4 World
PPT
Types of NETWORK RECONNAISSANCE with its Cases.ppt
PPTX
Preso fcul
PPTX
PPTX
DerbyCon - APT2
PPTX
BlueHat v17 || Dyre to Trickbot: An Inside Look at TLS-Encrypted Command-And-...
PPTX
Recon with Nmap
PPTX
Null Delhi chapter - Feb 2019
PDF
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
PPT
Peer-to-peer Internet telephony
PDF
Network traffic analysis course
PPTX
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
ODP
There and back again
PPTX
Your Inner Sysadmin - MidwestPHP 2015
Packet capture in network security
Packet Analysis - Course Technology Computing Conference
BSides_Charm2015_Info sec hunters_gathers
SecureWV - APT2
LACNOG - Logging in the Post-IPv4 World
Types of NETWORK RECONNAISSANCE with its Cases.ppt
Preso fcul
DerbyCon - APT2
BlueHat v17 || Dyre to Trickbot: An Inside Look at TLS-Encrypted Command-And-...
Recon with Nmap
Null Delhi chapter - Feb 2019
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
Peer-to-peer Internet telephony
Network traffic analysis course
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
There and back again
Your Inner Sysadmin - MidwestPHP 2015

More from Andrew McNicol (11)

PPT
BSidesJXN 2017 - Improving Vulnerability Management
PPT
BSides Philly Finding a Company's BreakPoint
PPT
BSidesJXN 2016: Finding a Company's BreakPoint
PPT
BSidesDC 2016 Beyond Automated Testing
PPT
Beyond Automated Testing - RVAsec 2016
PPTX
Pentesting Tips: Beyond Automated Testing
PPTX
How To Start Your InfoSec Career
PPTX
Introduction to Penetration Testing
PPTX
Introduction to Python for Security Professionals
PPTX
Introduction to Malware Analysis
PDF
OSINT for Attack and Defense
BSidesJXN 2017 - Improving Vulnerability Management
BSides Philly Finding a Company's BreakPoint
BSidesJXN 2016: Finding a Company's BreakPoint
BSidesDC 2016 Beyond Automated Testing
Beyond Automated Testing - RVAsec 2016
Pentesting Tips: Beyond Automated Testing
How To Start Your InfoSec Career
Introduction to Penetration Testing
Introduction to Python for Security Professionals
Introduction to Malware Analysis
OSINT for Attack and Defense

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
MIND Revenue Release Quarter 2 2025 Press Release
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Tcpdump hunter

  • 1. Tcpdump, Linux Utilities, and BPFs for Incident Response
  • 2. Quick Note • This talk isn’t about the full Incident Response process • We aren’t going to cover policy/reporting/etc • We are here to show some Kung Fu with tcpdump
  • 3. Tcpdump for Network Forenscis • This presentation will show you how you can leverage tcpdump, Linux utilities, and BPFs to quickly rip through pcap • Understanding TCP/IP communications along with common attack patterns allows an analyst to profile suspicious behavior
  • 4. • With any role in security it is critical to be the “Hunter” • You need to go beyond the automated tool – Write your own tools and scripts to address gaps in tools – Be able to manually perform you job function • #Don’t_Rely_On_Automated_Tools
  • 5. Now for the boring stuff….syntax and some background stuff
  • 6. Basic Syntax • Write to a file: – Tcpdump -ttttnnAi any -s0 -w file.cap • Read from a file: – Tcpdump -ttttnnAr file.cap • Command Switches Broken Down – Read the Man page: – -tttt: formats the time – -nn: prevents ports and IPs from being resolved – -i: interface to listen on – -r: read a pcap file in – -A: gives ASCII output – -s0: specifies the snap-in length so tcpdump grabs the full packet instead of only 96 bytes
  • 7. Basic Syntax Cont. • -c: Useful switch to set a packet capture limit. • The command below sets a packet capture limit of 5000. This is useful to avoid having tcpdump processes going too far. – tcpdump -ttttnnAi any -s0 -w file.cap -c 5000 • You may also find it useful to launch your tcpdump process via a screen session, or nohup the process to avoid it closing if your connection to the server dies.
  • 8. BPF Filters • Berkeley Packet Filters (BPFs) allow you to filter for packets for interest – host: filter based on a specific host – net: filter based on a specific network range – tcp: match only packets that are TCP – udp: match only packets that are UDP – port: filter based on a specific port – Boolean Logic (and, or)
  • 9. More Advanced BPF Syntax • Match HTTP GET requests: – tcp[20:4]=0x47455420 • Match HTTP POST requests: – tcp[20:4]=0x504f5354 • Match TCP packets to network 10.0.0.0/8 – tcp and net 10.0.0.0/8 • Match TCP SYN packets to host 192.168.56.10 – tcp[13]=2 and host 192.168.56.10
  • 10. Reading Pcap • You can combine Linux utilities to help summarize tcpdump’s output • The first and most common is the “less” utility. I commonly leverage it with “-S” to turn off word wrapping to which is easier for me to view: – tcpdump -ttttnnAr pcap_file.cap | less -S
  • 11. Tcpdump and Linux Utilities • Many of the same techniques taught in our bash scripting lesson can be applied to tcpdump’s STDOUT • Below is a quick summary of useful utilities: – Grep / Egrep – Awk – Sed – Sort/Uniq
  • 12. Tcpdump and Linux Utilities Cont. • Below is a quick example showing how you can leverage grep with tcpdump output:
  • 13. Tcpdump and Linux Utilities Cont. • Below is an example of using sed to replace “GET” with “POST”
  • 14. Tcpdump and Linux Utilities Cont. • Here is an example of using awk to print just the 6th element in the line:
  • 15. Tcpdump and Linux Utilities Cont. • Now we can use awk again to print just the IP and not the port:
  • 16. Tcpdump and Linux Utilities Cont. • Finally we can leverage sort and uniq to summarize the output:
  • 17. Now for the fun stuff…Hunting 
  • 18. Profiling Network Traffic • When hunting for compromise it’s a good idea to profile network activity • This involves defining the legitimate traffic and starting to look at the outliers • Let’s talk a bit about what I mean by outliers: – Systematic connections (TCP, UDP, DNS, Netflow) – Odd domain names: aldjkafsdpoiadfpoiasd.ru – Close to legit domain names: micosoftupdat.com
  • 19. Profiling Network Traffic • I normally profile enterprise networks using a few different filters that grow to several hundred lines • I commonly break them down by: – DNS filter – Profile outbound DNS servers – Web filter – Profile web activity – Everything else filter – I catch the rest here
  • 20. Bash For Loop 1-liner • Here is an really handy 1-liner I use all the time: for i in `ls *`; do <command> $i; done • This can help you automate many different commands you might need to do over and over, not just tcpdump • I will often move more complex automation tasks to Python
  • 21. Incident Happens - GO • What do you do when you’re dealing with a potential compromise? – Depends heavily on what we know and what we have access to touch – Network traffic is one of the most powerful sources of data when dealing with a compromise • Assuming you know “Something bad is happening” how would you start?
  • 22. Hunting: DNS • I normally start by hunting in DNS because I personally found a lot of success with this technique: – NXDOMAIN/Loopback/BOGON Name Resolution – Random looking: zaweqeoinadf.ru – Close to legit: micosoft.com – Timing: Always key – is this a machine? 1min, 5mins? – Hits for known bad infrastructure
  • 23. Hunting: DNS Cont. • Below is an example of a DNS profile script:
  • 24. Hunting: Mapping Infrastructure • Once you have 1 IP or Domain you should be able to map out more badguy infrastructure – Similar Whois Registrant Information – Similar sounding domains (cnndaily.com aoldaily.com) – Other domains pointing to same IP – Other domains around known bad guy IP (.12 is bad, what about .13, .14, .11?) – Any additional subdomains? – Other domains sharing that name server – Historical view of what that domain pointed to? Bad guys reuse infrastructure, what did that domain resolve to last year? • Robtext, iplist.net, nslist.net, webboar.com, Domain Dossier, Google, Virustotal, DNSDB, Edv-consulting,
  • 25. Hunting: Outbound Connections • Focusing on just outbound SYNs is another effective profiling technique • The goal with this technique is to figure out what is normal and start to pick out the odd ball connection • I once found a SYN every 1 hour, looking into it further it was an encrypted communication stream to a badboy place – Automated tools don’t do this well #Hunter
  • 26. Hunting: Outbound Connections • Here is a filter example for outbound SYNs: – I may have it focus on odd ports, or try to weed out ranges to more common ports “443/80”
  • 27. Hunting: Automation • Let’s not try to fight this battle alone!
  • 28. Hunting: Scripting • When hunting I find myself doing A LOT of whois lookups to get info then create a filter so….I automated it with Team Cymru’s Python whois module (tool available upon request):
  • 29. Summary • Don’t rely on automated tools • Be the hunter - the one who finds what tools miss • Be flexible and able to write your own tools when needed