-
دوشنبه, ۲ تیر ۱۳۹۹، ۰۱:۰۰ ب.ظ
-
۷۴۱
از wireshark تا scapy و tshark
درود به همه
امروز تصمیم گرفتم یه پستی بنویسم که یکم از فضای اسکریپت نویسی و کد نویسی دور بشیم و یه سری به بعضی ابزار هایی که توی دنیای شبکه و امنیت خیلی کاربرد دارن بزنیم . منظورم از این ابزار ها ، ابزار هایی هستن که برای شنود ، آنالیز و تحلیل پکت ها و داده ها در شبکه استفاده میشن .
از ابزار های گرافیکی مثل wireshark شروع میکنیم تا برسیم به ابزار های روی خط فرمان مثل tshark یا حتی بعضی کتابخانه ها وماژول ها مثل scapy که همشون برای شنود و تحلیل شبکه به کار میرن .
بهتره با یه توضیح و توصیف کلی شروع کنیم . این ابزار ها دقیقا چی هستن ؟ کجا به درد میخورن ؟ به درد چه کسایی میخورن ؟
خب برای جواب دادن به سوال اول باید بگم که به وسیله ی این ابزار ها میشه ۱ - پکت ها و داده های انتقالی در شبکه رو شنود کرد . و ۲ - این اطلاعات شنود شده رو تحلیل کرد یا حتی گاهی اوقات بهشون یه سری چیزا تزریق کرد و تغیرشون داد یا حتی پکت های دلخواه تولید کرد و فرستاد توی شبکه . و ما با جمع بندی همه اینا میگیم این ابزار ها برای تحلیل شبکه هستن .
فک میکنم برای سوال اول کافی باشه . سوال اولو به تدریج تا آخر این پست جواب های بیشتری براش پیدا میکنیم .
و اما سوال دوم و سوم رو باهم جواب میدیم . یکی از اصلی ترین و اساسی ترین مهارت های یک تستر نفوذ اینه که اون چیزی که داره توی شبکه و کامپیوتر اتفاق میافته رو درک کنه . درک کردن یعنی اینکه اونارو خوب بفهمه و بتونه تحلیلشون کنه . بنابراین اینجور افراد قطعا باید توانایی نسبتا خوبی در کار کردن با اینجور ابزار هارو داشته باشن . این ابزار ها در جاهای مختلفی به کار میاد از مقاصد آموزشی گرفته تا عیب یابی شبکه و دیدن اینکه چه چیزی داره اتفاق میافته تو شبکه و حتی در مقاصد سوء هم به کار گرفته میشن .
خب اما سوال بعدی اینه که این ابزار ها روی چه چیزی شنود انجام میدن ؟ روی شبکه داخلی یا ...
ببینید ما یه برد سخت افزاری داریم بهش میگن کارت شبکه . کارش چیه ؟ یه مدار الکترونیکی هستش که میتونه سیگنال های شبکه رو دریافت و ارسال کنه و در واقع کامپیوتر به وسیله ی همین کارت شبکه میتونه به شبکه وصل بشه . حالا کارت شبکه های مختلف روی بستر های مختلفی فعالیت میکنن . مثلا یه کارت شبکه روی بستر وایرلس یا بیسیم فعالیت میکنه بنابراین با امواج وای فای سروکار داره . یا یه کارت شبکه دیگه حالت بیسیم پشتیبانی نمیکنه و با سیم باید اطلاعات رو ارسال و دریافت کنه .
شاید شما هم کامپیوتری داشته باشید که به صورت پیشرفض کارت شبکه وای فای نداره بنابراین نمیتونید باهاش محیط رو اسکن وای فای کنید و بهشون وصل بشید . بنابراین رفتید و براش یه کارت شبکه وایرلس خریدید . تصویر زیر یه کارت شبکه وایرلس هستش که به صورت اکسترنال وصل میشه به سیستم شما و به سیستم شما این قابلیت رو میده که بتونه سیگنال های امواج بیسیم رو ارسال و دریافت کنه .
چی داشتیم میگفتیم ؟ داشتیم میگفتیم که ابزار های تحلیل شبکه از کجا شنود میکنن . این ابزار ها از طریق کارت های شبکه مختلف شنود میکنن . برای مثال اگر شما به این ابزار ها بگید که روی کارت شبکه LAN شما شنود کنه خب فقط روی پکت های انتقال روی LAN رو شنود میکنه . یا اگه بگید روی کارت شبکه وایرلس شنود کنه خب اطلاعات انتقالی روی همون کارت شبکه یعنی امواج وایفای رو شنود میکنه .
پس تا اینجا فهمیدیم که این ابزار ها از کجا شنود میکنن .
توضیحات دیگه بسه بریم عملی کار کنیم .
اول از ابزار های گرافیکی شروع میکنیم . یکی از بینظیر ترین این ابزار ها ابزار wireshark هستش . این ابزار هم نسخه ی ویندوز داره و هم نسخه ی لینوکس . من دارم روی لینوکس اجراش میکنم .
اول که برنامه رو باز میکنم ازم میپرسه میخوای روی چه کارت شبکه ای برات شنود انجام بدم . (تصویر زیر)
خب من کارت شبکه ای رو انتخاب میکنم که باهاش به شبکه وصلش شدم چون میخوام شبکه رو شنود کنم .
بعد از انتخاب کارت شبکه یهو میبینیم که بوممممممممم !کلی پکت هی داره شنود میشه . (تصویر زیر)
این پکت ها در واقع همون اطلاعات انتقالی توی شبکه هستن که wireshark برامون شنود میکنه .
حالا برای اینکه این شنود رو بیشتر حس کنیم من با سیستم خودم روترمون با آی پی 192.168.1.1 رو پینگ میکنم . (تصویر زیر)
خب میدونید که ابزار پینگ از پروتکل ICMP استفاده میکنه . بنابراین به محض اینکه عملیات پینگ انجام میشه وایرشارک کلی بسته با پروتکل ICMP ضبط میکنه و آدرس مبدا و مقصد رو هم نوشته . (تصویر زیر)
دیدید چقد جالبه کار با این ابزار . حالا داخل وایرشارک میشه یه سری فیلتر هایی رو هم اعمال کرد .
اگه توجه کنید بالای ابزار یه ورودی هست که میشه داخلش فیلتر های خاصی رو اعمال کرد .
مثلا من دوباره مثل قبل روتر رو پینگ میکنم و عبارت icmp رو در بخش فیلتر مینویسم و اینتر میزنم . با اعمال این فیلتر فقط بسته هایی که از پروتکل icmp استفاده میکنن رو به من نشون میده . (تصویر زیر)
حالا فرض کنید یه هکر مخ این ابزار باشه و کلی فیلتر ازش بلد باشه دیگه خودتون ببینید چقد میتونه اطلاعات مفید از شبکه بدست بیاره .
خب تا اینجا از وایرشارک صحبت کردن دیگه بسه . بزارید چنتا منبع برا یادگیریش بهتون معرفی کنم . البته بگم یادگیری اینجور نرم افزار ها برای کسی مفیده که شبکه بلد باشه وگرنه اگه شبکه ندونه و بخواد این ابزار ها رو یاد بگیره مثل این میمونه که کسی بخواد رانندگی یاد بگیره ولی ندونه ماشین چیه :)
اگه اهل آموزش های منبع اصلی هستین که این لینک زیر از خود سایت وایرشارکه :
https://www.wireshark.org/download/docs/user-guide.pdf
داخل سایت های فارسی هم که با یکم جستوجو یه سری خرده آموزش هایی پیدا میکنین . پس گوگل کردن بر عهده خودتون :)
یکی از مهمترین بخش های یادگیری وایرشارک یادگرفتن فیلتر هاشه که رفرنس ها و منابع زیادی براش هست .
لینک زیر یه برگه تقلب (cheat sheet) برای فیلتر های وایرشارکه :
https://freedevelop.org/wp-content/uploads/Wireshark_cheatsheet3.pdf
اما ابزار بعدی که معرفی میکنیم ابزار Tshark هستش . ابزار تی شارک دقیقا کار همون وایرشارک رو انجام میده فقط تفاوتش اینه که گرافیکی نیست و تحت خط فرمانه و البته این براش یک عیب محسوب نمیشه کلی خوبی بهش اضافه میشه با اینکار . گاهی اوقات ابزار های خط فرمان به گرافیکی ترجیح داده میشه به خاطر دسترسی راحتی که داره .
برای مثال در تصویر زیر یه شنود با ابزار Tshark مثل همون وایرشارک رو انجام دادیم:
برای یادگیری tshark خود help ابزار کمک شایانی به شما میکنه . به man page هم سر بزنید حتما .
اینم یه برگه تقلب برای Tshark :
https://wiki.sans.blue/Tools/pdfs/tshark.pdf
اما غیر از Tshark یه سری کتابخونه ها و ماژول هایی هم نوشته شدن که کار همین وایرشارک و اینا رو انجام میدن . یعنی پکت ها رو شنود میکنن و میشه باهاشون تحلیل و آنالیزشون کرد یا حتی میشه باهاشون پکت تولید کرد . این ماژول ها به درد زبان های برنامه نویسی میخورن . برای مثال یکی از معروف ترین ماژول ها توی این زمینه ماژول scapy هستش که کاملا با زبان پایتون سازگاره و توی اسکریپت های پایتون میشه ایمپورتش کرد یا به عبارتی وارد اسکریپت کرد و ازش برای کار هایی مثل شنود و تحلیل پکت های شبکه استفاده کرد .