לדלג לתוכן

הרצאה מקיפה על tcpdump

מבוא

הכלי tcpdump הוא כלי עוצמתי ללכידת וניתוח תעבורת רשת במערכות Linux/Unix.
הוא מאפשר לנו לראות חבילות מידע שנשלחות ומתקבלות דרך כרטיסי הרשת, לבצע סינון מתקדם, לנתח תקשורת, לזהות התקפות סייבר ולבצע debugging של פרוטוקולים.


התקנה

במרבית הפצות לינוקס, tcpdump מגיע מותקן מראש. אם הוא לא קיים, ניתן להתקין אותו כך:

  • Ubuntu/Debian:
sudo apt update && sudo apt install tcpdump
  • CentOS/RHEL:
sudo yum install tcpdump
  • Arch Linux:
sudo pacman -S tcpdump
  • בדיקת גרסה:
tcpdump --version

שימוש בסיסי

1. לכידת תעבורה על ממשק רשת

sudo tcpdump -i eth0
  • -i eth0 – מאזין לתעבורה בממשק eth0.

לכידת תעבורה בכל הממשקים

sudo tcpdump -i any

2. לכידת מספר מוגבל של חבילות

sudo tcpdump -i eth0 -c 10
  • -c 10 – לוכד 10 חבילות בלבד ומפסיק.

3. הצגת פלט בפורמט קריא

sudo tcpdump -i eth0 -n -v
  • -n – מונע המרת IP לשמות מתחם (DNS).
  • -v – מפרט מידע נוסף על כל חבילה.

4. הצגת פלט מפורט מאוד

sudo tcpdump -i eth0 -vvv
  • -vvv – נותן מידע מלא על כל חבילה.

סינון תעבורה

5. לכידת חבילות לפי פרוטוקול

לכידת תעבורת HTTP

sudo tcpdump -i eth0 port 80
  • מאזין רק לחבילות שמיועדות ל-HTTP (פורט 80).

לכידת תעבורת HTTPS

sudo tcpdump -i eth0 port 443

לכידת תעבורת DNS

sudo tcpdump -i eth0 port 53

6. לכידת חבילות לפי כתובת IP

לכידת חבילות מכתובת ספציפית

sudo tcpdump -i eth0 src 192.168.1.100
  • מציג חבילות שמגיעות מכתובת 192.168.1.100.

לכידת חבילות שמיועדות לכתובת מסוימת

sudo tcpdump -i eth0 dst 192.168.1.200

לכידת חבילות בין שתי כתובות

sudo tcpdump -i eth0 host 192.168.1.100 and 192.168.1.200

7. לכידת חבילות לפי טווח כתובות (CIDR)

sudo tcpdump -i eth0 net 192.168.1.0/24
  • מאזין לכל הכתובות ברשת 192.168.1.0/24.

8. לכידת חבילות לפי פורט

לכידת חבילות שמגיעות לפורט מסוים

sudo tcpdump -i eth0 dst port 22
  • מאזין לחבילות המיועדות ל-SSH (פורט 22).

לכידת חבילות שמגיעות או יוצאות מפורט מסוים

sudo tcpdump -i eth0 port 443
  • מאזין לכל חבילות ה-HTTPS.

9. לכידת חבילות לפי פרוטוקול ספציפי

לכידת חבילות TCP בלבד

sudo tcpdump -i eth0 tcp

לכידת חבילות UDP בלבד

sudo tcpdump -i eth0 udp

לכידת חבילות ICMP (Ping)

sudo tcpdump -i eth0 icmp

ניתוח חבילות

10. הצגת תוכן החבילות בפורמט HEX + ASCII

sudo tcpdump -i eth0 -X
  • -X – מציג את תוכן החבילה גם ב-Hex וגם ב-ASCII.

11. הצגת מידע מלא כולל ה-Header של כל חבילה

sudo tcpdump -i eth0 -vv -A
  • -A – מציג תוכן טקסטואלי של החבילה.

12. לכידת מידע על חבילות גדולות יותר

sudo tcpdump -i eth0 -s 0
  • -s 0 – שומר את כל תוכן החבילה (ברירת מחדל היא רק 96 בתים ראשונים).

שמירה וניתוח חבילות

13. שמירת חבילות לקובץ (לניתוח מאוחר יותר)

sudo tcpdump -i eth0 -w capture.pcap
  • -w – שומר את הפלט בקובץ capture.pcap לניתוח מאוחר.

14. קריאת קובץ חבילות (PCAP)

sudo tcpdump -r capture.pcap
  • -r – טוען קובץ חבילות קודם.

15. ניתוח מתקדם עם Wireshark

אם רוצים לנתח את החבילות בגרפיקה נוחה יותר:

wireshark capture.pcap

או:

tshark -r capture.pcap

סינון מתקדם (Boolean Logic)

  • בדומה לwireshark גם פה אנחנו יכולים להפעיל bpf כדי לפלטר על פאקטות מסויימות בזמן התפיסה. (capture filter)

16. סינון חבילות עם מספר תנאים

sudo tcpdump -i eth0 src 192.168.1.100 and dst port 80
  • מאזין לחבילות שמגיעות מכתובת 192.168.1.100 ונשלחות לפורט 80.

17. לכידת תעבורה חוץ מכתובת מסוימת

sudo tcpdump -i eth0 not host 192.168.1.1
  • מסנן את כל הכתובות חוץ מ-192.168.1.1.

18. לכידת תעבורה חוץ מפרוטוקול מסוים

sudo tcpdump -i eth0 not arp
  • מסנן תעבורת ARP.

הגבלת מספר חבילות לזמן מוגבל

19. לכידת חבילות לזמן מסוים

sudo timeout 60 tcpdump -i eth0 -w capture.pcap
  • לוכד תעבורה למשך 60 שניות בלבד.