آموزش استفاده از tcpdump

نویسنده: آبتین حیدرآبادیان| دسته بندی: آموزش سرور مجازی لینوکس | نظرات: 0 نفر
آموزش استفاده از tcpdump
3434
16 شهریور 1396
آبتین حیدرآبادیان نویسنده

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

همانطور که می‌دانید ، ابزار Tcpdump یک اسنیفر و یا پکت آنالیز شبکه همانند وایرشارک است که قدرت آن را دارد که تمامی پکت‌های ارسالی و دریافتی از اینترفیس‌های شبکه در لینوکس را اسنیف و آنالیز کند.

پس از نصب ابزار Tcpdump شما بسادگی می‌توانید از آن بهره برده و شبکه خود را کنترل کنید.

آموزش استفاده از tcpdump

Tcpdump پس از نصب در لینوکس ، با دستور tcpdump و پارامترهای متفاوتی قابلیت اسنیف شبکه را دارد که در ادامه مطلب به توضیح هر یک از پارامترها و نحوه عملکرد آنها خواهیم پرداخت.

کپچر کردن ساده تمام پکت ها

برای کپچر کردن ساده تمامی اینترفیس‌ها و پکت‌ها تنها نیاز است دستور زیر را وارد کنید.

tcpdump

پس از وارد کردن دستور tcpdump بدون پارامتر سیستم شروع به کپچر کلیه پکت ها خواهد کرد.

نمایش نام و تعداد اینترفیس‌های سیستم عامل
tcpdump -D

پس از وارد کردن دستور بالا لیستی از اینترفیس‌های لینوکی خود را خواهید دید. همانند کادر زیر

root@server:~# tcpdump -D
1.ens33 [Up, Running]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.nflog (Linux netfilter log (NFLOG) interface)
5.nfqueue (Linux netfilter queue (NFQUEUE) interface)
کپچر کردن پکت‌های یک اینترفیس خاص

توسط پارامتر i- می‌توانید یک اینترفیس خاص را انتخاب کرده و داده‌های ارسالی و دریافتی آن اینترفیس را اسنیف کنید.

tcpdump -i ens33

در مثال بالا نام اینترفیس ens33 است که شما به جای آن باید از نام اینترفیس خود استفاده کنید.

کپچر کردن تعداد محدودی از پکت‌ها

با استفاده از پارامتر c- شما قادر خواهید بود تعداد مشخصی از پکت‌ها را اسنیف کنید. به طور پیشفرض tcpdump تا کنسل نکردن دستور شبکه را اسنیف خواهد کرد.

tcpdump -c 10 -i ens33

با وارد کردن دستور بالا تنها 10 پکت از اینترفیس ens33 اسنیف خواهد شد و سپس tcpdump اسنیف را کنسل خواهد کرد.

کپچر کردن پکت‌ها و ذخیره آن در فایل

جهت ذخیره سازی خروجی کپچر در یک فایل ، از پارامتر w- استفاده می‌شود.

tcpdump -w file1.pcap -i ens33

در مثال بالا ، خروجی دستور tcpdump در فایل file1.pcap ذخیره سازی می‌شود.

برای خواندن فایل‌های کپچر شده که توسط دستور بالا تولید می‌شود ، از پارامتر r- استفاده می‌گردد.

tcpdump -r file1.pcap
نمایش اطلاعات داخل پکتها به صورت ASCII

پارامتر A- به شما این امکان را میدهد که در هنگام کپچر ، اطلاعات داخل پکت‌ها به صورت ASCII نمایش داده شود.

tcpdump -A -i ens33

به طور مثال در دستور بالا پکت‌های اینترفیس ens33 به صورت ASCII نمایش داده خواهد شد.

در کادر زیر نمونه‌ای از نمایش یک پکت پس از وارد کردن دستور بالا را خواهید دید.

root@server:~# tcpdump -A -i ens32
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes
09:05:08.922151 IP server.azaronline.com.ssh > 46.225.116.24.2992: Flags [P.], seq 14501598:14501726, ack 1118504372, win 260, length 128
E.....@.@.)..^.6..t.......F.B...P....)..H...:o...gl......>...L..0J.......-..t.......e..Y.-.,.eP.|
8.=k.....3./8/..H....R.bA..[..Gs.A..ID2......Z.`DA./.#....._..>...F]._
09:05:08.922224 IP server.azaronline.com.ssh > 46.225.116.24.2992: Flags [P.], seq 128:192, ack 1, win 260, length 64
E..h..@.@.*..^.6..t.......G^B...P.......j.Ua .`....g.}............>.cs..x..2.....Z.4.Qs.?5.aP..`........
2 packets captured
12 packets received by filter
4 packets dropped by kernel
نمایش اطلاعات داخل پکت‌ها به صورت ASCII و Hex

 جهت بررسی دقیق پکت‌ها و نحوه نمایش آنها به صورت اسکی و هگز شما می‌توانید از پارامتر XX- استفاده نمایید.

tcpdump -XX -i ens33

دستور بالا پکت‌های اینترفیس ens33 را به صورت  هگز و اسکی  نمایش می‌دهد.

در کادر زیر نمونه‌ای از اجرای دستور بالا را خواهید دید.

root@server:~# tcpdump -XX -i ens32
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes
09:06:05.762308 IP server.azaronline.com.ssh > 46.225.116.24.2992: Flags [P.], seq 14836734:14836798, ack 1118508004, win 260, length 64
0x0000: 0000 0c9f f000 0050 56ad 0658 0800 4510 .......PV..X..E.
0x0010: 0068 f638 4000 4006 28b9 b95e bf36 2ee1 .h.8@.@.(..^.6..
0x0020: 7418 0016 0bb0 00e2 63fe 42ab 13e4 5018 t.......c.B...P.
0x0030: 0104 1be9 0000 4f97 94d5 da45 401a 689f ......O....E@.h.
0x0040: 7f94 3ae0 c59b b7aa 4b8d 7aab 4d05 429f ..:.....K.z.M.B.
0x0050: d09e d8c9 ebf0 1cc0 2610 165d dc6e 14e1 ........&..].n..
0x0060: 4551 e83b e7e1 72d9 94f7 6534 4dba b96f EQ.;..r...e4M..o
0x0070: fe96 70d6 ad80 ..p...
1 packet captured
12 packets received by filter
5 packets dropped by kernel
کپچر کردن داده‌های ارسالی و دریافتی یک IP خاص

یکی از کاربردی‌ترین و مهمترین مصرف‌های دستور tcpdump نحوه استفاده از آن برای اسنیف پکت‌های یک IP خاص می‌باشد.

برای اسنیف یک IP خاص از پارامتر زیر استفاده می‌شود.

اسنیف یک IP از مبدا
tcpdump -i ens33 src 192.168.1.10

با وارد کردن دستور بالا تمامی پکت‌های ارسالی که مبدا آن 192.168.1.10 باشد ، اسنیف خواهد شد.

اسنیف یک ip از مقصد
tcpdump -i ens33 dst 172.16.1.20

تمامی پکت‌هایی که به 172.16.1.20 ارسال می‌شود ، اسنیف خواهد شد.

کپچر یک پورت خاص در tcpdump

برای اسنیف و کپچر کردن پکت‌هایی که به یک پورت خاص ارسال می‌شود از پارامتر port استفاده می‌گردد.

tcpdump -i ens33 port 80

در دستور بالا تمامی پکت‌های ارسالی برای پورت 80 کپچر خواهد شد.

کپچر کردن پکت‌های پروتکل خاص

برای اسنیف و کپچر کردن بسته‌های ارسالی و دریافتی پروتکلی خاص ، دستور tcpdump را به شکل زیر وارد کنید.

tcpdump -i ens33 udp

با وارد کردن دستور بالا پکت‌هایی کپچر می‌شوند که با پروتکل udp کار می‌کنند.

توجه داشته باشید که نیازی به استفاده از پارامتری برای این موضوع نیست و تنها نیاز است که نام پروتکل در انتهای دستور ذکر شود.

تا بدین جای مطلب آموزش استفاده از tcpdump با پارامترهای مختلف آن آشنا شدید و امیدواریم با استفاده از آنها استفاده لازم را از این ابزار ببرید.

در ادامه به چند مثال ترکیبی در خدمت شما خواهیم بود.

مثال 1 :

tcpdump -i ens33 src 192.168.1.10 dst 172.16.1.10 port 53 udp

در دستور بالا تمامی پکت‌هایی که از اینترفیس ens33 با پروتکل udp از آدرس 192.168.1.10 به 172.16.1.10 با پورت 53 ارسال می‌گردد ، کپچر خواهد شد.

مثال 2 :

tcpdump i ens33 dst 172.16.1.15 port 22 -w file1.pcap

در این مثال تمامی پکت‌هایی که با پورت 22 به آدرس 172.16.1.15 از طریق اینترفیس ens33 ارسال می‌شود کپچر شده و در فایل file1.pcap ذخیره می‌گردد.

مثال 3 :

tcpdump -i ens33 -w file2.pcap -XX port 22 tcp

در این مثال تمام پکت‌های اینترفیس ens33 که پروتکل آن tcp است و از پورت 22 استفاده می‌کند ، به صورت Hex و ASCII در فایل file2.pcap ذخیره می‌گردد.

امیدواریم از آموزش استفاده از tcpdump و مثال‌های ذکر شده استفاده لازم را برده باشید.