در این بخش از دوره آموزشی SEC504 شما با Sniffing در شبکه و ابزارهای مختلفی که در این بخش مورد استفاده قرار می گیرد مانند مجموعه Dsniff آشنا خواهید شد.
Sniffing
یکی از تکنیکهای محبوب که مهاجمان را قادر میسازد تا بستههای یک شبکه را دریافت کنند، Sniffing در شبکه میباشد و اغلب یک ابزار در حوزه Sniff در جعبه ابزار نفوذگران موجود است.
یکی از مواردی که در هنگام Sniff حائز اهمیت میباشد، مد بیقاعده یا promiscuous mode است. هنگامی که یک کارت شبکه (Interface Ethernet) بتواند اقدام به جمع آوری تمام ترافیک شبکه بدون در نظر گرفتن آدرس MAC مقصد آن نماید، گفته میشود که کارت شبکه در حالت بی قاعده فعالیت میکند. چراکه به صورت عادی یک کارت شبکه تنها میتواند اطلاعاتی را که آدرس MAC مقصد آن متعلق به خودش میباشد را دریافت نماید.
لازم به ذکر است آدرس MAC یک آدرس سخت افزاری منخصر به فرد میباشد که برای هر کارت شبکه در نظر گرفته میشود.
شبکههای Ethernet سنتی و قدیمی معمولا از Hub برای ارتباطات خود استفاده میکردند و با توجه به این که Hub اطلاعات دریافتی از یک پورت را به کلیه پورتها ارسال میکند (Broadcast)، بنابراین شبکههای مبتنی بر Hub به صورت ذاتی قابل Sniff میباشند و با توجه به اینکه ترافیک برای همه پورتها ارسال میشود، تنها کافی است که کارتشبکه نفوذگر در مد بی قاعده تنظیم شده باشد تا بتواند اطلاعات را دریافت نماید.
در مقابله Hub، سوییچها اطلاعات دریافتی از یک پورت با به صورت Unicast تنها به مقصد مورد نظر ارسال میکنند و اطلاعات در این شبکهها Broadcast نمیگردد. در سوییچها جدولی با نام CAM که مخفف Content Addressable Memory میباشد، وجود دارد که آدرس MAC مربوط به هر پورت از سوییچ را در خود نگه داری میکند. سوییچها به صورت هوشمند عمل میکنند و هنگام دریافت اطلاعات از یک پورت آدرس MAC مبدا و مقصد را استخراج نموده و با توجه به جدول CAM این اطلاعات را به مقصد مورد نظر هدایت میکند.
با توجه به این موضوع نفوذگر باید به گونههای مختلفی بستهها را به سمت خود هدایت کند که در ادامه به این روشها اشاره مینماییم.
ابزار آنالیز Wireshark
یکی از ابزارهای بسیار مفیدی که برای آنالیز بستهها و همچنین Sniff از آن استفاده میشود، ابزار Wireshark میباشد. این ابزار پیش از این با نام Ethereal هم شناخته میشد. وایرشارک ویژگیهای بسیاری دارد که برخی از آنها عبارتند از:
• رایگان و متن باز بودن
• دارا بودن محیط گرافیکی و کاربر پسند
• قابلیت نصب بر روی سیستم عاملهای مختلف
• قابلیت Capture نمودن ترافیک و نمایش آنها در قالبهای مختلف (لایههای TCP/IP)
• پشتیبانی از تعداد زیادی از پروتکلهای شبکه (بیش از 500 پروتکل مختلف)
توجه داشته باشید که این ابزار را بروزرسانی نمایید زیرا آسیبپذیریهای Buffer over Flow در برخی از نسخههای آن یافت شده است.
برخی از فیلترهای معروف در ابزار وایرشارک به صورت زیر می باشد:
در حالت کلی Sniffing در شبکه به دو صورت Passive و Active انجام میشود. هنگامی که شما در شبکه خود از Hub استفاده مینمایید، با توجه به اینکه ترافیک در این شبکه Broadcast میشود، نیازی به هدایت ترافیک نبوده و تنها با استفاده از ابزارهایی مانند وایرشارک میتوان بستهها را مشاهده نمود، این نوع از Sniff را Passive میگویند.
اما هنگامی که در شبکه از سوییچ استفاده شده باشد، بستهها به صورت پیشفرض به شما نمیرسد و شما باید با استفاده از تکنیکهای مختلفی بستهها را به سمت سیستم خود هدایت نمایید که به این نوع Sniff اصطلاحا Active میگویند.
همانطور که اشاره گردید، ابزار وایرشارک یک ابزار برای حملات Passive Sniffing میباشد چراکه باید منتظر ترافیکی باشد که به سمت آن ارسال میگردد. ولی ما در یک شبکه سوییچ قرار داریم و باید ترافیک را به سمت خود هدایت نماییم، برای این کار ابزارهای مجموعه Dsniff بسیار مفید بوده و دارای قابلیتهای مناسبی برای حملات Active Sniffing میباشند.
این ابزار توسط Dug Song نوشته شده و بر روی سیستمهای لینوکس و BSD قابل اجرا میباشد. البته برخی از اجزای این مجموعه ابزار در ویندوز نیز قابل استفاده میباشند.
مجموعه Dsniff شامل ابزارهای مختلفی برای انجام حملات میباشد. البته Dsniff هم نام مجموعه این ابزارها بوده و هم نام یکی از ابزارهای داخل این مجموعه است. ابزار Dsniff قادر به رمزگشایی (decode) تعداد زیادی از پروتکلهای لایه اپلیکیشن است.
ابزارهایی که در مجموعه Dsniff وجود دارند عبارتند از: Dsniff، arpspoof، macof، tcpkill، tcpnice، msgsnarf، filesnarf، mailsnarf، URLsnnarf، webspy، DNSSpoof، webmitm، SSHmitm
پیش از اینکه با ابزار Dsniff به عنوان یک ابزار Active Sniff آشنا شویم، نیاز است تا به مطالبی در خصوص آدرسدهی در ساختار TCP/IP اشاره نماییم.
IP to MAC Mapping via ARP
در شبکه دو نوع آدرس وجود دارد که یکی به عنوان آدرس فیزیکی یا MAC شناخته میشود و دیگری به عنوان آدرسمنطقی یا IP شناخته میشود.
هنگام ارتباط شما بیشتر از آدرس IP برای اتصال به سیستمها استفاده میکنید ولی با توجه به اینکه شما برای ارتباط باید از سوییچ استفاده کنید و بسته شما برای انتقال به مقصد باید از این دستگاه عبور کند، شما به آدرس MAC هم نیاز خواهید داشت چراکه سوییچهای لایه دو که در شبکه استفاده میشوند همانطور که از نامشان پیداست تنها بستهها را تا لایه دو آنالیز میکنند و تنها میتوانند آدرس MAC را تشخیص دهند.
به همین دلیل شما باید علاوه بر آدرس IP، آدرس MAC سیستم را هم در اختیار داشته باشید تا بتوانید با آن ارتباط برقرار نمایید.
فرض کنید در یک شبکه شما قصد ارتباط با آدرس IP 10.1.1.1 را دارید برای این منظور شما باید آدرس MAC آن را نیز در اختیار داشته باشید. در این مرحله پروتکل ARP وارد عمل میشود.
با استفاده از این پروتکل یک بسته Broadcast به کل شبکه ارسال میشود مبنی بر این که آدرس IP 10.1.1.1 در اختیار چه کسی است و آدرس MAC آن چیست؟
با توجه به این که بسته به تمام سیستمهای داخل شبکه ارسال میشود، سیستمی که این آدرس را در اختیار دارد، پیامی مبنی بر در اختیار داشتن آدرس و همچنین آدرس فیزیکی خود را به سیستم مبدا ارسال میکند. بدین صورت سیستم مبدا از آدرس فیزیکی سیستم مقصد اطلاع حاصل میکند و این آدرس را در سرآیند بسته خود قرار میدهد تا هنگام ارسال بسته در شبکه، سوییچ با استفاده از آدرس MAC مقصد اقدام به ارسال آن نماید.
لازم به ذکر است برای عدم ارسال بستههای Broadcast در شبکه، سیستم این آدرس را در حافظه خود نگهداری میکند که به این حافظه اصطلاحا ARP Cache گفته میشود. این جدول هر 10 دقیقه یکبار بروزرسانی میشود.
نکته: هر کسی میتواند ARP Response را ارسال نماید حتی زمانی که هیچ بسته ARP Request ارسال نشده باشد.
Gratuitous ARPs
همانطور که مطرح شد، یکی از نگرانیهای مربوط به پروتکل ARP، توانایی ارسال پیامResponse ARP بدون درخواست قبلی است. اغلب سیستمها ARP Response را حتی زمانی که یک آدرس در حافظه کش یا ARP Cache وجود دارد، دریافت مینمایند. تنها سیستم Solaris از این مشکل توسط پیاده سازی یک طول عمر خاص برای ورودیهای ARP Cache جلوگیری به عمل میآورد.
البته در Solaris ما فقط باید برای ورود به ARP Cache منتظر بمانیم و پس از آن ضربه خود را با استفاده از ورودیهای سمی به آن خواهیم زد.
ARP Cache Poisoning با ارسال ورودیهای غیر مجاز به جدول ARP به شما اجازه میدهد تا ترافیک را به سمت سیستم دیگر در شبکه هدایت نمایید.
macof
برای Sniff شبکه در محیطهایی که دارای سوییچ هستند، یکی از راههایی که نفوذگر میتواند انجام دهد، مصرف کردن تمامی حافظه آدرسهای Map شده است. بدین صورت که با ارسال تعداد زیادی آدرس MAC به پورت سوییچ، موجب پرشدن حافطه آدرس MAC شده و باعث میشود تا سوییچ مانند هاب عمل نماید.
با توجه به اینکه سوییچ آدرسهای MAC مربوط به پورتهای خود را در جدول CAM ذخیره مینماید، اگر جدول CAM تکمیل ظرفیت شود، سوییچ قادر به آدرس دهی نبوده و موجب میشود تا سوییچ مانند یک هاب عمل کند. برای این منظور از ابزار Macof برای ارسال آدرسهای MAC زیاد استفاده میشود تا با بمباران آدرسهای MAC جعلی، موجب پرشدن جدول CAM گردد.
فراتر از ابزار Dsniff و Macof یک ابزار مشابه، Taranis میباشد که توسط Jonathan Wilkins توسعه پیدا کرده است. Taranis قادر است همانند Macof تا با ارسال سیلی از آدرسهای MAC، سوییچ را بمباران نماید. Taranis میتواند فقط فریمهای اترنت را به صورت فردی با آدرس MAC قربانی ارسال کند. با این کار سعی دارد تا سوییچ را فریب دهد تا سوییچ تصور نماید که آدرس MAC قربانی به صورت همزمان بر روی دو پورت فیزیکی مختلف تنظیم شده است.
نکته: برخی از سوییچهای ارزان قیمت، ممکن است دادهها را برای هر دو پورت ارسال نمایند. به این ترتیب دادهها هم به پورت قربانی و هم به پورت نفوذگر ارسال خواهد شد.
اگر سوییچ با ابزار Macof تسلیم نشد، نفوذگر راه دیگری را انتخاب میکند و آن حمله ARP Cache Poisoning با استفاده از ابزار arpspoof از مجموعه ابزار Dsniff میباشد. ابزار Arpspoof به نفوذگر اجازه میدهد تا ARP Responseهای جعلی خود را در یک شبکه LAN ارسال نموده تا همه ترافیک مد نظر را از یک سیستم به سیستم نفوذگر که Sniffer بر روی آن اجرا شده است هدایت کند.
سپس اگر قابلیت IP Forwarding فعال باشد، بستهها از طریق سیستم نفوذگر عبور نموده و به مقصد واقعی خود منتقل میشود.
تصویر بالا نشان میدهد که تکنیک ARP Poisoning چگونه کار میکند و یک نفوذگر چگونه میتواند اقدام به Sniffing در شبکه نماید.
مرحله اول: نفوذگر ابتدا بر روی سیستم خود قابلیت IP Forwarding را فعال مینماید تا تمام بستهها به سیستم وی ارسال شده و سپس از آن جا به Default Gateway یا روتر ارسال گردد. در این حالت سیستم نفوذگر شبیه به یک روتر عمل مینماید.
مرحله دوم: نفوذگر یک بسته ARP را به سیستم قربانی ارسال میکند که به منظور Map نمودن آدرس IP روتر با آدرس MAC نفوذگر است. در این حالت جدول ARP Cache سیستم قربانی با اطلاعات نادرست اصطلاحا Poison میشود.
مرحله سوم: قربانی ترافیک خود را ارسال میکند اما تمام ترافیک ارسال شده وی به سیستم نفوذگر ارسال میشود زیرا جدول ARP Cache آن Poison شده است.
مرحله چهارم: نفوذگر با استفاده از ابزارهایی مانند Dsniff و یا ابزارهای دیگر Sniffing در شبکه اقدام به Sniff اطلاعات مینماید.
مرحله پنجم: سیستم نفوذگر بستههای دریافت شده را پس از sniff به سمت مقصد که همان روتر میباشد، هدایت میکند.
توجه داشته باشید که در این حمله نفوذگر به سوییچ نفوذ نمیکند و در عوض جدول ARP Cache کامپیوتر قربانی آلوده شده که موجب میشود ترافیک به پورتی از سوییچ که نفوذگر به آن متصل شده است هدایت شود و بدین شکل نفوذگر بتواند اطلاعات را Sniff نماید.
هنگام انجام این سناریو با توجه به انجام IP Forwarding، هنگام انتقال با کاهش یک TTL همراه هستیم چراکه ساختار IP Forwarding مانند یک روتر عمل میکند. برای جلوگیری از این مورد نفوذگر میتواند از ابزار FragRoute استفاده کند که در مد Fragment تنظیم نشده باشد و با تغییر در تنظیمات آن میتوان و برداشتن کامنت مربوط به کاهش TTL، از این موضوع جلوگیری به عمل آورد.
ابزار tcpkill و tcpice
ابزار tcpkill تنها بسته reset را در ارتباط تزریق میکند. این روش شاید جالب به نظر نرسد ولی بسیار مفید است. با استفاده از این ابزار، نفوذگر میتواند ارتباط زنده را از بین ببرد و با این کار یک حمله DoS را انجام میدهد.
جالب تر این جاست که نفوذگر میتواند اتصال را قطع نموده و قربانیان را مجبور نماید تا ارتباط را دوباره راه اندازی نمایند. هنگامی که یک اتصال جدید ایجاد شد، احتمالا فرآیند احراز هویت دوباره انجام میگردد و این امر به نفوذگر اجازه میدهد تا اطلاعات مربوط به احراز هویت را به دست آورد.
ابزار Tcpnice یک ایده جالب است مخصوصا زمانی که نفوذگر قصد Sniffing در شبکه با سرعت بالا را داشته باشد. با این ابزار نفوذگر فقط با رها کردن بستههای مختلف قصد دارد تا موجب کاهش سرعت گفت و گو در ارتباطات شود تا بتواند ارتباط را Sniff نماید. این ابزار برای زمانی که قصد Sniff یک ارتباط با سرعت بالا را دارید و نیاز به کم کردن سرعت جریان بستهها را دارید، بسیار مفید خواهد بود.
ابزارهای Filesnarf، Mailsnarf، URLsnarf و Msgsnarf
ابزارهای دیگری از مجموعه Dsniff وجود دارد که میتوانید از آنها استفاده نمایید. از این ابزارها برای استخراج اطلاعات برنامههای مختلف استفاده میشود.
Filesnarf: از این ابزار برای Capture نمودن پروتکل NFS یا Network File System استفاده میشود.
Mailsnarf: از این ابزار برای Capture نمودن پروتکلهای SMTP و POP استفاده میشود.
URLsnarf: از این ابزار برای Capture نمودن URLهای پروتکل HTTP استفاده میشود.
Msgsnarf: این ابزار برای Capture نمودن تمام پیامهای ارسال شده با ابزارهایی مانند AOL، ICQ2000، IRC، MSN Massenger و ابزارهای مشابه استفاده میشود.
ابزار Xplico
علاوه بر ابزار Dsniff، یکی از ابزارهای عالی برای استخراج اطلاعات از ترافیک شبکه، ابزار Xplico میباشد. این ابزار را میتوان به دو روش مختلف اجرا نمود.
روش اول: Xplico میتواند به عنوان یک ابزار آنلاین تجزیه و تحلیل شبکه (Live Network Analysis Utility) کار کند.
روش دوم: این ابزار میتواند به عنوان یک ابزار آفلاین تجزیه و تحلیل شبکه فعالیت نماید و فایلهای Pcap را آنالیز نماید.
این ابزار میتواند تمام تصاویری که در دادههای Stream قرار گرفته را در یک پوشه ذخیره نمایند و یا ویدئوها و ایمیلها را در یک پوشه دیگر قرار دهد. به صورت کلی این ابزار موارد را به صورت دسته بندی شده برای آنالیز به شما ارائه میدهد.
این ابزار در وب سایت www.xplico.org قابل دسترس میباشد.
WebSpy
یکی از ابزارهای دیگر مجموعه Dsniff، ابزار webspy میباشد. بوسیله این ابزار، URLهای Sniff شده با Dsniff به مرورگر نفوذگر ارسال میشود. مرورگر نفوذگر سپس صفحاتی که قربانی مشاهده نموده را به صورت real time نمایش میدهد.
این ابزار بیشتر برا دمو و همچنین مدیریت مفید میباشد. شما با استفاده از این ابزار میتوانید کلیه گشت و گذارهای وب در شبکه را مشاهده نمایید که کار مفیدی به نظر نمی رسد ولی با این حال اگر قصد انجام این کار را دارید اطمینان حاصل کنید که مجوز مناسب را برای این کار داشته باشید. (User Privacy)
ابزار مشابه دیگر Drifinet میباشد که ترافیک HTTP را مانیتور نموده و به دنبال فایلهای تصویری JPEG میگردد، که آن را Sniff نموده و به نمایش گذارد.
ابزار دیگری که به صورت تجاری در این زمینه عرضه شده است، ابزار Niksun میباشد. این ابزار میتواند یک Session مرور شده (و بسیاری از تعاملات دیگر در لایه کاربرد) را از طریق Capture نمودن ترافیک به صورت کامل بازسازی نماید.
ابزارهای DNSSpoof، Webmitm، SSHmitm
مطابق با آن چیزی که در توضیحات و فایل راهنمای ابزار Dsniff آمده است، MITM مخفف Monkey in the middle میباشد ولی برخی آن را Man in the middle مینامند و همچنین برخی دیگر نیز آن را Person in the middle مینامند. در هر صورت مفهوم تمامی موارد یکسان است. بدین صورت که نفوذگر بین مبدا و مقصد قرار میگیرد و بستههای تبادل شده را جمع آوری میکند.
مجموعه Dsniff ویژگیهای قدرتمندی دارد به منظور Sniffing در شبکه مفید بوده و به نفوذگر اجازه میدهد تا فرآیند MITM را انجام دهد. ابزارهایی مانند DNSSpoof، Webmitm و SSHmitm سه ابزار قدرتمند مجموعه Dsniff در این حوزه هستند.