</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

فصل ۱۱: تحلیل ترافیک شبکه

استفاده عمیق از Wireshark شامل capture filters و display filters، Follow TCP Stream، Export Objects، tcpdump خط فرمان، تحلیل ترافیک بدافزار و C2، تشخیص port scan و استخراج اعتبارنامه از PCAP.

متوسط۱۵ دقیقه مطالعهآخرین بروزرسانی: ۸ تیر ۱۴۰۵ویرایش در گیت‌هاب

چرا تحلیل ترافیک مهم است؟#

تحلیل ترافیک شبکه یکی از مهارت‌های بنیادین در امنیت سایبری است که در چند حوزه به‌کار می‌آید: پاسخ به حادثه (تشخیص فعالیت بدافزار)، تست نفوذ (شناسایی اطلاعات نشت‌کرده)، و مانیتورینگ دفاعی (تشخیسی حملات در حال انجام). هر بسته‌ای که در شبکه رد و بدل می‌شود، یک شاهد خام است که اگر درست تحلیل شود، می‌تواند تصویر کاملی از یک حمله ارائه دهد.

در این فصل با دو ابزار اصلی صنعت آشنا می‌شوید: Wireshark به‌عنوان ابزار گرافیکی قدرتمند و tcpdump به‌عنوان ابزار خط فرمان سبک.

Wireshark — معرفی#

Wireshark آنالیزور پروتکل پیش‌فرض صنعت است که رابط گرافیکی غنی، فیلترهای قدرتمند و امکانات تشخیصی فراوانی دارد. این ابزار می‌تواند روی یک رابط شبکه (eth0، wlan0 و...) گوش دهد و تمام پکت‌ها را در قالب PCAP ذخیره کند.

تفاوت Capture Filter و Display Filter#

این دو فیلتر اغلب اشتباه گرفته می‌شوند اما کاملاً متفاوتند:

ویژگیCapture FilterDisplay Filter
زمان اعمالهنگام ضبطپس از ضبط
سینتکسBPF (Berkeley Packet Filter)Wireshark Display Filter
مثالhost 192.168.1.10ip.addr == 192.168.1.10
کاربردکاهش حجم ضبطتحلیل انتخابی

Capture Filter با سینتکس BPF در نوار بالایی و Display Filter در نوار میانی وارد می‌شود.

فیلترهای نمایش پرکاربرد#

# فیلتر بر اساس IP
ip.addr == 192.168.1.10
ip.src == 192.168.1.10 && ip.dst == 8.8.8.8
 
# فیلتر بر اساس پورت
tcp.port == 443
tcp.port == 80 || tcp.port == 443
udp.port == 53
 
# فیلتر پروتکل
http
dns
tls
icmp
 
# درخواست‌های POST در HTTP
http.request.method == "POST"
 
# کوئری DNS شامل کلمه خاص
dns.qry.name contains "example"
 
# فقط بسته‌های SYN (اولین بسته اتصال)
tcp.flags.syn == 1 && tcp.flags.ack == 0
 
# تشخیص port scan: فقط SYN بدون ACK
tcp.flags.syn == 1 && tcp.flags.ack == 0 && tcp.flags.reset == 0

ترکیب فیلترها

از عملگرهای && (و)، || (یا) و ! (نقیض) می‌توان برای ترکیب فیلترها استفاده کرد. پرانتز نیز برای گروه‌بندی قابل استفاده است. به‌عنوان مثال (http || dns) && ip.addr == 192.168.1.10 تمام ترافیک HTTP یا DNS با آن IP را نشان می‌دهد.

Follow TCP Stream#

یکی از قوی‌ترین قابلیت‌های Wireshark، قابلیت Follow TCP Stream است که کل مکالمه یک اتصال TCP را به‌صورت متنی پیوسته نشان می‌دهد. این قابلیت برای دیدن محتوای HTTP، FTP یا SMTP بسیار مفید است.

روش: روی یک بسته راست‌کلیک → Follow → TCP Stream
میان‌بر: روی بسته انتخاب شده Ctrl+Alt+Shift+T

Export Objects#

Wireshark می‌تواند اشیاء منتقل‌شده در پروتکل‌های HTTP، SMB، DICOM و TFTP را استخراج کند:

File → Export Objects → HTTP

این قابلیت برای استخراج فایل‌های دانلودشده، تصاویر یا بدافزار منتقل‌شده بسیار کاربردی است.

tcpdump — ضبط خط فرمان#

در سرورهای بدون رابط گرافیکی یا در محیط‌هایی که Wireshark در دسترس نیست، tcpdump ابزار اصلی ضبط است. خروجی آن با فرمت PCAP قابل باز کردن در Wireshark است.

# ضبط همه ترافیک رابط eth0
sudo tcpdump -i eth0 -w capture.pcap
 
# ضبط فقط ترافیک پورت ۸۰
sudo tcpdump -i eth0 port 80
 
# ضبط ترافیک یک هاست خاص
sudo tcpdump -i eth0 host 192.168.1.10
 
# خواندن فایل PCAP بدون ضبط
sudo tcpdump -nn -r capture.pcap
 
# نمایش محتوای ASCII پکت‌ها
sudo tcpdump -A -i eth0 port 80
 
# نمایش پکت‌های SYN فقط (تشخیص scan)
sudo tcpdump -i eth0 'tcp[tcpflags] == tcp-syn'

فلگ -nn از تبدیل آدرس‌ها به نام جلوگیری می‌کند و سرعت خواندن را بالا می‌برد. فلگ -w خروجی را در فایل ذخیره می‌کند و -r فایل را می‌خواند.

جدول فیلترهای پرکاربرد#

هدففیلتر
ترافیک یک IPip.addr == 192.168.1.10
ترافیک یک پورتtcp.port == 443
درخواست HTTPhttp.request
پاسخ HTTP با کد خطاhttp.response.code >= 400
کوئری DNSdns.qry.name
پاسخ DNS با TTL کمdns.answers.ttl < 10
اتصال TLStls.handshake.type == 1
سرور FTPftp
احراز هویت FTPftp.request.command == USER || ftp.request.command == PASS
ICMP unreachableicmp.type == 3
ARP spoofingarp.duplicate-address-detected
SYN scantcp.flags.syn == 1 && tcp.flags.ack == 0

تحلیل ترافیک بدافزار و C2#

بدافزارهای مدرن برای ارتباط با سرور فرمان و کنترل (C2) از تکنیک‌های پنهان‌کاری متعددی استفاده می‌کنند. نشانه‌های رایج عبارتند از:

  • بازه‌های زمانی منظم: پکت‌های beaconing در فواصل دقیق (مثلاً هر ۶۰ ثانیه).
  • DNS های طولانی و تصادفی: DNS tunneling یا DGX (Domain Generation Algorithm).
  • HTTPS به دامنه‌های تازه ثبت‌شده: بدافزار اغلب از دامنه‌های کمتر از ۳۰ روزه استفاده می‌کند.
  • Volume بالا در یک اتصال: نشانه exfiltration داده.
  • TLS با JA3 hash مشابه بدافزار شناخته‌شده: JA3 فینگرپرینت TLS است.
# شمارش کوئری‌های DNS به هر دامنه
tshark -r capture.pcap -Y "dns.qry.name" -T fields \
  -e dns.qry.name | sort | uniq -c | sort -rn | head -20
 
# یافتن beaconing با شمارش اتصالات به هر IP
tshark -r capture.pcap -Y "tcp.flags.syn==1 && tcp.flags.ack==0" \
  -T fields -e ip.dst | sort | uniq -c | sort -rn

تشخیص Port Scan#

Port scan‌ها الگوهای خاصی در ترافیک دارند. یک TCP SYN scan به پورت‌های متعدد یک هاست، بدون تکمیل اتصال، نشانه واضح است.

# فیلتر Wireshark برای تشخیص SYN scan
tcp.flags.syn == 1 && tcp.flags.ack == 0
 
# اگر چندین پورت مقصد در مدت کوتاه به یک IP مقصد باشد، احتمالاً scan است

اسکنرهایی مانند Nmap با -sS این الگو را تولید می‌کنند. اسکنر -sF، -sX و -sN با ارسال فلگ‌های عجیب (FIN، Xmas، Null) قابل تشخیص هستند.

استخراج اعتبارنامه از PCAP#

پروتکل‌های قدیمی مانند FTP، HTTP Basic Auth و Telnet اعتبارنامه را به‌صورت متن روشن یا Base64 منتقل می‌کنند:

# یافتن اعتبارنامه FTP
tshark -r capture.pcap -Y "ftp.request.command == USER || ftp.request.command == PASS" \
  -T fields -e ftp.request.arg
 
# استخراج HTTP Basic Auth (Base64)
tshark -r capture.pcap -Y "http.authorization" -T fields -e http.authorization
 
# یافتن POST های HTTP (احتمالاً حاوی فرم)
tshark -r capture.pcap -Y "http.request.method == POST" \
  -T fields -e http.file_data

برای رمزگشایی Base64:

echo "dXNlcjpwYXNzMTIz" | base64 -d
# خروجی: user:pass123

تمرین عملی — تحلیل PCAP مشکوک#

یک فایل PCAP نمونه از سایت‌هایی مانند Malware-Traffic-Analysis یا PCAP از HackTheBox دانلود کنید و این مراحل را دنبال کنید:

# ۱. باز کردن در Wireshark
wireshark suspicious.pcap &
 
# ۲. شمارش پکت‌ها بر اساس پروتکل
tshark -r suspicious.pcap -T fields -e frame.protocols | sort | uniq -c | sort -rn
 
# ۳. یافتن IPهای پرترافیک
tshark -r suspicious.pcap -T fields -e ip.src | sort | uniq -c | sort -rn | head -10
 
# ۴. جستجوی DNS مشکوک
tshark -r suspicious.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort -u
 
# ۵. استخراج فایل‌های HTTP
# در Wireshark: File → Export Objects → HTTP
 
# ۶. تحلیل TLS با JA3
tshark -r suspicious.pcap -Y "tls.handshake.type == 1" \
  -T fields -e ip.src -e tls.handshake.ja3

tshark برای اتوماسیون

tshark نسخه خط فرمان Wireshark است که برای اسکریپت‌نویسی و اتوماسیون ایده‌آل است. می‌توانید با ترکیب tshark و ابزارهایی مانند jq، awk و Python، پایپ‌لاین‌های تحلیل ترافیک بسازید که هر روز PCAPهای جدید را به‌صورت خودکار تحلیل کنند. مثلاً tshark -r cap.pcap -T json | jq '.[] | .layers.dns' | sort -u تمام کوئری‌های DNS را به‌صورت JSON استخراج می‌کند.

خلاصه و گام بعدی#

در این فصل با تحلیل ترافیک شبکه با Wireshark و tcpdump آشنا شدید. تفاوت Capture Filter و Display Filter، فیلترهای پرکاربرد، Follow TCP Stream، Export Objects و تحلیل ترافیک بدافزار را مرور کردید. توانایی تحلیل PCAP یکی از مهم‌ترین مهارت‌های یک تستر و عضو تیم SOC است.

در فصل بعد، با گزارش‌نویسی و اخلاق آشنا می‌شوید؛ جایی که می‌آموزید چگونه یافته‌های خود را در یک گزارش حرفه‌ای ارائه دهید، ریسک را ارزیابی کنید و در چارچوب اخلاقی و قانونی فعالیت کنید. این فصل پایانی، نقطه اتصال همه آموخته‌های شماست.

اشتراک‌گذاری:

این صفحه در تاریخ ۸ تیر ۱۴۰۵ به‌روزرسانی شده است.