سوالات متداول فنی تشخیص حملات Man-in-the-Middle (Man in the middle, MitM attacks) Man in the middle چیست

صفحه اصلی / منجمد می شود

در این مقاله سعی می کنیم تئوری حملات Man-in-the-Middle و چند نکته کاربردی را که به جلوگیری از این نوع حملات کمک می کند، بشناسیم. این به ما کمک می‌کند تا خطری را که چنین نفوذهایی برای حریم خصوصی ما ایجاد می‌کند، درک کنیم، زیرا حملات MitM به ما اجازه می‌دهد در ارتباطات نفوذ کنیم و مکالمات خود را استراق سمع کنیم.

درک نحوه کار اینترنت

برای درک اصل حمله انسان در وسط، ابتدا ارزش دارد که بدانیم خود اینترنت چگونه کار می کند. نقاط اصلی تعامل: کلاینت ها، روترها، سرورها. رایج ترین پروتکل ارتباطی بین کلاینت و سرور، پروتکل انتقال ابرمتن (HTTP) است. گشت و گذار در اینترنت با استفاده از مرورگر، ایمیل، پیام های فوری - همه اینها از طریق HTTP انجام می شود.

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

شکل 1. تعامل مشتری و سرور

ایمن سازی پروتکل ارتباطی

یک پروتکل ارتباط ایمن باید هر یک از ویژگی های زیر را داشته باشد:

  1. حریم خصوصی- فقط گیرنده مورد نظر می تواند پیام را بخواند.
  2. اصالت- هویت طرفین متعامل ثابت شده است.
  3. صداقت- تأیید عدم تغییر پیام در حین انتقال.

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

حمله Man-in-the-Middle از طریق پروتکل HTTP

یک مهاجم به راحتی می تواند با استفاده از تکنیکی به نام جعل ARP، یک حمله Man-in-the-Middle انجام دهد. هر کسی در شما شبکه های وای فایممکن است یک بسته ARP جعلی برای شما ارسال کند و باعث شود شما ناخودآگاه تمام ترافیک خود را به جای روتر از طریق مهاجم ارسال کنید.

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

شکل 2. الگوی حمله Man-in-the-Middle


برای جلوگیری از چنین حملاتی، نسخه ای امن از پروتکل HTTP ایجاد شد. امنیت لایه حمل و نقل (TLS) و سلف آن، لایه سوکت امن (SSL)، پروتکل های رمزنگاری هستند که امنیت انتقال داده ها را از طریق شبکه فراهم می کنند. بنابراین پروتکل امن HTTPS نامیده خواهد شد. با تایپ در نوار آدرس مرورگر خود می توانید نحوه عملکرد پروتکل ایمن را مشاهده کنید (به S در https توجه کنید).

حمله Man-in-the-Middle به SSL با پیاده سازی ضعیف

SSL مدرن از یک الگوریتم رمزگذاری خوب استفاده می کند، اما اگر به درستی پیاده سازی نشود، مهم نیست. اگر یک هکر بتواند درخواست را رهگیری کند، می تواند آن را با حذف "S" از URL درخواستی تغییر دهد و در نتیجه SSL را دور بزند.

چنین رهگیری و اصلاح درخواست قابل مشاهده است. به عنوان مثال، اگر شما درخواست https://login.yahoo.com/ دارید و پاسخ آن http://login.yahoo.com/ است، این امر باعث ایجاد شک می شود. در زمان نگارش این مقاله، این حمله در واقع روی سرویس کار می کند ایمیلیاهو

شکل 3. درخواست رهگیری و اصلاح


برای جلوگیری از چنین حمله ای، سرورها می توانند HTTP Strict Transport Security (HSTS) را پیاده سازی کنند، مکانیزمی که اتصال امن اجباری را روی پروتکل HTTPS امکان پذیر می کند. در این حالت، اگر مهاجم درخواست را با حذف "S" از URL تغییر دهد، سرور همچنان کاربر را با تغییر مسیر 302 به صفحه ای با پروتکل ایمن هدایت می کند.

شکل 4. نمودار عملیات HSTS


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

شکل 5. الگوی حمله HSTS


برای جلوگیری از چنین حملاتی مرورگرهای مدرنمانند کروم، فایرفاکس و تور سایت‌ها را با استفاده از HSTS مانیتور می‌کنند و از طریق SSL به آن‌ها اتصال سمت مشتری را مجبور می‌کنند. در این مورد، مهاجمی که یک حمله Man-in-the-Middle انجام می دهد باید یک اتصال SSL با قربانی ایجاد کند.

شکل 6. الگوی حمله که در آن مهاجم یک ارتباط SSL با قربانی برقرار می کند


به منظور ارائه یک اتصال SLL به یک کاربر، یک مهاجم باید بداند که چگونه به عنوان یک سرور عمل کند. بیایید جنبه های فنی SSL را درک کنیم.

آشنایی با SSL

از نقطه نظر یک هکر، به خطر انداختن هر پروتکل ارتباطی به یافتن پیوند ضعیف در میان مؤلفه های ذکر شده در بالا (حریم خصوصی، اصالت و یکپارچگی) منجر می شود.

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

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

شکل 7. کلیدهای عمومی و خصوصی کار می کنند

چگونه SSL سه ویژگی مورد نیاز برای ارتباطات امن را فراهم می کند؟

  1. از آنجا که رمزنگاری نامتقارن برای رمزگذاری داده ها استفاده می شود، SSL یک اتصال خصوصی را فراهم می کند. شکستن و کشف نشدن این رمزگذاری به این راحتی نیست.
  2. سرور مشروعیت خود را با ارسال یک گواهی SSL صادر شده توسط یک مرجع گواهی - یک شخص ثالث قابل اعتماد، به مشتری تأیید می کند.

اگر مهاجم به نحوی موفق به دریافت گواهی شود، می تواند در را به روی حمله مرد میانی باز کند. بنابراین، 2 اتصال ایجاد می کند - با سرور و با قربانی. سرور در این مورد فکر می کند که مهاجم یک کلاینت معمولی است و قربانی هیچ راهی برای شناسایی مهاجم ندارد، زیرا او گواهی ارائه می دهد که ثابت می کند سرور است.

پیام‌های شما به صورت رمزگذاری شده می‌رسند و می‌رسند، اما آنها زنجیره‌ای را از طریق رایانه مجرم سایبری دنبال می‌کنند، جایی که او کنترل کامل دارد.

شکل 8. الگوی حمله اگر مهاجم دارای گواهی باشد


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

مشکلات مرجع صدور گواهینامه

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

گواهی ها و مقامات گواهینامه همیشه ضعیف ترین حلقه در اتصال HTTPS بوده اند. حتی اگر همه چیز به درستی اجرا شده باشد و هر مرجع گواهی دارای اختیارات محکمی باشد، هنوز دشوار است که با این واقعیت کنار بیایید که باید به بسیاری از اشخاص ثالث اعتماد کنید.

امروزه بیش از 650 سازمان قادر به صدور گواهینامه هستند. اگر مهاجمی هر یک از آنها را هک می کرد، هر گواهی را که می خواست دریافت می کرد.

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

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

پزشکی قانونی

از آنجایی که مهاجم بسته های ARP جعلی را ارسال می کند، آدرس IP مهاجم قابل مشاهده نیست. در عوض، باید به آدرس MAC که مخصوص هر دستگاه موجود در شبکه است توجه کنید. اگر آدرس MAC روتر خود را می‌دانید، می‌توانید آن را با آدرس MAC دروازه پیش‌فرض مقایسه کنید تا متوجه شوید که آیا واقعاً روتر شما است یا یک مهاجم.

به عنوان مثال، در سیستم عامل ویندوز می توانید از دستور ipconfig استفاده کنید خط فرمان(CMD) برای مشاهده آدرس IP پیش فرض دروازه (خط آخر):

شکل 9. با استفاده از دستور ipconfig


سپس از دستور arp –a برای پیدا کردن آدرس MAC این دروازه استفاده کنید:

شکل 10. با استفاده از دستور arp –a


اما راه دیگری برای مشاهده حمله وجود دارد - اگر فعالیت شبکه را در زمان شروع آن زیر نظر داشتید و بسته‌های ARP را تماشا می‌کردید. برای مثال می توانید از Wireshark برای این منظور استفاده کنید، این برنامه در صورت تغییر مک آدرس دروازه پیش فرض به شما اطلاع می دهد.

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

نتیجه گیری

SSL پروتکلی است که مهاجم را مجبور به انجام کارهای زیادی برای انجام یک حمله می کند. اما شما را در برابر حملات تحت حمایت دولت یا سازمان‌های هک ماهر محافظت نمی‌کند.

وظیفه کاربر محافظت از مرورگر و رایانه خود برای جلوگیری از درج گواهی جعلی است (یک تکنیک بسیار رایج). همچنین ارزش توجه به لیست را دارد گواهی های قابل اعتمادو کسانی را که به آنها اعتماد ندارید حذف کنید.

حمله Man-in-the-Middle یک نام عمومی برای تکنیک های مختلف با هدف دسترسی به ترافیک به عنوان یک واسطه است. با توجه به تنوع گسترده این تکنیک ها، پیاده سازی یک ابزار واحد برای شناسایی این حملات که برای همه موقعیت های ممکن کار می کند، مشکل ساز است. به عنوان مثال، در حمله Man-in-the-Middle به یک شبکه محلی، معمولاً از جعل ARP (مسمومیت) استفاده می شود. و بسیاری از ابزارهای تشخیص حمله انسان در وسط، تغییرات در جفت آدرس اترنت را نظارت می کنند/یا فعالیت مشکوک ARP را با نظارت غیرفعال درخواست ها/پاسخ های ARP گزارش می کنند. اما اگر این حمله بر روی یک سرور پروکسی پیکربندی شده مخرب، VPN یا سایر گزینه‌هایی که از مسمومیت ARP استفاده نمی‌کنند استفاده شود، چنین ابزارهایی درمانده هستند.

هدف از این بخش بررسی برخی تکنیک‌ها برای شناسایی حملات انسان در وسط و همچنین برخی از ابزارهایی است که برای تعیین اینکه آیا هدف حمله MitM قرار گرفته‌اید یا خیر. با توجه به تنوع روش ها و سناریوهای پیاده سازی، تشخیص 100٪ نمی تواند تضمین شود.

1. تشخیص اصلاح ترافیک

همانطور که قبلا ذکر شد، حملات man-in-the-middle همیشه از جعل ARP استفاده نمی کنند. بنابراین، اگرچه تشخیص فعالیت در سطح ARP محبوب ترین روش تشخیص است، اما بیشتر به روشی جهانیتشخیص اصلاح ترافیک است. برنامه mitmcanary می تواند در این زمینه به ما کمک کند.

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

نمونه هایی از اینکه چگونه برخی ابزارها می توانند "ارث بری" کنند:

  • MITMf، به طور پیش فرض، همه URL های HTTPS در کد HTML را به HTTP تغییر می دهد. با مقایسه محتوای HTTP شناسایی شد.
  • Zarp + MITProxy، MITProxy دارای عملکردی است که به شما امکان می دهد فشرده سازی HTTP را پاک کنید، این برای شفافیت ترافیک ارسالی استفاده می شود، این ترکیب با ناپدید شدن فشرده سازی قبلی شناسایی می شود.
  • پاسخ دهنده، شناسایی شده توسط تغییرات ناگهانی در تبدیل پاسخ های mDNS: پاسخ غیر منتظره. پاسخ داخلی است، اما خارجی انتظار می رود. پاسخ متفاوت از IP مورد انتظار است
  • MITMCanary در مقابل MITMf:

  • MITMCanary در مقابل پاسخگو:

  • MITMCanary در مقابل Zarp + MITProxy:

Sudo pip نصب Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen درخواست تجزیه و تحلیل simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git سی دی mitmcanary/

همانطور که قبلا ذکر شد، mitmcanary باید با درخواست های کنترلی کار کند. برای این کار به دایرکتوری بروید

سرویس سی دی/

و فایل را اجرا کنید setup_test_persistence.py:

Python2 setup_test_persistence.py

این کار کمی طول می کشد - صبر کنید تا تمام شود. هیچ پیام خطایی نباید وجود داشته باشد (اگر چنین است، پس برخی از وابستگی ها را از دست داده اید).

خروجی چیزی شبیه این خواهد بود:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py نسخه قدیمی‌تر پیکربندی شناسایی شد (0 به جای 14) در حال ارتقاء پیکربندی در حال انجام است. ورود به سیستم پاکسازی شلیک شد. در حال تجزیه و تحلیل... پاکسازی به پایان رسید!

ثبت ورود به سیستم /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (پیش‌فرض، 1 سپتامبر 2016، 20:27:38)

پس از اتمام این فرآیند، در همان دایرکتوری اجرا کنید (با این کار یک فرآیند پس زمینه شروع می شود):

Python2 main.py

پس از آن، یک پنجره ترمینال جدید باز کنید و با mitmcanary به فهرست پایانی بروید. دایرکتوری من bin/mitmcanary/ است، بنابراین وارد می شوم

سی دی bin/mitmcanary/

پس از اتمام این فرآیند، در همان دایرکتوری اجرا کنید (با این کار یک فرآیند پس زمینه شروع می شود):

و در آنجا انجام دهید:

اولین پنجره چیزی شبیه به: Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py ثبت ورود به سیستم /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (پیش‌فرض، 1 سپتامبر 2016، 20:27:38) با استفاده از

برای سوکت گوش دادن برای Tuio در 127.0.0.1:3000 خواب 60 ثانیه خواب 60 ثانیه خواب 60 ثانیه 60 ثانیه خواب 60 ثانیه خواب 60 ثانیه

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

پنجره دوم همچنین حاوی خروجی + یک پنجره تاریک باز می شود که نویسندگان برنامه این پنجره را "رابط گرافیکی" می نامند.

می توانید کمی صبر کنید و در اینترنت بگردید تا مطمئن شوید که برنامه هیچ هشدار نادرستی صادر نمی کند. بیایید تلاش کنیمبرنامه کلاسیک

ettercap من یک حمله معمولی MitM با جعل ARP راه اندازی می کنم. mitmcanary به خود اچ کردن پاسخ نمی دهد. ابزار mitmcanary خود ترافیک را تولید می کند، یعنی هیچ اقدام کاربر مورد نیاز نیست. پس از مدتی، یک هشدار ظاهر می شود که در بررسی های بعدی تایید نمی شود. اما یک هشدار مشابه پس از چند دقیقه ظاهر می شود. بدون تجزیه و تحلیل بیشتر، به سختی می توانم بگویم که آیا این یک نمونه است یا خیر- خیلی شبیه به این این هشدار کاملاً ممکن است ناشی از نقص ارتباط به دلیل نیاز به ترافیک برای عبور از مسیرهای اضافی یا به دلیل ویژگی های اتصال اینترنت بی کیفیت من باشد.

از آنجایی که نتیجه واضح نیست (به احتمال زیاد "نه" تا "بله")، بیایید برنامه Bettercap را امتحان کنیم که دارای ماژول های متنوعی است. من شکی ندارم که هنگام استفاده از Ettercap و/یا پلاگین های مختلف برنامه های اضافیبرای گسترش عملکرد، ما همچنین برای mitmcanary "روشن" می کنیم.

برای خلوص آزمایش، تجهیزات را دوباره راه‌اندازی می‌کنم، mitmcanary را روی دستگاه مورد حمله و Bettercap را روی دستگاه مهاجم اجرا می‌کنم. در این مورد، نیازی به ایجاد مجدد درخواست های کنترلی روی ماشین مورد حمله نیست - آنها در یک فایل در داخل دایرکتوری همراه با برنامه ذخیره می شوند. آن ها کافی است سرویس و رابط گرافیکی را راه اندازی کنید.

و در ماشین مهاجم، Bettercap را با تجزیه‌کننده‌های فعال راه‌اندازی می‌کنیم:

Sudo bettercap -X

هشدارهای فردی ظاهر می شود، که همچنین بیشتر شبیه به موارد مثبت کاذب است.

اما اجرای این دستور:

Sudo bettercap -X --پراکسی

در دستگاه مورد حمله تماس می گیرد تعداد زیادیهشدارها در مورد حمله احتمالی انسان در وسط:

بنابراین، هرچه یک ابزار حمله انسان در وسط قدرتمندتر باشد، آثار بیشتری در ترافیک به جا می گذارد. برای استفاده عملی از mitmcanary، شرایط زیر باید رعایت شود:

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

2. تشخیص جعل ARP (مسمومیت کش ARP)

اغلب اوقات، حمله انسان در وسط به یک شبکه محلی با مسمومیت ARP شروع می شود. به همین دلیل است که بسیاری از ابزارهای طراحی شده برای شناسایی حملات MitM مبتنی بر مکانیزمی برای نظارت بر تغییرات در حافظه پنهان ARP هستند که مکاتبات بین اترنت (آدرس های MAC) و آدرس های IP را اختصاص می دهد.

به عنوان نمونه ای از این گونه برنامه ها می توان arpwatch، arpalert و تعداد زیادی برنامه جدید را به یاد آورد. برنامه ArpON نه تنها تغییرات حافظه پنهان ARP را نظارت می کند، بلکه از آن در برابر آنها محافظت می کند.

به عنوان مثال، اجازه دهید arpwatch را در حالت اشکال زدایی، بدون ایجاد فورک در پس‌زمینه و ارسال پیام از طریق پست، اجرا کنیم. در عوض، پیام ها به stderr (خروجی خطای استاندارد) ارسال می شوند.

Sudo /usr/sbin/arpwatch -d

بیایید Ettercap را روی ماشین مهاجم راه اندازی کنیم و جعل ARP را شروع کنیم. در دستگاه مورد حمله مشاهده می کنیم:

برنامه arpwatch به شما کمک می کند تا به سرعت از دستگاه های جدید متصل به دستگاه خود مطلع شوید شبکه محلیو همچنین تغییراتی در کش ARP.

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

Sudo ettercap -TQP arp_cop ///

و روی مهاجم شروع به مسمومیت ARP خواهیم کرد. هشدارها بلافاصله در دستگاه مورد حمله ظاهر می شوند:

3. تشخیص جعل DNS

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

آن ها باید از طریق یک کانال رمزگذاری شده (مثلاً از طریق Tor) بررسی کنید یا از تنظیمات غیر استاندارد استفاده کنید (درگاه دیگری، TCP به جای UDP). این تقریباً همان چیزی است که برنامه sans از XiaoxiaoPu برای آن طراحی شده است (حداقل آنطور که من درک می کنم). من توانستم از این برنامه برای تغییر مسیر درخواست های DNS از طریق Tor و از طریق تنظیمات غیر استاندارد به من استفاده کنم سرور DNS. اما نتوانستم او را وادار کنم که پیام هایی درباره جعل پاسخ DNS به من نشان دهد. بدون این، معنای برنامه از بین می رود.

بیشتر جایگزین های شایستهنتونستم پیداش کنم

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

محلی mi-al.ru

آن ها هنگام درخواست رکورد DNS برای وب سایت mi-al.ru، IP دستگاه مهاجم به جای IP واقعی ارسال می شود.

من روی ماشین مهاجم می دوم:

Sudo bettercap --dns dns.conf

و در مورد مورد حمله من دو بررسی انجام می دهم:

Dig mi-al.ru # و dig mi-al.ru -p 4560 @185.117.153.79

نتایج:

Mial@HackWare:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; گزینه های جهانی: +cmd ;; جواب گرفتم: ;; ->> هدر<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 mial@HackWare:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru -p 4560 @185.117.153.79 ;; گزینه های جهانی: +cmd ;; جواب گرفتم: ;; ->> هدر<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

مشاهده می شود که برای یک درخواست DNS "عادی"، IP محلی 192.168.1.48 ارسال شده است و هنگام درخواست DNS در یک پورت غیر معمول، IP سرور صحیح ارسال شده است.

اگر سرور برای استفاده از TCP (به جای UDP) پیکربندی شده باشد، دستور به شکل زیر خواهد بود:

Dig mi-al.ru -p 4560 +tcp @185.117.153.79

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

برای جلوگیری از تنظیم DNS راه دور خود، می توانید از طریق Tor درخواست های سرور نام را ایجاد کنید. از آنجایی که تمام ترافیک Tor رمزگذاری شده است، پاسخ های DNS به دست آمده از این طریق فراتر از توانایی های یک واسطه است. اگر Tor قبلاً نصب نشده است، آن را نصب کنید.

Sudo apt-get install tor

سودو پکمن -S tor

سرویس را شروع کنید:

Sudo systemctl start tor

اگر به آن نیاز دارید، این سرویس را به راه اندازی اضافه کنید:

Sudo systemctl tor را فعال می کند

فایل را باز کنید /etc/tor/torrcو خطوط زیر را در آنجا اضافه کنید:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

به عدد 530 توجه کنید. نکته اصلی این است که آن را به خاطر بسپارید.

دوباره بررسی می کنیم:

dig mi-al.ru # و dig mi-al.ru -p 530 @localhost

حالا به عنوان سرور مشخص می کنیم میزبان محلیو شماره پورتی را که در تنظیمات /etc/tor/torrc تعیین کرده اید بنویسید.

همانطور که از اسکرین شات زیر می بینید، یک حمله جعل DNS بر روی دستگاهی که بررسی روی آن انجام شده است انجام می شود:

4. رابط های شبکه را در حالت غیرقانونی جستجو کنید

اگر در شبکه محلی شما تجهیزاتی (و به خصوص اگر به طور ناگهانی ظاهر شد) در حالت غیرقانونی وجود داشته باشد، این بسیار مشکوک است، اگرچه به وضوح نشان دهنده حمله مرد میانی نیست.

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

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

اکثر سیستم عامل ها برای فعال کردن حالت غیرقانونی به حقوق مدیر نیاز دارند. آن ها تنظیم یک کارت شبکه در حالت بی‌وقفه، یک اقدام عمدی است که ممکن است به اهداف sniffing کمک کند.

برای جستجوی اینترفیس های شبکه در حالت promiscuous پلاگینی به نام Ettercap وجود دارد search_promisc.

نمونه ای از اجرای افزونه:

Sudo ettercap -TQP search_promisc ///

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

نتیجه گیری

برخی از روش‌های حمله Man-in-the-Middle آثار زیادی از خود بر جای می‌گذارند و برخی (مانند جستجوی اعتبار پروکسی غیرفعال) غیرممکن یا تقریباً غیرممکن هستند که شناسایی شوند.

بیانگر وضعیتی است که در آن مهاجم می تواند پیام های رد و بدل شده بین خبرنگاران را به میل خود بخواند و تغییر دهد و هیچ یک از آنها نمی توانند حضور او در کانال را حدس بزنند.


بنیاد ویکی مدیا

2010.

    ببینید «مردی در وسط (حمله)» در فرهنگ‌های دیگر چیست:

    Man in the middle, حمله MITM (انگلیسی Man in the middle) اصطلاحی در رمزنگاری است که به موقعیتی اشاره می کند که در آن یک رمزنگار (مهاجم) می تواند پیام های رد و بدل شده را به میل خود بخواند و اصلاح کند... ... ویکی پدیا

    - ... ویکی پدیا

    Cryptanalysis (از یونانی κρυπτός hidden and analysis) علم روش هایی برای به دست آوردن معنای اصلی اطلاعات رمزگذاری شده بدون دسترسی به اطلاعات مخفی (کلید) لازم برای این کار است. در بیشتر موارد این به معنای... ... ویکی پدیا است

    حمله هکری به معنای محدود کلمه در حال حاضر به عنوان "حمله به یک سیستم امنیتی" شناخته می شود و بیشتر به معنای حمله Cracker متمایل است. این به دلیل تحریف معنای خود کلمه "هکر" رخ داد ... ویکی پدیا

- (از دیگر یونانی κρυπτός پنهان و تحلیل) علم روشهای رمزگشایی اطلاعات رمزگذاری شده بدون کلید در نظر گرفته شده برای چنین رمزگشایی. این اصطلاح توسط رمزنگار آمریکایی ویلیام اف فریدمن در سال 1920 ابداع شد. غیر رسمی... ... ویکی پدیا

Man in the middle attack (MitM attack) اصطلاحی در رمزنگاری است که به موقعیتی اطلاق می‌شود که در آن مهاجم می‌تواند پیام‌های رد و بدل شده بین خبرنگاران را به دلخواه بخواند و تغییر دهد و هیچ‌کدام از آنها نمی‌توانند حضور او را در کانال حدس بزنند .

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

اصل حمله:

برای انجام یک حمله، "C" به نظر می رسد به "A" به عنوان "B" و به "B" به عنوان "A" اعتراض می کند. شی "A"، به اشتباه تصور می کند که اطلاعات را به "B" ارسال می کند، آن را به شی "C" می فرستد.

شی "C"، با دریافت اطلاعات و انجام برخی اقدامات با آن (به عنوان مثال، کپی کردن یا اصلاح آن برای اهداف خود)، داده ها را برای خود گیرنده ارسال می کند - "B"؛ شی "B" به نوبه خود معتقد است که اطلاعات مستقیماً از "A" دریافت شده است.

نمونه ای از حمله MitM:

فرض کنید آلیس مشکلات مالی دارد و با استفاده از یک برنامه پیام‌رسانی فوری، تصمیم می‌گیرد با ارسال این پیام از جان مبلغی درخواست کند:
آلیس: جان، سلام!
آلیس: لطفا کلید رمزگذاری را برای من ارسال کنید، یک درخواست کوچک دارم!
جان: سلام! یک ثانیه صبر کن

اما، در این زمان، آقای X، که هنگام تجزیه و تحلیل ترافیک با استفاده از sniffer، متوجه این پیام شد و کلمات "کلید رمزگذاری" کنجکاوی را برانگیخت. به همین دلیل تصمیم گرفت پیام های زیر را رهگیری کند و داده های مورد نیاز خود را جایگزین آنها کند و زمانی که پیام زیر را دریافت کرد:
جان: اینجا کلید من است: 1111_D

او کلید جان را به کلید خود تغییر داد و برای آلیس پیامی فرستاد:
جان: اینجا کلید من است: 6666_M

آلیس، بی خبر و فکر می کند که کلید جان است، با استفاده از کلید خصوصی 6666_M، پیام های رمزگذاری شده را به جان می فرستد:
آلیس: جان من مشکل دارم و نیاز فوری به پول دارم لطفا 300 دلار به حساب من واریز کنید: Z12345. متشکرم. p.s. کلید من: 2222_A

پس از دریافت پیام، آقای X با استفاده از کلید خود آن را رمزگشایی می کند، آن را می خواند، و با خوشحالی، شماره حساب و کلید رمزگذاری آلیس را به خودش تغییر می دهد، پیام را با کلید رمزگذاری می کند. 1111_Dو به جان پیامی می فرستد:
آلیس: جان من مشکل دارم و نیاز فوری به پول دارم لطفا 300 دلار به حساب من واریز کنید: Z67890. متشکرم. p.s. کلید من: 6666_A

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

و به این ترتیب، آقای X با استفاده از حمله مرد میانی، 300 دلار به دست آورد، اما آلیس اکنون باید توضیح دهد که پول را دریافت نکرده است... و جان؟ جان باید به آلیس ثابت کند که آنها را فرستاده است...

پیاده سازی:

این نوع حمله در برخی از محصولات نرم افزاری برای استراق سمع شبکه استفاده می شود، به عنوان مثال:
نت استامبلر- برنامه ای که با آن می توانید اطلاعات مفید زیادی در مورد یک شبکه بی سیم جمع آوری کنید و برخی از مشکلات مربوط به عملکرد آن را حل کنید. NetStumbler به شما امکان می دهد تا محدوده شبکه خود را تعیین کنید و به شما کمک می کند تا آنتن خود را به طور دقیق برای ارتباطات از راه دور نشان دهید. برای هر نقطه دسترسی یافت شده، می توانید آدرس MAC، نسبت سیگنال به نویز، نام سرویس و درجه امنیت آن را بیابید. اگر ترافیک رمزگذاری نشده باشد، توانایی برنامه برای شناسایی اتصالات غیرمجاز مفید خواهد بود.

dsniff- مجموعه ای از برنامه ها برای ممیزی شبکه و آزمایش نفوذ، ارائه نظارت غیرفعال شبکه برای جستجوی داده های مورد علاقه (رمزهای عبور، آدرس های ایمیل، فایل ها و غیره)، رهگیری ترافیک شبکه که معمولاً برای تجزیه و تحلیل غیرقابل دسترسی است (به عنوان مثال، در یک شبکه سوئیچ شده)، و همچنین توانایی سازماندهی حملات MITM برای رهگیری جلسات SSH و HTTPS با بهره برداری از نقص های PKI.

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

Ettercap- یک ردگیر، رهگیر بسته و ضبط کننده برای شبکه های اترنت محلی است که از تجزیه و تحلیل فعال و غیرفعال پروتکل های متعدد پشتیبانی می کند و همچنین می توانید داده های خود را به یک اتصال موجود "پرتاب کنید" و بدون ایجاد اختلال در اتصال "در حال پرواز" فیلتر کنید. همگام سازی این برنامه به شما امکان می دهد SSH1، HTTPS و سایر پروتکل های امن را رهگیری کنید و امکان رمزگشایی رمزهای عبور پروتکل های زیر را فراهم می کند: TELNET، ftp، POP، RLOGIN، SSH1، icq، SMB، Mysql، HTTP، NNTP، X11، NAPSTER، IRC. , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

کارما– مجموعه‌ای از ابزارهای کمکی برای ارزیابی امنیت کلاینت‌های بی‌سیم، یک اسنیفر بی‌سیم است که با گوش دادن غیرفعال به فریم‌های درخواست پروب 802.11، به شما امکان می‌دهد کلاینت‌ها و شبکه‌های ترجیحی/اعتماد آنها را شناسایی کنید. سپس می‌توان یک نقطه دسترسی جعلی برای یکی از شبکه‌های درخواستی ایجاد کرد که به طور خودکار به آن متصل می‌شود. از خدمات جعلی سطح بالا می توان برای سرقت داده های شخصی یا سوء استفاده از آسیب پذیری های مشتری در میزبان استفاده کرد.

ایرجک- مجموعه ای از برنامه ها که به گفته کارشناسان در زمینه هک وای فای بهترین ابزار برای تولید فریم های مختلف 802.11 می باشد. AirJack شامل تعدادی ابزار است که برای شناسایی ESSID های پنهان، ارسال فریم های پایان جلسه با MAC جعلی، انجام حملات MitM و اصلاح آن طراحی شده اند.

مقابله:

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

MTProto از یک روش اصلی برای دستیابی به قابلیت اطمینان در ارتباطات تلفن همراه آسیب‌پذیر و سرعت در تحویل فایل‌های بزرگ (به عنوان مثال، عکس‌ها، فیلم‌ها و اسناد تا اندازه ۱ گیگابایت) استفاده می‌کند. این سند برای روشن کردن جزئیات سیستم ما و آدرس دادن عناصری است که ممکن است درک آنها در نگاه اول دشوار باشد.

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

توجه:هر پیام رمزگذاری شده از طریق MTProto همیشه حاوی داده های زیر است که در هنگام رمزگشایی بررسی می شود تا سیستم در برابر مشکلات شناخته شده ایمن شود:

  • شناسه جلسه - شناسه جلسه.
  • طول پیام - طول پیام;

تبصره 2:مشاهده نظرات اضافی در مورد استفاده، و اصلاح شده استطرح ها

چرا از X [گزینه شما] استفاده نمی کنید

در حالی که راه‌های دیگری برای دستیابی به اهداف رمزنگاری یکسان بدون شک وجود دارد، ما معتقدیم که راه‌حل فعلی هم قابل اعتماد است و هم در هدف ثانویه ما یعنی پیشی گرفتن از پیام‌رسان‌های ناامن از نظر سرعت و ثبات، موفق است.

چرا به الگوریتم های رمزنگاری کلاسیک تکیه می کنید؟

ما ترجیح می دهیم از الگوریتم های شناخته شده ای استفاده کنیم که در روزهایی که پهنای باند و قدرت پردازش یک جفت نادر بودند ایجاد شده بودند. این الگوریتم ها هستند که تأثیر قابل توجهی در توسعه امروزی برنامه های کاربردی برای دستگاه های تلفن همراه دارند و نویسندگان آنها را مجبور می کنند از شر کاستی های شناخته شده خلاص شوند. نقاط ضعف چنین الگوریتم هایی نیز به خوبی شناخته شده است و برای چندین دهه توسط مهاجمان مورد سوء استفاده قرار گرفته است. ما از این الگوریتم ها در این پیاده سازی استفاده می کنیم زیرا به نظر ما هر حمله شناخته شده ای را به شکست می کشانند. با این حال، ما خوشحال خواهیم شد که شاهد هر گونه شواهدی بر خلاف آن باشیم (تاکنون چنین موردی رخ نداده است) تا سیستم خود را بهبود ببخشیم.

من یک کارشناس امنیتی هستم و معتقدم پروتکل شما ناامن است.

شما می توانید در مسابقه ما شرکت کنید: پاول دوروف به اولین فردی که MTProto را هک می کند 200000 دلار بیت کوین پیشنهاد می کند. می توانید اطلاعیه و سوالات متداول مسابقه را بخوانید. اگر نظر دیگری دارید، خوشحال می شویم که آنها را بشنویم [ایمیل محافظت شده].

محافظت در برابر حملات شناخته شده

حملات متن ساده شناخته شده

طبق تعریف، حمله متن ساده نوعی حمله رمزنگاری است که در آن مهاجم دارای نسخه رمزگذاری شده و متن ساده متن است. AES IGE مورد استفاده در MTProto در برابر چنین حملاتی مقاوم است. علاوه بر این، متن ساده در MTProto همیشه حاوی نمک سرور و شناسه جلسه است.

حمله متن ساده تطبیقی

طبق تعریف، حمله متن ساده تطبیقی ​​نوعی حمله در تحلیل رمز است که در آن تحلیلگر رمز می‌تواند متن ساده را انتخاب کرده و متن رمزی مربوطه را به دست آورد. MTProto از AES در حالت IGE استفاده می کند که در برابر چنین حملاتی ایمن است. شناخته شده است که IGE در برابر حملات تطبیقی ​​بلوک آسیب پذیر است، اما MTProto این مشکل را به روشی که در زیر توضیح داده شده رفع می کند. هر پیام متنی ساده که باید رمزگذاری شود حاوی داده های زیر است که در هنگام رمزگشایی تأیید می شود:

  • نمک سرور (64 بیتی)؛
  • شماره دنباله پیام؛
  • زمان ارسال پیام - زمان.

علاوه بر این، برای جایگزینی متن ساده، باید از کلید AES و بردار اولیه درست استفاده کنید که به auth_key بستگی دارد. این باعث می شود MTProto در برابر حملات متن ساده تطبیقی ​​مقاوم باشد.

حملات متن رمزی همسان

بر اساس تعریف، حمله متن رمزی انتخاب شده، حمله رمزنگاری است که در آن یک تحلیلگر رمز با انتخاب متن رمز و به دست آوردن رمزگشایی آن با یک کلید ناشناخته، اطلاعات مربوط به رمز را جمع آوری می کند. در چنین حمله ای، مهاجم می تواند یک یا چند متن رمزی شناخته شده را وارد سیستم کند و متن های ساده را بدست آورد. با استفاده از این داده ها، مهاجم می تواند کلید مورد استفاده برای رمزگشایی را بازیابی کند. در MTProto، هر بار که یک پیام رمزگشایی می شود، بررسی می شود تا اطمینان حاصل شود که msg_key با SHA-1 داده های رمزگشایی مطابقت دارد. متن ساده (داده های رمزگشایی شده) همچنین همیشه حاوی اطلاعاتی در مورد طول پیام، شماره توالی آن و نمک سرور است. این حملات بر اساس متن رمزی انتخاب شده را نفی می کند.

تکرار حملات

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

حمله مرد وسط (MitM).

تلگرام دارای دو حالت ارتباطی است: چت معمولی که از رمزگذاری سرویس گیرنده-سرور استفاده می کند و چت مخفی که از رمزگذاری انتها به انتها استفاده می کند و از حملات انسان میانی محافظت می شود. به لطف الگوریتم کلید عمومی RSA که در کلاینت های تلگرام تعبیه شده است، انتقال داده بین کلاینت و سرور در طول تولید کلید Diffie-Hellman از چنین حملاتی محافظت می شود. پس از آن، در صورتی که کلاینت های طرفین به نرم افزار سرور اعتماد کنند، چت های مخفی بین آنها توسط سرور در برابر حملات man-in-the-middle محافظت می شود. به خصوص برای کسانی که نهبه سرور اعتماد دارد، مقایسه کدهای مخفی در برنامه موجود است. کلیدها به صورت تصویر تجسم می شوند. با مقایسه کلیدهای بصری شده، کاربران می توانند تأیید کنند که حمله مرد میانی رخ نداده است.

رمزگذاری

آیا از IGE استفاده می کنید؟ هک شده!

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

حملات تطبیقی ​​حتی از نظر تئوری در MTProto امکان پذیر نیست، زیرا برای رمزگشایی پیام ها ابتدا باید به طور کامل تایپ شود، زیرا کلید پیام به محتوای آن بستگی دارد. در مورد حملات CPA غیر تطبیقی، IGE مانند CBC در برابر آنها محافظت می شود.

© 2024 ermake.ru -- درباره تعمیر رایانه شخصی - پورتال اطلاعاتی