آشنایی با wireshark در روسی. آشنایی Wireshark با آنچه در کجای این برنامه است! ابزاری که باید داشته باشید

معرفی

گاهی اوقات مشکلاتی در عملکرد یک شبکه کامپیوتری و پشته شبکه گره‌ها به وجود می‌آیند که شناسایی علل آن با ابزارهای معروف جمع‌آوری آمار (مانند netstat) دشوار است. برنامه های کاربردی استانداردبر اساس پروتکل ICMP (پینگ، traceroute/tracert، و غیره). در چنین مواردی، برای تشخیص مشکلات، اغلب لازم است از ابزارهای خاص تری استفاده شود که به شما امکان نمایش (گوش دادن) ترافیک شبکه و تجزیه و تحلیل آن را در سطح واحدهای انتقال پروتکل های فردی می دهد. «بویدن»، بو کشیدن).

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

معمولاً از چنین نرم افزارهای تخصصی استفاده می شود حالت کار «بی‌خودی» (promiscuos). آداپتور شبکه نظارت بر رایانه (به ویژه برای رهگیری ترافیک از یک بخش شبکه، پورت سوئیچ یا روتر). همانطور که می دانید، اصل این حالتپایین می آید به برای پردازش تمام فریم هایی که به رابط می آیندو نه فقط آنهایی که برای آدرس MAC مقصد هستند کارت شبکهو پخش شود، همانطور که در حالت عادی اتفاق می افتد.

محصول مورد بحث در این مقاله Wiresharkیک ابزار رهگیری و تحلیل تعاملی شناخته شده است ترافیک شبکهدر واقع یک استاندارد در صنعت و آموزش است. به ویژگی های کلیدی Wiresharkممکن است شامل: چند پلتفرم (ویندوز، لینوکس، سیستم عامل مک، FreeBSD، Solaris و غیره) باشد. توانایی تجزیه و تحلیل صدها پروتکل مختلف. پشتیبانی از حالت عملکرد گرافیکی و رابط خط فرمان(ابزار tshark)؛ سیستم فیلتر ترافیک قدرتمند؛ صادرات نتایج کار به فرمت های XML، PostScript، CSV و غیره

واقعیت مهم دیگر این است که Wireshark یک نرم افزار متن باز است. تحت مجوز GNU GPLv2 توزیع شده است، یعنی شما آزاد هستید که از این محصول به دلخواه خود استفاده کنید.

نصب Wireshark

آخرین نسخه Wireshark برای سیستم عامل ها سیستم های ویندوزو OS X نیز منبعمی توان از وب سایت پروژه دانلود کنید. برای توزیع های لینوکسو سیستم های BSD، این محصول معمولاً در مخازن استاندارد یا اضافی موجود است. اسکرین شات های منتشر شده در این مقاله از نسخه 1.6.2 Wireshark برای ویندوز گرفته شده است. بیشتر نسخه های اولیهبرنامه‌هایی که در مخازن سیستم‌عامل‌های مشابه یونیکس یافت می‌شوند نیز می‌توانند با موفقیت مورد استفاده قرار گیرند، زیرا Wireshark برای مدت طولانی محصولی پایدار و کاربردی بوده است.

Wireshark برپایه کتابخانه Pcap (Packet Capture) است، که یک رابط برنامه نویسی کاربردی برای اجرای عملکردهای سطح پایین تعامل با رابط های شبکه (به ویژه رهگیری و تولید واحدهای انتقال دلخواه پروتکل ها و پروتکل های شبکه) ارائه می کند. شبکه های محلی) . کتابخانه Pcap همچنین اساس ابزارهای شبکه معروفی مانند tcpdump، snort، nmap، kismet و غیره است. سیستم های یونیکس مانند Pcap معمولاً در مخازن استاندارد وجود دارد نرم افزار. برای خانواده سیستم عامل های ویندوز، نسخه ای از Pcap به نام Winpcap وجود دارد. تو می توانی از وب سایت پروژه دانلود کنید. با این حال، این معمولاً ضروری نیست، زیرا کتابخانه Winpcap در بسته نصب Wireshark برای ویندوز گنجانده شده است.

مراحل نصب برنامه برای کسی سخت نیست سیستم عامل، البته برای ویژگی های پلتفرمی که استفاده می کنید تنظیم شده است. به عنوان مثال، Wireshark در Debian/Ubuntu نصب شده است تا کاربران غیرمجاز به طور پیش فرض حق رهگیری بسته ها را نداشته باشند، بنابراین برنامه باید با استفاده از مکانیزم شناسه کاربر sudo راه اندازی شود (یا دستکاری های لازم را مطابق با مستندات استاندارد انجام دهد. بسته DEB).

اصول کار با Wireshark

رابط کاربری Wireshark در بالای کتابخانه GTK+ ساخته شده است(کیت ابزار GIMP). پنجره اصلی برنامه شامل عناصر زیر است: منو، نوار ابزار و فیلترهای مشاهده، لیست بسته ها، توضیحات مفصل بسته انتخابی، نمایش بایت های بسته (به صورت هگزادسیمال و متنی) و نوار وضعیت:

لازم به ذکر است که رابط کاربریاین برنامه به خوبی طراحی شده است، کاملاً ارگونومیک و کاملاً شهودی است که به کاربر اجازه می دهد بر روی مطالعه تمرکز کند. فرآیندهای شبکه، بدون اینکه حواس شما پرت شود. علاوه بر این، تمام ویژگی ها و جزئیات استفاده از Wireshark به تفصیل در توضیح داده شده است راهنمای کاربری. بنابراین، این مقاله بر روی عملکردمحصول مورد نظر، ویژگی های آن در مقایسه با سایر sniffer ها، به عنوان مثال، با ابزار معروف کنسول tcpdump.

بنابراین، ارگونومی Wireshark منعکس کننده یک رویکرد چند لایه برای ارائه تعاملات شبکه است. همه کارها به این صورت انجام می شود که با انتخاب یک بسته شبکه از لیست، کاربر این امکان را داشته باشد که تمام هدرها (لایه ها) و همچنین مقادیر فیلد هر لایه از بسته شبکه را از ابتدا مشاهده کند. wrapper - فریم اترنت، خود هدر IP، هدر لایه انتقال و پروتکل داده برنامه موجود در بسته.

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

مشکل یافتن بسته های لازم در حجم زیادی از ترافیک رهگیری شده حل شده است دو نوع فیلتر: جمع آوری ترافیک (فیلترهای ضبط)و او نمایش فیلترها. فیلترهای مجموعه Wireshark بر اساس زبان فیلتر کتابخانه Pcap، یعنی. نحو در این مورد شبیه به نحو ابزار tcpdump است. فیلتر مجموعه ای از موارد اولیه است که در صورت لزوم با هم ترکیب می شوند. توابع منطقی(و، یا، نه). فیلترهای پرکاربرد را می توان در آن ذخیره کرد نمایه برای استفاده مجدد.

شکل نمایه فیلترهای مجموعه Wireshark را نشان می دهد:

تحلیلگر بسته های شبکه Wireshark نیز ساده اما پر ویژگی خود را دارد نمایش زبان فیلتر. مقدار هر فیلد در هدر بسته می تواند به عنوان معیار فیلتر استفاده شود(به عنوان مثال، ip.src آدرس IP منبع در بسته شبکه است، frame.len طول فریم اترنت و غیره است). با استفاده از عملیات مقایسه، مقادیر فیلد را می توان با مقادیر مشخص شده مقایسه کرد(به عنوان مثال، frame.len و ترکیب چند عبارت با عملگرهای منطقی (به عنوان مثال: ip.src==10.0.0.5 و tcp.flags.fin). یک کمک کننده خوبدر فرآیند ساخت عبارات است پنجره تنظیم قوانین نمایش (Filter Expression):

ابزارهای تجزیه و تحلیل بسته های شبکه

اگر امکان کاوش پروتکل های بدون اتصال وجود دارد مشاهده سادهبسته های جداگانه و محاسبه آمار، سپس مطالعه عملکرد پروتکل های اتصال گرا بسیار ساده شده است اگر شما ویژگی های اضافیتجزیه و تحلیل پیشرفت تعاملات شبکه

یکی از توابع مفید Wireshark نکته است "Follow TCP Stream"(به معنای واقعی کلمه، "دنبال کردن جریان TCP") زیر منوی تجزیه و تحلیل "Analyze"، که به شما امکان می دهد داده های پروتکل برنامه را از بخش های TCP جریانی که بسته انتخابی به آن تعلق دارد استخراج کنید:

یکی دیگر از موارد جالب در زیر منوی آنالیز این است "کامپوزیت اطلاعات تخصصی"، که پنجره ای از سیستم خبره داخلی Wireshark را باز می کند که سعی می کند خطاها و نظرات موجود در بسته ها را شناسایی کند و به طور خودکار اتصالات فردی را از Dump انتخاب کرده و آنها را مشخص کند. این ماژول در حال توسعه است و نسخه به نسخه برنامه در حال بهبود است.

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

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

پاراگراف "گراف جریان..."جریان های بسته را به صورت گرافیکی نشان می دهد. در این حالت، هنگامی که یک عنصر را در نمودار انتخاب می کنید، بسته مربوطه در لیست در پنجره اصلی برنامه فعال می شود:

زیر منوی جداگانه در آخرین نسخه ها Wireshark به تلفن IP اختصاص داده شده است. در منوی فرعی "ابزار" یک مورد وجود دارد "قوانین ACL فایروال"، سعی می کند یک قانون فایروال برای بسته انتخاب شده ایجاد کند (نسخه 1.6.x از فرمت های Cisco IOS، IP Filter، IPFirewall، Netfilter، Packet Filter و Windows Firewall پشتیبانی می کند).

این برنامه همچنین دارای یک مترجم سبک وزن داخلی است زبان برنامه نویسی Lua. با استفاده از Lua، می توانید رمزگشاهای پروتکل و کنترل کننده رویداد خود را در Wireshark ایجاد کنید.

به جای نتیجه گیری

تحلیلگر شبکه بسته های Wiresharkنمونه ای از یک محصول Open Source است که هم در پلتفرم یونیکس/لینوکس موفق بوده و هم در بین کاربران ویندوز و مک او اس ایکس محبوب است. البته علاوه بر Wireshark، راه حل های هوشمند سنگین و جامعی در زمینه تحقیقات ترافیک شبکه وجود دارد. که عملکرد آن بسیار گسترده تر است. اما اولاً هزینه زیادی دارند و ثانیاً یادگیری و کار با آنها دشوار است. ثالثاً، باید درک کنید که همه چیز را نمی توان خودکار کرد و نه سیستم خبرهجایگزین یک متخصص خوب نمی شود. بنابراین، اگر با وظایفی روبرو هستید که نیاز به تجزیه و تحلیل ترافیک شبکه دارند، Wireshark ابزاری برای شماست. و طرفداران خط فرمان می توانند از این ابزار استفاده کنند tshark - نسخه کنسول Wireshark.

برای تحقیقات رفتاری برنامه های کاربردی شبکهو گره ها و همچنین برای شناسایی مشکلات شبکه، اغلب به تحلیلگرهای بسته شبکه متوسل می شوند. ویژگی های کلیدیچنین نرم افزاری اولاً قابلیت تجزیه و تحلیل همه کاره است و ثانیاً فیلتر بسته چند منظوره است که به شما امکان می دهد دانه های اطلاعات جالب را در جریان گسترده ترافیک شبکه به دست آورید. این جنبه اخیر است که این مقاله به آن اختصاص دارد.

معرفی

از همه روش های مطالعه شبکه های کامپیوترتحلیل ترافیک شاید پر زحمت ترین و وقت گیرترین باشد. جریان های شدید شبکه های مدرن مواد خام زیادی تولید می کنند که در آن دانه ها یافت می شود اطلاعات مفیدبه دور از ساده بودن پشته TCP/IP در طول عمر خود، برنامه‌های کاربردی و افزوده‌های متعددی را به دست آورده است که تعداد آنها به صدها و هزاران می‌رسد. اینها پروتکل های برنامه و سرویس، احراز هویت، تونل سازی، پروتکل های دسترسی به شبکه و غیره هستند. علاوه بر دانستن مبانی تعاملات شبکه، یک محقق ترافیک (یعنی شما) باید به همه این تنوع پروتکل مسلط باشد و بتواند با ابزارهای نرم افزاری خاص - sniffers، یا، به بیان علمی، تحلیلگرهای ترافیک (پروتکل) کار کند. .

عملکرد sniffer تنها توانایی استفاده از حالت "promiscuos" عملکرد کارت شبکه برای رهگیری نیست. چنین نرم افزاری باید بتواند ترافیک را هم در مرحله جمع آوری و هم در حین مطالعه واحدهای انتقال فردی (فریم ها، بسته ها، بخش ها، دیتاگرام ها، پیام ها) به طور موثر فیلتر کند. علاوه بر این، پروتکل‌های بیشتری که sniffer «می داند» بهتر است.

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

آشنایی با فیلترها

Wireshark از دو نوع فیلتر پشتیبانی می کند:

  • رهگیری ترافیک (فیلترهای ضبط)؛
  • نمایش فیلترها

اولین زیر سیستم توسط Wireshark از کتابخانه Pcap به ارث رسیده است که یک API سطح پایین برای کار با رابط های شبکه ارائه می دهد. نمونه برداری از ترافیک در حین رهگیری به شما امکان می دهد در هزینه خود صرفه جویی کنید رمو فضای هارد. فیلتر عبارتی است متشکل از گروهی از موارد اولیه که به صورت اختیاری با توابع منطقی (و، یا، نه) ترکیب می شوند. این عبارت در قسمت "Capture Filter" کادر گفتگوی "Capture options" ثبت شده است. فیلترهای پر استفاده را می توان در یک نمایه برای استفاده مجدد ذخیره کرد (شکل 1).

برنج. 1. پروفایل فیلتر رهگیری

زبان فیلتر رهگیری در دنیای منبع باز استاندارد است و توسط بسیاری از محصولات مبتنی بر Pcap (به عنوان مثال، ابزار tcpdump یا سیستم تشخیص/پیشگیری از نفوذ Snort) استفاده می‌شود. بنابراین، هیچ نکته خاصی در توصیف نحو در اینجا وجود ندارد، زیرا به احتمال زیاد برای شما آشنا است. و جزئیات را می توان در اسناد پیدا کرد، برای مثال در لینوکس در صفحه man pcap-filter(7).

فیلترهای نمایش روی ترافیکی که قبلاً ضبط شده است کار می کنند و بومی Wireshark هستند. تفاوت با Pcap - در فرمت ضبط (به ویژه، یک نقطه به عنوان جداکننده میدان استفاده می شود). نماد انگلیسی برای عملیات مقایسه و پشتیبانی از رشته های فرعی نیز اضافه شده است.

می توانید پس از دکمه "Filter" یک فیلتر نمایش را مستقیماً در قسمت مربوطه (توجه، لیست کشویی کار می کند) در پنجره اصلی برنامه وارد کنید (به هر حال، نمایه ای برای عبارات پرکاربرد در زیر این دکمه پنهان می شود. ). و اگر روی دکمه "Expression..." نزدیک کلیک کنید، یک سازنده عبارت چند منظوره باز می شود (شکل 2).


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

اینجا عملگرهای منطقی، در فیلترهای نمایش استفاده می شود:

  • و و"؛
  • یا (||) - "OR"؛
  • xor (^^) - انحصاری "OR"؛
  • نه (!) - نفی؛
  • [...] - انتخاب رشته فرعی. # با فیلتر کردن بر اساس آدرس MAC آداپتور شبکه شما، ما تمام ترافیک محلی را حذف نمی کنیم (eth.addr eq aa:bb:cc:22:33:44) # ما تمام "نویز سرویس" را رد می کنیم تا روی ترافیک تمرکز کنیم. که به ما علاقه مند است! (arp یا icmp یا dns)

در مورد انتخاب یک رشته فرعی، این دقیقا یک عملیات منطقی نیست، اما گزینه بسیار مفیدی است. این به شما امکان می دهد بخش خاصی از دنباله را دریافت کنید. به عنوان مثال، به این صورت است که می توانید از اولین فیلد آدرس MAC مبدا در یک عبارت، از اولین (عدد اول در پرانتز، آفست است) سه بایت (عدد بعد از کولون طول دنباله بعدی است) استفاده کنید:

Eth.src == 00:19:5b

در انتخاب های با دو نقطه، یکی از پارامترها را می توان حذف کرد. اگر از افست صرف نظر کنید، تعداد نمونه از بایت صفر شروع می شود. اگر طول باشد، تمام بایت ها را از افست تا انتهای فیلد دریافت می کنیم.

به هر حال، در صورتی که دنباله بایت‌هایی که بعد از سرصفحه می‌آیند مشخص باشد، از نمونه‌گیری زیر رشته‌ای برای شناسایی بدافزار استفاده می‌شود (به عنوان مثال، "0x90، 0x90، 0x90، 0x04" در یک بسته UDP):

Udp == 90:90:90:04

عملیات مقایسه مورد استفاده در عبارات بولی:

  • معادله (==) - برابر؛
  • ne (!=) - برابر نیست.
  • gt (>) - بیشتر؛
  • آن (<) - меньше;
  • ge (>=) - بزرگتر یا مساوی؛
  • لی (<=) - меньше или равно.tcp.dstport ne 8080 && tcp.len gt 0 && data eq A0

در واقع، این نظریه برای شروع کافی است. سپس در صورت لزوم یا بدون آن از عقل سلیم و پرانتز استفاده کنید. همچنین، فراموش نکنید که یک فیلتر اساساً یک عبارت بولی است: اگر درست باشد، بسته بر روی صفحه نمایش داده می شود، اگر نادرست باشد، نمایش داده نمی شود.

فیلتر Pcap برای تشخیص اسکن پورت Netbios

پورت dst 135 یا dst port 445 یا dst port 1433 و tcp & (tcp-syn) != 0 و tcp & (tcp-ack) = 0 و src net 192.168.56.0/24

به دنبال یک رباینده IP

در یک بخش شبکه محلی، (به یک دلیل) آدرس های IP یکسان دو یا چند گره وجود دارد. تکنیک "گرفتن" (تعیین آدرس های MAC) سیستم های متضاد به خوبی شناخته شده است: ما یک sniffer را روی رایانه سوم راه اندازی می کنیم، حافظه پنهان ARP را پاک می کنیم و درخواستی را برای حل MAC IP مورد نظر تحریک می کنیم، به عنوان مثال، با پینگ کردن آن. :

# arp -d 192.168.56.5 # ping -n -c 1 192.168.56.5

و سپس به ترافیک رهگیری شده نگاه می کنیم که پاسخ ها از آن MAC ها آمده است. اگر Wireshark تعداد زیادی بسته را گرفته باشد، با استفاده از سازنده یک فیلتر نمایش ایجاد می کنیم. در قسمت اول عبارت، ما پاسخ های ARP را انتخاب می کنیم، در قسمت دوم - آن دسته از پیام هایی که آدرس IP منبع با آدرس جستجو شده برابر است. ما ابتدایی ها را با عملگر && ترکیب می کنیم، زیرا لازم است که هر دو شرط به طور همزمان برآورده شوند:

(arp.opcode == پاسخ) && (arp.src.proto_ipv4 == 192.168.56.5)

ضمناً هنگام اجرای این سناریو هیچ شبکه رایانه ای تحت تأثیر قرار نگرفت زیرا از دو ماشین مجازی Oracle VirtualBox و یک اتصال شبکه از نوع Virtual Host Adapter استفاده شد.

بازرسی شبکه و لایه های انتقال

تا کنون، پروتکل ICMP یک ابزار نسبتاً مؤثر برای تشخیص پشته شبکه باقی مانده است. پیام های این پروتکل می تواند اطلاعات ارزشمندی در مورد مشکلات شبکه ارائه دهد.

همانطور که ممکن است حدس بزنید، فیلتر ICMP در Wireshark بسیار ساده است. کافی است در خط فیلتر در پنجره اصلی برنامه بنویسید: icmp. علاوه بر icmp، بسیاری از کلمات کلیدی دیگر که نام پروتکل هستند، مانند arp، ip، tcp، udp، snmp، smb، http، ftp، ssh و غیره کار می کنند.

اگر ترافیک ICMP زیادی وجود دارد، می توان نقشه برداری را با جزییات، به استثنای درخواست های اکو (نوع 0) و پاسخ های اکو (نوع 8) انجام داد:

Icmp و ((icmp.type ne 0) و (icmp.type ne 8))

در شکل شکل 4 نمونه کوچکی از پیام های ICMP تولید شده توسط یک روتر لینوکس آزمایشی را نشان می دهد. پیام "Port Unreachable" معمولاً پیش فرض است. همچنین هنگامی که یک دیتاگرام UDP بر روی یک پورت استفاده نشده دریافت می شود توسط پشته شبکه تولید می شود. برای اینکه روتر مجازی مبتنی بر دبیان شروع به ارسال پیام‌های «میزبان غیرقابل دسترسی» و «ارتباطات مدیریتی فیلتر شده» کند، مجبور شدم آن را سرهم کنم. سیسکو معمولاً به طور پیش فرض در مورد فیلترینگ اداری اطلاع رسانی می کند. پیام "زمان تا زندگی بیش از حد" وجود یک حلقه را در بخشی از شبکه نشان می دهد (و چنین بسته هایی می توانند هنگام ردیابی یک مسیر نیز ظاهر شوند).

به هر حال، در مورد فایروال ها. می‌توانید با استفاده از آیتم «قوانین فایروال ACL» در منوی «ابزار»، قوانینی را برای فایروال‌های محبوب مستقیماً در Wireshark ایجاد کنید. ابتدا باید از لیست بسته ای را انتخاب کنید که اطلاعات آن مورد استفاده قرار می گیرد. ACLهای استاندارد و توسعه یافته سیسکو، قوانین یونیکس مانند از IP Filter، IPFirewall (ipfw)، Netfilter (iptables)، Packet Filter (pf) و Windows Firewall (netsh) در دسترس هستند.

و اکنون به طور خلاصه در مورد اصول اولیه فیلتر در سطح شبکه، که بر اساس فیلدهای هدر بسته IP است - آدرس منبع (ip.src) و آدرس گیرنده (ip.dst):

(ip.src == 192.168.56.6) || (ip.dst == 192.168.56.6)

به این ترتیب ما تمام بسته هایی را که این آدرس IP دریافت یا ارسال کرده است مشاهده خواهیم کرد. می‌توانید کل زیرشبکه‌ها را با استفاده از نماد ماسک CIDR فیلتر کنید. به عنوان مثال، بیایید یک میزبان آلوده را شناسایی کنیم که هرزنامه ارسال می کند (در اینجا 192.168.56.251 آدرس IP سرور SMTP ما است):

Ip.src == 192.168.56.0/24 و tcp.dstport == 25 و !(ip.dst == 192.168.56.251)

به هر حال، برای انتخاب بر اساس آدرس های MAC، باید از eth.src، eth.dst و eth.addr اولیه استفاده کنید. گاهی اوقات مشکلات لایه شبکه بسیار بیشتر از آنچه تئوری پیشنهاد می کند به لایه اترنت مرتبط است. به طور خاص، هنگام تنظیم مسیریابی، دیدن اینکه گره سرسخت بسته‌ها را به کدام آدرس MAC روتر می‌فرستد، می‌تواند بسیار مفید باشد. با این حال، برای چنین کار ساده ای، ابزار tcpdump، تقریباً استاندارد برای سیستم های یونیکس مانند، کافی است.

Wireshark همچنین با فیلتر کردن پورت مشکلی ندارد. برای TCP، کلمات کلیدی tcp.srcport، tcp.dstport و tcp.port در خدمت شما هستند، برای UDP - udp.srcport، udp.dstport و udp.port. درست است، زبان فیلتر Wireshark داخلی دارای آنالوگ پورت اولیه در Pcap نیست، که نشان دهنده هر دو پورت UDP و TCP است. اما این را می توان به راحتی با استفاده از یک عبارت بولی برطرف کرد، به عنوان مثال:

Tcp.port == 53 || udp.port == 53

بداهه سازی با ترافیک HTTP

پروتکل های کاربردی، به ویژه HTTP، یک موضوع "ابدی" در زمینه sniffing هستند. انصافاً باید گفت که ابزارهای نرم افزاری تخصصی زیادی برای بررسی ترافیک وب ایجاد شده است. اما ابزار جهانی مانند Wireshark با سیستم فیلتر انعطاف پذیر خود در این زمینه اصلاً اضافی نیست.

ابتدا، بیایید با رفتن به اولین سایتی که به ذهنتان می رسد، مقداری ترافیک وب جمع آوری کنیم. اکنون بیایید به دنبال ذکر منبع اینترنتی مورد علاقه خود در پیام های پروتکل TCP باشیم که به عنوان یک انتقال برای HTTP عمل می کند:

Tcp حاوی "سایت" است

عملگر حاوی وجود یک رشته فرعی در یک فیلد مشخص را بررسی می کند. همچنین یک عملگر matches وجود دارد که می تواند از عبارات منظم سازگار با Perl استفاده کند.


البته پنجره "Filter Expressions" کمک کننده خوبی است، اما گاهی اوقات پیمایش در لیست طولانی برای جستجوی فیلد مورد نظر بسیار خسته کننده است. راه ساده‌تری برای ایجاد/تغییر فیلترهای نمایش وجود دارد: استفاده از منوی زمینه هنگام مشاهده بسته‌ها. برای انجام این کار، کافی است بر روی فیلد مورد علاقه کلیک راست کرده و یکی از زیرمجموعه های مورد “Apply As Filter” یا “Prepare a Filter” را انتخاب کنید. در حالت اول تغییرات بلافاصله اعمال می شوند و در حالت دوم امکان تصحیح عبارت وجود خواهد داشت. "انتخاب شده" به این معنی است که مقدار فیلد به یک فیلتر جدید تبدیل می شود، "انتخاب نشده" به همین معنی است، فقط با یک نفی. بندهایی که با "..." شروع می شوند، مقدار فیلد را به یک عبارت موجود، مشروط به عملگرهای بولی، اضافه می کنند.

با ترکیب ابزارهای مختلف رابط گرافیکی Wireshark و دانش پروتکل HTTP، می توانید به راحتی به سطح مورد نظر از نمایش ترافیک در پنجره اصلی برنامه دست پیدا کنید.

به عنوان مثال، برای دیدن تصاویری که مرورگر هنگام تولید صفحه از وب سرور درخواست کرده است، فیلتری که محتوای URI ارسال شده به سرور را تجزیه و تحلیل می کند، این کار را انجام می دهد:

(http.host eq "www..request.uri حاوی ".jpg#26759185") یا (http.request.uri حاوی ".png#26759185" است))

همان چیزی است، اما با استفاده از مسابقات:

(http.host eq "www..request.uri matches ".jpg|.png#26759185")

البته، فیلدهای پیام از پروتکل های سطوح مختلف را می توان با خیال راحت در یک عبارت ترکیب کرد. به عنوان مثال، برای اینکه بفهمیم این سرور کدام تصاویر را برای مشتری ارسال کرده است، از آدرس منبع بسته IP و فیلد "Content-Type" در پاسخ HTTP استفاده می کنیم:

(ip.src eq 178.248.232.27) و (http.content_type حاوی "تصویر" است)

و با استفاده از فیلد درخواست HTTP "مرجع"، می توانید متوجه شوید که مرورگر هنگام ایجاد صفحه برای سایت مورد علاقه شما، از کدام سرورهای دیگر محتوا را دریافت می کند:

(http.referer eq "http://www..dst eq 178.248.232.27))

بیایید به چند فیلتر مفید دیگر نگاه کنیم. برای نمونه‌برداری از درخواست‌های HTTP که با استفاده از متد GET از ترافیک انجام شده‌اند، می‌توانید از عبارت زیر استفاده کنید:

Http.request.method == GET

در سطح برنامه است که فیلترهای نمایشگر با زیبایی و سادگی خود را نشان می دهند. برای مقایسه: به عنوان مثال، برای حل این مشکل با استفاده از Pcap، باید از این ساختار سه طبقه استفاده کنید:

پورت 80 و tcp[((tcp & 0xf0) >> 2):4] = 0x47455420

برای اینکه بفهمیم کدام اتصالات www توسط کاربر میزبان 192.168.56.8 در یک بازه زمانی مشخص (مثلاً در زمان استراحت ناهار) ایجاد شده است، از Frame.time primitive استفاده می کنیم:

Tcp.dstport == 80 && frame.time >= "Yan 9, 2013 13:00:00" && frame.time< "Yan 9, 2013 14:00:00" && ip.src == 192.168.56.8

خوب، نمایش درخواست های URI حاوی کلمات "ورود" و "کاربر"، به علاوه "یادآوری" رمز عبور:

Http.request.uri با "login.*=user" مطابقت دارد (http حاوی "رمز عبور") || (پاپ حاوی "PASS" است)

رهگیری محتوای SSL

آفت واقعی یک محقق ترافیک شبکه رمزگذاری است. اما اگر یک فایل ارزشمند با گواهینامه دارید (به هر حال، باید مانند چشمان خود از آن مراقبت کنید)، آنگاه می توانید به راحتی متوجه شوید که کاربران این منبع در جلسات SSL چه چیزی را پنهان می کنند. برای انجام این کار، باید پارامترهای سرور و فایل گواهی را در تنظیمات پروتکل SSL مشخص کنید (مورد "Preferences" در منوی "Edit"، SSL را در لیست پروتکل ها در سمت چپ انتخاب کنید). فرمت های PKCS12 و PEM پشتیبانی می شوند. در مورد دوم، شما باید رمز عبور را از فایل با استفاده از دستورات حذف کنید:

Openssl pkcs12 -export -in server.pem -out aa.pfx openssl pkcs12 -in aa.pfx -out serverNoPass.pem –nodes

اطلاعات

استخراج ترافیک برای نظارت و رفع اشکال از ترافیک شبکه توسط فیلتر بسته انجام می شود. فیلتر بسته بخشی از هسته سیستم عامل است و بسته های شبکه را از درایور کارت شبکه دریافت می کند.

نمونه هایی از فیلترهای بسته برای سیستم عامل یونیکس مانند BPF (فیلتر بسته برکلی) و LSF (فیلتر سوکت لینوکس) هستند. در BPF، فیلترینگ بر اساس زبان ماشین اولیه حساس به حروف کوچک و بزرگ پیاده سازی می شود که BPF مترجم آن است.


تجزیه و تحلیل ترافیک از میزبان های راه دور

کاربران ویندوز می‌توانند نه تنها با رابط‌های رایانه‌ای که Wireshark روی آن اجرا می‌شود کار کنند، بلکه می‌توانند ترافیک را از ماشین‌های راه دور نیز ضبط کنند. یک سرویس ویژه برای این کار (پروتکل ضبط بسته از راه دور) موجود در کتابخانه WinPcap وجود دارد. ابتدا باید در Snap-in مدیریت سرویس (services.msc) فعال شود. اکنون، با راه اندازی Wireshark بر روی یک کامپیوتر راه دور، می توانید به گره ای که سرویس رهگیری ترافیک از راه دور در آن اجرا می شود (به طور پیش فرض با استفاده از پورت 2002) متصل شوید و داده ها از طریق پروتکل RPCAP به شما منتقل می شود.

من همچنین گزینه هایی برای اتصال به خانه شما * روتر nix "از بیرون" برای تجزیه و تحلیل ترافیک از راه دور ارائه می دهم:

$ssh [ایمیل محافظت شده]"tshark -f "port !22" -i any -w -" | wireshark -k -i - $ssh [ایمیل محافظت شده] tcpdump -U -s0 -w - "not port 22" | wireshark -k -i -

ابزاری که باید داشته باشید

Wireshark یک ابزار شناخته شده برای رهگیری و تجزیه و تحلیل تعاملی ترافیک شبکه است و یک استاندارد واقعی برای صنعت و آموزش است. تحت مجوز GNU GPLv2 توزیع شده است. Wireshark با بیشتر پروتکل‌های شناخته شده کار می‌کند، دارای یک رابط کاربری گرافیکی مبتنی بر GTK+، یک سیستم فیلتر ترافیک قدرتمند و یک مفسر داخلی Lua برای ایجاد رمزگشاها و کنترل‌کننده‌های رویداد است.

محموله را بازیابی کنید

در محافل خاص، ابزارهای تخصصی به طور گسترده ای شناخته شده است که به شما امکان می دهد اشیاء اطلاعات نهایی را از ترافیک خارج کنید: فایل ها، تصاویر، محتوای ویدیویی و صوتی و غیره. به لطف زیرسیستم تحلیلی قدرتمند خود، Wireshark بیش از این قابلیت را پوشش می دهد، بنابراین به دنبال دکمه "ذخیره بار..." در پنجره های تحلیل مربوطه بگردید.

نتیجه

در پس زمینه شیفتگی عمومی رایانه های زیرزمینی به امنیت برنامه های کاربردی شبکه، مشکلات عظیم سطوح پایین به تدریج در پس زمینه محو می شوند. واضح است که لایه های شبکه و حمل و نقل به طور گسترده مورد مطالعه و تحقیق قرار گرفته است. اما مشکل اینجاست که متخصصانی که با تزریق SQL، اسکریپت نویسی متقابل سایت و گنجاندن بزرگ شده اند، از لایه عظیم پنهان شده در زیر نوک کوه یخ آگاه نیستند و اغلب تسلیم مشکلات به ظاهر ابتدایی می شوند.

یک sniffer، مانند یک دیباگر و یک دی اسمبلر، جزئیات عملکرد سیستم را با جزئیات کامل نشان می دهد. با نصب Wireshark و کمی مهارت، می توانید تعاملات شبکه را همانطور که هستند مشاهده کنید - به شکلی بی گناه و بکر. و فیلترها به شما کمک خواهند کرد!

نرم افزار Wiresharkیک ابزار نسبتاً شناخته شده و پیشرفته برای نظارت بر ترافیک شبکه است.

این برنامه در بسیاری از سیستم عامل ها از جمله Windows، UNIX، Linux، Mac OS، Free BSD، Solaris، Open BSD، Net BSD و غیره به طور یکسان به درستی کار می کند. برنامه هایی از این نوع خود گاهی اوقات sniffer نامیده می شوند.

این برنامه ردیابی ترافیک را با استفاده از انواع پروتکل های شبکه مانند DNS، FDDI، FTP، HTTP، ICQ، IPV6، IPX، IRC، MAPI، MOUNT، NETBIOS، NFS، NNTP، POP، PPP، TCP، TELNET بسیار آسان می کند. ، X25 و غیره. P.

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

بیایید با این واقعیت شروع کنیم که اکثر شبکه های محلی خانگی یا اداری بر اساس استفاده از دستگاه هایی به نام هاب یا متمرکز کننده ساخته شده اند.

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

نحوه استفاده از Wireshark

بنابراین، برای اجرای برنامه به حقوق دسترسی نوع ROOT نیاز دارید، زیرا تنها با چنین حقوقی می توانید به تمام رابط های شبکه دسترسی کامل داشته باشید. خود برنامه می تواند در حالت عادی یا از خط فرمان راه اندازی شود.

پس از این، می توانید برنامه اصلی را راه اندازی کنید.

پس از شروع برنامه، پنجره ای ظاهر می شود که در آن باید لاگین و رمز عبور خود را با تایید دسترسی وارد کنید.

روند کار با برنامه بسیار ساده است.

برای شروع گرفتن بسته های شبکه، فقط باید به منوی اصلی یعنی Menu/Capture Options رفته و سپس در قسمت Interface رابط مورد نیاز را انتخاب کرده و دکمه Start را کلیک کنید.

همین.

طبیعتاً می توانید از تنظیمات اضافی ارائه شده در این پنجره نیز استفاده کنید.

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

این برای بسیاری از کاربران بهترین کار را خواهد داشت، زیرا تنظیمات پیش فرض به گونه ای ارائه می شود که مناسب ترین حالت عملیاتی را برای هر رابط شبکه ارائه می دهد.

برای اتمام فرآیند ردیابی دریافت و ارسال بسته های شبکه، کافیست روی دکمه Stop کلیک کنید، پس از آن روی صفحه اطلاعات کاملی از فرآیند نمایش داده می شود و نمایش با استفاده از حالت گرافیکی انجام می شود که کاملا راحت است.

به طور کلی، در پایان کل فرآیند، فایل گزارش را می توان برای تجزیه و تحلیل یا پردازش بعدی ذخیره کرد.

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

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

سلام به همه! من همچنان با WireShark آشنا می شوم.
Wireshark را می توان در روگرفت فایل ما پیدا کرد، فقط در صورتی که این لینک باشد.

امروز می آموزیم که چگونه فایل های منتقل شده از طریق شبکه را با استفاده از تخلیه ترافیک بازیابی کنیم.

اول از همه، بیایید یک دامپ آموزشی با ترافیک FTP ضبط شده باز کنیم. فایل را به صورت استاندارد باز کنید، File -> Open.

با کلیک راست بر روی بسته اول، یک منوی زمینه دریافت می کنیم که در آن باید آیتم Follow TCP Stream را انتخاب کنیم. کل جلسه را جمع کنید:


در اینجا ما پنجره ای را خواهیم دید که تمام دستورات FTP و پاسخ هایی که در این جلسه ارسال شده اند را نمایش می دهد. بیایید به مناطق برجسته توجه کنیم.

  1. ما اندازه فایل "OS Fingerpringing with ICMP.zip" را درخواست می کنیم. سرور گزارش می دهد: 610078 بایت (این را بعدا بررسی خواهیم کرد).
  2. درخواست می کنیم انتقال این فایل.

بنابراین، ما به این فایل علاقه مند هستیم (فرض کنیم)، بنابراین فیلتر را پاک می کنیم (اگر خالی نیست) و به Dump نگاه می کنیم. بنابراین من محلی را که دستور RETR (پرونده دریافت) منتقل می شود، هایلایت کردم و سپس یک جلسه جدید در پورت FTP-DATA باز شد، یعنی. انتقال اطلاعات. ما این جلسه را طبق طرح شناخته شده مونتاژ می کنیم (به بالا مراجعه کنید).


خواندن این نسخه در حال حاضر سخت است، به جای متن، برخی از squiggles. این چیزی است که ما نیاز داریم، ما اینها را حفظ خواهیم کرد داده ها با فرمت RAWبرای تشکیل پرونده


ما می توانیم هر چیزی را به عنوان نام بگذاریم. اما ما از تاریخچه تیم ها به یاد داریم که یک آرشیو ZIP مخابره شد. اسمش را 1.zip گذاشتم و روی دسکتاپم گذاشتم. شما هم می توانید همین کار را انجام دهید.


حالا فایل را می توان باز کرد! همانطور که می بینید، این یک آرشیو ZIP واقعی با فایل های دیگر در داخل است. امکان بازیابی انتقال تصاویر از طریق پروتکل HTTP، کد HTML صفحات وب و ... به همین صورت کاملاً امکان پذیر است.


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

دوستان! به ما بپیوندید گروه VKontakte ، به از دست ندهمقالات جدید! میخوای بگی متشکرم ? لایک کنید و بازنشر کنید! این بهترین پاداش برای من از جانب شماست! به این ترتیب می دانم که مقالاتی از این دست برای شما جالب است و من بیشتر و با اشتیاق زیاد می نویسم!

همچنین، مشترک شوید کانال یوتیوب ما! ویدیوها به طور منظم پست می شوند و بسیار عالی خواهد بود که یکی از اولین کسانی باشید که چیزی را می بینید!

شما همچنین دوست خواهید داشت:

تلاش مدیریت شماره 4: رهگیری رمز عبور از طریق WireShark

Wireshark یک تحلیلگر پروتکل شبکه بسیار محبوب است که از طریق آن یک مدیر شبکه می تواند جریان ترافیک داده به/از یک سیستم کامپیوتری در یک شبکه را بررسی کند.

این ابزار مدت زیادی است که در دسترس بوده و ویژگی های مفید زیادی را ارائه می دهد.

یکی از این ویژگی ها فیلتر نمایش است که از طریق آن می توانید ترافیک داده های گرفته شده را بر اساس عوامل مختلفی مانند پروتکل ها، پورت های شبکه، آدرس های IP و ... فیلتر کنید.

در این مقاله، اصول اولیه Wireshark و 5 فیلتر نمایشگر ضروری Wireshark را که هر مبتدی باید بداند، مورد بحث قرار خواهیم داد.

اگر کاملاً با Wireshark تازه کار هستید، ابتدا آن را دانلود کرده و روی سیستم خود نصب کنید.

پس از نصب، رابط کاربری گرافیکی Wireshark را اجرا کنید.

در اینجا یک نمونه از صفحه اصلی Wireshark آورده شده است:

اولین مرحله این است که رابط را انتخاب کنید (که داده ها باید روی آن ثبت شوند) و سپس روی دکمه "شروع" کلیک کنید.

هنگامی که دکمه "شروع" را فشار دهید، اطلاعات مربوط به تمام بسته های داده ورودی و خروجی (در رابط انتخاب شده) در خروجی نمایش داده می شود.

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

حالا بیایید به موضوع خودمان برگردیم. فیلترهای نمایش را می توان از طریق فیلد متنی "Filter" که درست بالای قسمت خروجی ترافیک قرار دارد وارد کرد.

نمونه های فیلتر صفحه نمایش Wireshark

در این بخش، 5 سینتکس فیلتر خروجی مفید را مورد بحث قرار خواهیم داد

1. نتایج را بر اساس پروتکل فیلتر کنید

شما به راحتی می توانید نتایج را بر اساس یک پروتکل خاص فیلتر کنید. به عنوان مثال، برای نمایش تنها بسته هایی که حاوی پروتکل TCP هستند، کافی است نام پروتکل را در کادر متن فیلتر بنویسید.

در اینجا یک مثال است:

بنابراین می توانید ببینید که تمام بسته های حاوی پروتکل های TCP در خروجی نشان داده شده اند.


2. نتایج را بر اساس پورت فیلتر کنید

همچنین می توانید نتایج را بر اساس پورت های شبکه فیلتر کنید. به عنوان مثال، برای نمایش تنها بسته هایی که حاوی پروتکل TCP و دارای پورت مبدا یا مقصد 80 هستند، به سادگی بنویسید. tcp.port معادله 80در پنجره فیلتر

در اینجا یک نمونه از صفحه نمایش است:

3. نتایج را بر اساس شرایط متعدد فیلتر کنید

اگر سناریویی وجود دارد که می خواهید نتایج را بر اساس شرایطی که به یکدیگر مرتبط نیستند نمایش دهید، از یک فیلتر استفاده کنید. یا. به عنوان مثال، برای نمایش تمام بسته های حاوی پروتکل TCP یا DNS، به سادگی بنویسید تی cp یا dnsدر پنجره فیلتر

در اینجا یک نمونه از صفحه نمایش است:

بنابراین می توانید ببینید که خروجی بسته های حاوی پروتکل TCP یا DNS را نشان می دهد.

به روشی مشابه می توانید از فیلتر استفاده کنید و. این فیلتر در جایی استفاده می شود که می خواهید نتایج را بر اساس شرایطی که به یکدیگر مرتبط نیستند نمایش دهید.به عنوان مثال، برای نمایش تمام بسته های حاوی TCP و همچنین پروتکل HTTP، به سادگی بنویسید tcp و httpدر قسمت فیلتر

در اینجا یک نمونه از صفحه نمایش است:

می بینید که خروجی بسته های حاوی پروتکل TCP و HTTP را نشان می دهد.

4. نتایج را بر اساس آدرس های IP فیلتر کنید

از فیلترها برای فیلتر کردن نتایج بر اساس آدرس IP استفاده کنید srcیا dst.

به عنوان مثال، برای نمایش تنها بسته هایی که حاوی آدرس IP خروجی 192.168.0.103 هستند، کافی است ip.src == 192.168.0.103 را در پنجره فیلتر بنویسید.

در اینجا یک مثال است:

به همین ترتیب، می توانید از فیلتر استفاده کنید dst (ip.dst)برای فیلتر کردن بسته ها بر اساس آدرس های IP مقصد.

5. نتایج را بر اساس توالی بایت فیلتر کنید

گاهی اوقات لازم است بسته ها را بر اساس دنباله خاصی از بایت ها بررسی کنید.

برای انجام این کار، به سادگی از یک فیلتر حاوی نام پروتکل و دنباله بایت استفاده کنید.

خروجی بسته های TCP حاوی دنباله بایت 00:01:02 را نمایش می دهد.