نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

06 ژوئن 2021

با سلام دوباره خدمت شما دوستان عزیز

یه نکته رو همین اول کار بگم که میشه این رو یه بایپس برای باگ قبلی دونست که توسط تلگرام پچ شد حالا چطور؟

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

شرح آسیب پذیری

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

مرحله ۱:

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

مرحله ۲:

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

مرحله ۳:

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

سناریو حمله

فرض کنیم ما با استفاده از روش‌هایی مثل مهندسی اجتماعی و اندوید هکینگ و… به حساب تلگرام یک فرد نفوذ کردیم حالا میخوام دسترسیمون حفظ شه برای همیشه

این نکته خیلی مهمه که میگم برای همیشه

خب اولین کاری که می‌کنیم میایم شماره اکانتمون رو تغییر میدیم  و با استفاده از آسیب‌پذیری که شرح دادم با شماره فرد مورد نفوذ قرار گرفته حساب جدیدی ایجاد می‌کنیم.

دو تا قضیه اینجا هست یکی اینکه ما الان به تمام چت های فرد و اطلاعات اکانتش برای همیشه دسترسی داریم چون الان اون اکانت به شماره مورد نظر ما  وصل شده

و دومی اینکه با شماره فرد مورد نفوذ قرار گرفته یه اکانت جدید درست کردیم ولی حالا چطور برای همیشه  به این اکانت با این شماره دسترسی داشته باشیم چون سیمکارت دست فرده و هر لحظه بخواد کد براش پیامک میشه و میتونه وارد بشه و اینجا هم یه قضیه داریم که بیایم تایید دو مرحله بزاریم ولی این صاحب شماره میتونه بدون تایید دو مرحله‌ای حساب رو حذف کنه و دوباره وارد شه

حالا بخش جذاب کار اینجاست که ما میام تدبیر امنیتی تلگرام رو تبدیل به نقض امنیتی میکنیم

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

نوع آسیب‌پذیری

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

با بیان این تعریف این نوع آسیب پذیری از نوع منطقی بود چون منطق برنامه در اجرای این پروسه دچار مشکل شده بود.

شدت خطر:

  1. دسترسی همیشه به چت ها و اطلاعات اکانت تلگرام فرد هک شده
  2. دسترسی همیشه به اکانت شماره فرد هک شده
  3. نقض حریم فرد هک شده چون دیگه نمیتونه از شمارش تو تلگرام استفاده کنه

گزارش آسیب‌پذیری

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

فیلم اثبات

ممنون از توجه

3 پست نوشته شده
علاقه‌مند به برنامه‌نویسی، وب هکینگ و رمزنگاری
دانشجوی رشته گیاه پزشکی دانشگاه ایلام و رشتم در تضاد با علاقم
  • به اشتراک بگذارید:
  1. کاربر گرامی گفت:

    عالی 🙂
    اگه وقت داشتین یه سری در مورد اینکه چطور باید گزارش بنویسیم هم توضیح بدید، خیلی ممنون

    • Allen گفت:

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

  2. محمد گفت:

    نه آفرین خوشم اومد خلاقیت خوبی به خرج دادی

  3. Black گفت:

    خیلی خوب بود خسته نباشی،
    یه چیزی که ذهنمو مشغول کرده با توجه به سطح آسیب پذیری که متوسط رو به بالا هست چرا انقدر بانتی کمی میدن،توی پلتفرم های دیگه شرکت های هم رده خیلی بیشتر اهمیت میدن و بیشتر پرداخت میکنن بنظر خودتون کم نیست؟
    در ضمن خوشحال میشم ریپورت های بیشتری مث این در مورد آسیب پذیری های Logical پست بزارید راجبش

    • Allen گفت:

      ممنون بابت نظری که دادید
      منم موافقم کم دادن واقعا ولی خب مشکل اینه مستقیم با تلگرام در ارتباط بودم و داورهای پلتفرم ها مثل هکروان نبود که واسط باشه و اونا هم داوری کنن
      منم خودم خیلی آسیب پذیری منطقی رو دوست دارم باشه حتما راجبش توضیح میزارم

  4. علی گفت:

    سلام واقعا عالی بود
    میشه xss یاد بدی؟ از اون مدل که بانتی میگیرن
    ممنون

  5. علی گفت:

    سلام وقت بخیر
    چند تا
    سوال تا حالا شده بخوای سایتی رو هک کنی نشه؟
    بیشتر سایتهای بزرگ و دولتی چه باگ هایی دارن؟
    چند ساله تو کاره هک کردنین؟
    میشه جواب بدی به سوالام خیلی ممنون

    • Allen گفت:

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