سبد خرید شما خالی است.
فیلترهای wireshark
وایرشارک پیشرفته ترین تحلیلگر پروتکل شبکه در جهان است که به شما امکان می دهد در سطح میکروسکوپی آنچه در شبکه شما اتفاق می افتد را ببینید. امروز ما یاد خواهیم گرفت که چگونه از فیلترهای wireshark استفاده کنیم.
فیلترهای Wireshark
در وایرشارک تعداد زیادی فیلتر وجود دارد و داکیومنت های زیادی در مورد این فیلترها وجود دارد که درک آن آسان نیست. در زیر جالب ترین و پر کاربردترین فیلترها را برای شما جمع آوری کردیم که می توانید به عنوان مرجع فیلترهای wireshark، مورد استفاده قرار دهید.
وایرشارک دارای فیلترهای نمایشی (display filter) و فیلترهای کپچر (capture filter) است. فیلترهای نمایشی در یک فیلد در زیر منو، و فیلترهای کپچر در پنجره اصلی برنامه وارد می شوند. در زیر فیلترها به صورت کلی نوشته شده اند و شما می توانید داده های خود برای مثال شماره port و مک آدرس و غیره را جایگزین کنید.
اپراتورهای wireshark
فیلترها می توانند مقادیر مختلفی داشته باشند، برای مثال می توانند یک string، یک hexadecimal یا یک عدد باشند. برای مثال، برای نشان دادن بسته های TCP حاوی رشته cybrit به فیلتر زیر نیاز دارید:
tcp contains cybrit
از اپراتورها (Operator) برای یافتن مقادیر دقیق استفاده می شود. آنها به شرح زیر هستند:
همانطور که مشاهده می کنید اگر می خواهیم مقدار فیلتر را برابر با چیزی بدانیم، می توانیم از == یا eq استفاده کنیم. فیلترها با استفاده از اپراتورهای منطقی، می توانند برای ایجاد ساختارهای پیچیده استفاده شوند. اما بنظر از فیلترهای بالا می توان دو بار با اپراتور مقایسه استفاده کرد. برای مثال، در اینجا سعی می کنیم رنج پورت های 8000 تا 8180 را فیلتر کنیم:
tcp.port>=8000 && tcp.port<=8180
سپس مقدار فیلتر (tcp.port) با آخرین مقدار جایگزین می شود و در نتیجه، به جای رفتار مورد انتظار، فقط نتیجه قسمت آخر را می گیریم:
tcp.port<=8180
پس این موضوع را در خاطر داشته باشید.
اپراتورهای منطقی فیلترهای wireshark
اپراتورهای منطقی فیلترهای وایرشارک به شما امکان را می دهند که فیلترهای دقیق را با استفاده از چندین شرط همزمان ایجاد کنید. پیشنهاد می شود در هنگام اجرای فیلتر از براکت استفاده کنید، زیرا در غیر این صورت ممکن است مقداری را که انتظار دارید نگیرید.
مثال های ترکیبی:
نمایش ترافیک HTTP یا DNS
http or dns
نمایش تمام ترافیک به جز ARP ، ICMP و DNS:
!(arp or icmp or dns)
فیلتر اینترفیس
بسته های ارسال شده یا دریافت شده فقط از اینترفیس wlan0 را نمایش بده:
frame.interface_name == "wlan0"
ترافیک پروتکل Link Layer
برای نشان دادن ترافیک ARP:
arp
فریم های پروتکل ARP که از دستگاهی با مک آدرس 00:c0:ca:96:cf:cb ارسال شده اند را نشان بده (src=source):
arp.src.hw_mac == 00:c0:ca:96:cf:cb
فریم های پروتکل ARP که از دستگاهی با IP آدرس 192.168.50.90 ارسال شده اند را نشان بده:
arp.src.proto_ipv4 == 192.168.50.90
فریم های پروتکل ARP ارسال شده به دستگاهی با مک آدرس 00:00:00:00:00:00 را نمایش بده (dst=destination). این مک آدرس زمانی استفاده می شود که پروتکل سعی کند مک آدرس مورد نظر را پیدا کند. آدرس رایج دیگری که می تواند شما را گیج کند ff:ff:ff:ff:ff:ff است، این آدرس broadcast است، یعنی پیام هایی با این آدرس برای همه دستگاه ها در شبکه local محلی:
arp.dst.hw_mac == 00:00:00:00:00:00
نمایش فریم های پروتکل ARP ارسال شده به دستگاهی با IP آدرس 192.168.50.1:
arp.dst.proto_ipv4 == 192.168.50.1
نمایش ترافیک اترنت Ethernet:
eth
نمایش فریم ها (به طور کلی همه فریم ها، نه فقط ARP مانند نمونه های قبلی) ارسال شده از دستگاهی که دارای مک آدرس 00:c0:ca:96:cf:cb:
eth.src == 00:c0:ca:96:cf:cb
نمایش فریم های ارسال شده به دستگاه با مک آدرس 78:cd:8e:a6:73:be:
eth.dst == 78:cd:8e:a6:73:be
ترافیک پروتکل Internet
فیلتر wireshark برای نمایش IP ترافیک. این فیلتر شامل TCP ،UDP و همچنین پروتکل های سطح برنامه DNS ،HTTP است. یعنی تقریباً همه موارد به جز پروتکل های data link layer که از IP آدرس برای انتقال داده استفاده نمی کنند (در شبکه های اترنت محلی local Ethernet از MAC آدرس استفاده می کنند):
IP
دقیق تر به معنای ترافیک IPv4 است، که معمولاً فقط IP (Internet Protocol) نامیده می شود. برای نمایش ترافیک مرتبط با یک IP آدرس خاص (آن را به جای xxxx وارد کنید). درخروجی بسته هایی نشان داده می شوند که در آنها این IP آدرس منبع یا دریافت کننده recipient هستند:
ip.addr == x.x.x.x
نمایش ترافیک مرتبط با این دو IP آدرس. با توجه به منطق زیر، یکی از این آدرس ها منبع خواهد بود و دومین آدرس مقصد.
ip.addr == x.x.x.x && ip.addr == y.y.y.y
نمایش ترافیک مربوطه از host با IP آدرس 138.201.81.199:
ip.dst == 138.201.81.199
لطفا توجه داشته باشید که پروتکل IP با IP آدرس ها کار می کند، اما با پورت ها کار نمی کند. پورت ها بخشی از پروتکل های TCP و UDP هستند. پروتکل IP فقط وظیفه مسیریابی ترافیک بین host را بر عهده دارد.
نمایش ترافیک IPv6 (Internet Protocol version 6):
ipv6
فیلترهای IP آدرس برای IPv6 و IPv4 مشابه هستند.
ترافیک پروتکل Transport
برای نمایش فقط ترافیک TCP:
tcp
نمایش ترافیکی که پورت مبدا یا مقصد آن یک پورت خاص باشد، برای مثال 8080:
tcp.port==8080
نمایش ترافیک از پورت 80:
tcp.srcport == 80
ترافیکی را که به سرویس listening در پورت 80 ارسال می شود را نشان بده:
tcp.dstport == 80
بسته های TCP را با فلگ SYN فعال نشان دهید:
tcp.flags.syn==1
بسته های TCP را با فلگ SYN فعال و ACK غیرفعال نمایش بده:
tcp.flags.syn==1 && tcp.flags.ack==0
به طور مشابه برای فلگ های دیگر
SYN
tcp.flags.syn==1
ACK
tcp.flags.ack==1
Rst
tcp.flags.reset==1
FIN
tcp.flags.fin==1
CWR
tcp.flags.cwr
ECE
tcp.flags.ecn
URG
tcp.flags.urg==1
PSH
همچنین می توانید از ترکیب فرم tcp.flags == 0x0XX استفاده کنید، برای مثال:
- FIN برابراست با tcp.flags == 0x001
- SYN برابراست با tcp.flags == 0x002
- RST برابراست با tcp.flags == 0x004
- ACK برابراست با tcp.flags == 0x010
- ACK و FIN به طور همزمان برابراست با tcp.flags == 0x011
- ACK و SYN به طور همزمان برابراست با tcp.flags == 0x012
- ACK و RST به طور همزمان برابراست با tcp.flags == 0x014
برای نمایش بسته های حاوی هر عبارتی، برای مثال، رشته pentest:
tcp contains pentest
جریان TCP در شماره X را دنبال کنید (stream):
tcp.stream eq X
فیلتر براساس شماره جریان (stream number):
tcp.seq == x
نمایش ارسال مجدد (resubmit) بسته ها. به عملکرد ردیابی (track) برنامه و از دست رفتن بسته (packet loss) کمک می کند:
tcp.analysis.retransmission
این فیلتر بسته های دارای مشکل را نشان می دهد (lost segments, resending و غیره). این فیلتر بسته های TCP Keep-Alive را منتقل می کند، اما آنها نشان دهنده مشکلات نیستند.
tcp.analysis.flags
فیلترهای wireshark برای ارزیابی کیفیت اتصال شبکه
موارد زیر در مورد فریم های TCP اعمال می شود. ویژگی های (داده های حذف شده data omission، موارد تکراری duplicates) براساس آنالیز تعیین می شوند.
فیلتر زیر اطلاعات مربوط به فریم های دارای فلگ ACK را که duplicates هستند، نمایش می دهد. تعداد بسیاری از این فریم ها می توانند نشان دهنده مشکلات ارتباطی باشند:
tcp.analysis.duplicate_ack_num == 1
فیلتر زیر فریم هایی که بخش های قبلی آن کپچر نشده است را نمایش میدهد. این فیلتر در ابتدای کپچر اطلاعات طبیعی است، زیرا اطلاعات از ابتدای session رهگیری نمی شوند.
tcp.analysis.ack_lost_segment
برای نمایش فریم هایی که مجدداً ارسال می شوند (retransmission):
tcp.analysis.retransmission
فریم های خروجی که به ترتیب درست دریافت نشده اند:
tcp.analysis.out_of_order
برای دیدن فقط ترافیک UDP:
udp
از فلگها برای UDP استفاده نمی شود. برای این پروتکل، فقط می توانید پورت را مشخص کنید.
نمایش ترافیک از پورت 53:
udp.srcport == 53
نمایش ترافیکی که به سرویس listening در پورت 53 ارسال می شود:
udp.dstport == 53
یک بسته UDP که در آن یک رشته خاص رخ می دهد، برای مثال رشته pentest:
udp contains pentest
برای دیدن فقط ترافیک ICMP:
icmp
برای دیدن فقط ترافیک ICMP v6 (ورژن 6):
icmpv6
نمایش تمام پاسخ های ping:
icmp.type==0
نمایش تمام درخواست های ping:
icmp.type == 8
نمایش تمام مشکلات پورت و host های unavailable/denied
icmp.type == 3
نمایش تمام تلاش هایی که برای ریدایرکت مسیریابی با استفاده از ICMP انجام شده:
icmp.type == 8
برای مثال استفاده از مقدار CODE، فیلتر زیر پورت پیامهای غیرقابل دسترس را نشان می دهد:
icmp.type == 3 && icmp.code == 3
ترافیک پروتکل Application
برای پروتکل های HTTP ،DNS ،SSH ،FTP ،SMTP ،RDP ،SNMP ،RTSP ،GQUIC ،CDP ،LLMNR ،SSDP ما یکسری فیلترهای wireshark داریم که هم نام پروتکل خودشان نامیده می شود، اما با حروف کوچک نوشته می شود.
به عنوان مثال ، برای دیدن ترافیک HTTP:
http
برای دیدن ترافیک پروتکل HTTP / 2:
http2
به یاد داشته باشید هنگام آنالیز پروتکل ها، برنامه از شماره پورت متعلق به آنها استفاده می کند. اگر از پورت غیر استاندارد استفاده شود، برنامه نمی تواند داده های لازم را پیدا کند. برای مثال اگر اتصال به SSH در پورت 1234 برقرار شده باشد، پس فیلتر ssh نمی تواند ترافیک SSH را پیدا کند.
فیلتر زیر فقط داده های ارسال شده توسط متد POST را نشان می دهد:
http.request.method == "POST"
نمایش داده های منتقل شده توسط روش GET:
http.request.method == "GET"
درخواست ها را به یک سایت خاص (host) جستجو کنید:
http.host == ""
درخواست های یک سایت خاص را با نام جستجو کنید:
http.host contains "example.com"
فیلتر برای خروجی درخواستهای HTTP که در آن کوکی ها منتقل می شوند:
http.cookie
درخواست هایی که در آن سرور کوکی ها را در مرورگر کاربر تنظیم کرده است.
http.set_cookie
برای جستجوی هر تصویر منتقل شده:
http.content_type contains "image"
برای جستجوی انواع خاصی از تصاویر:
http.content_type contains "gif"
http.content_type contains "jpeg"
http.content_type contains "png"
برای جستجوی فایلهای یک فرمت خاص:
http.content_type contains "text"
http.content_type contains "xml"
http.content_type contains "html"
http.content_type contains "json"
http.content_type contains "javascript"
http.content_type contains "x-www-form-urlencode"
http.content_type contains "compressed"
http.content_type contains "application"
درخواستهای Wireshark را برای فایلهای خاصی جستجو کنید. برای مثا ، برای جستجوی فایلهای ZIP منتقل شده:
http.request.uri contains "zip"
برای دقت بیشتر به جای http.quest.uri می توانید از فیلترهای http.request.uri.path یا http.request.uri.query استفاده کنید. برای مثال، برای جستجوی درخواست برای دانلود فایلهای JPG:
http.request.uri.path contains "jpg"
همچنین می توانید درخواست هایی را که شامل مقدار هدر خاصی HTTP REFERER (ارجاع دهنده) هستند فیلتر کنید. برای مثال، برای جستجوی مواردی که در آن ارجاع دهنده cybrit.ir است:
http.referer contains "Kalitut.com"
درخواست ها را با هر authorization جستجو کنید. به طور مشابه، با کمک contains می توانید انواع خاصی از authorization را جستجو کنید:
http.authorization
فایلها را در جریان HTTP جستجو کنید:
http.file_data
برای دیدن اینکه کدام داده HTTP تأخیر دارد، از ساختار زیر استفاده کنید:
http.time>1
فیلتر بالا ترافیک دریافت شده را بعد از 1 ثانیه نشان می دهد. برای بررسی مشکلات می توانید وضعیت کدهای HTTP response را آنالیز کنید. برای مثال، فیلتر زیر ترافیکی را نشان می دهد که ارور 404 Not Found برای آن دریافت شده است (صفحه یافت نشد):
http.response.code==404
فیلترهای wireshark زیر بسیار جالب است. در مرحله اول، این نشان می دهد که کدام ساختارهای پیچیده را می توان از فیلترهای جداگانه ساخت. در مرحله دوم، به شما اجازه می دهد تا درخواست های HTTP و فعالیت کلی وب را مشاهده کنید و داده های غیر ضروری را حذف کنید. با استفاده از این فیلتر می توانید فعالیت وب را در سطح بالایی مشاهده کنید.
قوانین داخل پرانتز تصاویر، فایل های Javascript و هر آنچه صفحه وب در درون خود درخواست می کند را از خروجی حذف می کند. اگر صفحات بررسی شده شامل سایر آبجکت های جاسازی شده هستند، آنها را روشی مشابه حذف کنید:
http.request && !(http.request.uri contains ".ico" or http.request.uri contains ".css" or http.request.uri contains ".js" or http.request.uri contains ".gif" or http.request.uri contains ".jpg")
برای دیدن همه درخواست ها و پاسخ های DNS:
dns
برای دیدن اینکه کدام یک از درخواست های DNS زمان زیادی را صرف کرده اند. فیلتر زیر پاسخهایی که بیش از یک ثانیه بعد از ارسال درخواست آمده اند را نشان می دهد.
dns.time>1
این فیلتر نشان می دهد که کدام درخواست dns به درستی عمل (resolved) می نکند:
dns.flags.rcode != 0
فقط نمایش داده های DNS:
dns.flags.response == 0
فقط نمایش پاسخ های DNS:
dns.flags.response == 1
نمایش درخواست ها (requests) و پاسخ هایی (responses) را که در آنها IP برای google.com جستجو می شود:
dns.qry.name == "google.com"
نمایش درخواست ها و پاسخ های DNS را برای رکورد A (یکی از رکوردهای DNS):
dns.qry.type == 1
نمایش درخواست ها و پاسخ های DNS را برای رکورد AAAA:
dns.qry.type == 28
پاسخ هایی را نشان دهید که در آن 216.58.196.3 برای رکورد A به عنوان IP ارسال می شود:
dns.a == 216.58.196.3
نمایش پاسخهایی که در آن 2a01:4f8:172:1d86::1 برای ورودی AAAA به عنوان IP ارسال می شود:
dns.aaaa == 2a01:4f8:172:1d86::1
نمایش پست های CNAME از apollo.archlinux.org:
dns.cname == "apollo.archlinux.org"
نمایش پاسخ های بیشتر (longer) از 30:
dns.resp.len > 30
نمایش درخواست هایی با طول (length) بیش از 25:
dns.qry.name.len > 25
نمایش پاسخ های سرور DNS که بازگشت (recursion) برای آنها در دسترس (available) است:
dns.flags.recavail == 1
نمایش پاسخهای سرور DNS را که بازگشت برای آنها در دسترس نیست:
dns.flags.recavail == 0
آیا بازگشت مطلوب (desirable) است. اگر سرور DNS درخواستی اطلاعات hostname را نداشته باشد، آیا باید از سایر سرورهای DNS برای این اطلاعات نظر خواهی کند. اگر درخواست 1 باشد، پس بازگشت نیاز است. اگر 0 باشد، پس بازگشت مطلوب نیست.
dns.flags.recdesired == 1
آیا داده های تأیید نشده را بپذیرید (0 به معنای تایید نکردن، 1 به معنی پذیرفتن):
dns.flags.checkdisable == 0
برای دیدن نحوه اختصاص IP آدرس توسط DHCP:
udp.dstport==67
or
bootp.option.dhcp
برای نمایش درخواست های DHCP:
bootp.option.dhcp == 3
برای نشان دادن DHCP Discover:
bootp.option.dhcp == 1
فیلتر SMB. این فیلتر در ستون Info تمام اتصالات، دایرکتوری ها و فایل های باز را در ردیابی (trace) نشان می دهد.
smb2.cmd==3 or smb2.cmd==5
فیلترهای فریم های WiFi
نمایش تمام المنت های هندشیک چهار طرفه (به عنوان مثال فریم های پروتکل EAPOL):
eapol
نمایش فریم های Beacon:
wlan.fc.type_subtype == 0x08
نمایش فریم های پاسخ Probe:
wlan.fc.type_subtype == 0x05
نمایش تمام موارد EAPOL, beacons, Probe Response:
wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || eapol
نمایش فریم های وایرلس برای یک دستگاه با مک آدرس (BSSID) مشخص:
wlan.addr == BSSID
نمایش فریم های EAPOL ،beacons ،Probe Response را برای یک دستگاه مشخص با مک آدرس 28:28:5D:6C:16:24
(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || eapol) && wlan.addr==28:28:5D:6C:16:24
نمایش همه PMKID:
eapol && wlan.rsn.ie.pmkid
نمایش PMKID, Beacons, Probe Response:
(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid))
نمایش PMKID, Beacons, Probe Response برای اکسس پوینتی با مک آدرس 40:3D:EC:C2:72:B8
(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid)) && wlan.addr==40:3D:EC:C2:72:B8
نمایش اولین پیام هندشیک:
wlan_rsna_eapol.keydes.msgnr == 1
نمایش پیام دوم هندشیک (به جای 2 میتوانید پیام های 3 و 4 را نیز مشاهده کنید):
wlan_rsna_eapol.keydes.msgnr == 2
نمایش فریم های اکسس پوینت با سرعت (Data Rate) 1 مگابایت در ثانیه:
wlan_radio.data_rate == 1
نمایش فریم های اکسس پوینت با سرعت بیش از 10 مگابایت در ثانیه (10Mb/s):
wlan_radio.data_rate> 10
نمایش اکسس پوینت ها در یک فرکانس خاص:
radiotap.channel.freq == 2412
نمایش اکسس پوینت ها با سطح سیگنال مشخص:
wlan_radio.signal_dbm > -50
فیلترهای مرتبط با وجود دستگاه آنتن:
radiotap.present.antenna == 1
or
radiotap.antenna == 1
آنالیز با ابزار وایرشارک یکی از مهمترین مهارت هایی است که در تست نفوذ وایرلس و شبکه مورد استفاده قرار میگیرد.
دانلود PDF مقالهAlso in آموزش رایگان تست نفوذ وایرلس
ترتیبی که برای خواندن مقالات" آموزش رایگان تست نفوذ وایرلس "به شما پیشنهاد میکنیم:
- اصطلاحات و تکنولوژی WiFi
- بهترین کارت شبکه برای تست نفوذ وایرلس
- شروع کار با ابزار Aircrack-ng
- کرک WEP با استفاده از Aircrack-ng
- کرک WPA2-PSK با استفاده از Aircrack-ng
- کرک WPS با استفاده از Reaver
- حمله Deauthentication به شبکه وای فای
- کرک WPA2-PSK وایرلس با حمله PMKID
- ساخت اکسس پوینت Evil Twin
- گرفتن پسورد WPA2 از کاربر با ابزار Wifiphisher
- حمله Jamming پیشرفته به شبکه وای فای با ابزار mdk3
- افزایش قدرت TX Power کارت وایرلس
- پیدا کردن نام شبکه وای فای مخفی
- دور زدن مک فیلترینگ مودم
- فیلترهای wireshark
- گرفتن پسورد با wireshark
- اجرای حمله ARP Spoofing با Ettercap
- اجرای حمله DNS Spoofing با Ettercap
دیدگاهها (0)