Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • آسیب پذیری اجرای کد در Telegram Desktop
  • آسیب پذیری امنیتی
  • اخبار
  • توسعه اکسپلویت

آسیب پذیری اجرای کد در Telegram Desktop

On فروردین 25, 1403فروردین 25, 1403
seyyid
Share
زمان مطالعه: 5 دقیقه

در تاریخ 9 آوریل/21 فروردین، یک ویدیو منتشر شد که نشون میداد ، یک آسیب پذیری 0day در Telegram Desktop کشف شده، که به مهاجمین امکان اجرای کد دلخواه رو میده.

 

 

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

 

پاسخ تلگرام

 

روز بعدش یک POC در فروم هکری XSS منتشر شد که نشون میداد ، اگه یک فایل pyzw رو به کاربر ارسال کنیم و کاربر روی اون کلیک کنه، کد داخلش اجرا میشه.

در 10 آوریل/22 فروردین، یک درخواست pull در مخزن گیتهاب Telegram Desktop ثبت شده که نشون دهنده ی یک آسیب پذیری در تلگرام دسکتاپ هستش که مهاجم با ارسال یک فایل مخرب pyzw میتونه در سیستم قربانی ، کد دلخواه اجرا کنه.

 

pull request

 

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

نکته : خطای فایل خطرناک رو همچنان نمیده و احتمالا در نسخه های آتی بطور کامل اصلاح میشه.

 

 

پیام ویندوز
rce telegram
اضافه کردن untrusted

 

سیستم آسیب پذیر :

  • آسیب پذیری فقط روی پلتفرم ویندوز گزارش شده.
  • آسیب پذیری فقط روی Telegram Desktop گزارش شده.
  • برای اکسپلویت ، حتما باید روی سیستم قربانی پایتون نصب شده باشه.
  • برای اکسپلویت نیاز به تعامل کاربر هستش. یعنی کاربر باید اونو دانلود و اجرا کنه (روش کلیک کنه).
  • تلگرام گفته که تنها 0.01% از کاربراش تحت تاثیر این آسیب پذیری بودن، یعنی هم ویندوزی بودن، هم نسخه ی دسکتاپ استفاده میکردن، هم رو سیستمشون پایتون نصب شده داشتن. یه سوالی که محققا پرسیدن اینه که از کجا فهمیدن چه برنامه هایی رو سیستم کاربرا نصب شده. چون در بخش Privacy Policy بیان نشده.
  • آسیب پذیری نسخه ی 4.16.6 و پایین تر رو تحت تاثیر قرار میده. برای مشاهده ی نسخه میتونید ، از سه تا خط ، بالا گوشه چپ استفاده کنید.

 

اجرای کد در تلگرام

 

نگاه فنی :

در کلاینت Telegram Desktop ، یسری از فرمتهارو بعنوان فرمت خطرناک لیست کردن. مثلا فایلهای اجرایی مثله exe .

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

 

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

 

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

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

پسوند pyzw در Python ZIP Application مورد استفاده قرار میگیره. Python zipapp یک کتابخونه داخلی در پایتون هستش که از نسخه ۳.۵ به بعد اضافه شده. این کتابخونه به شما امکان میده تا کد پایتون خودتون رو بهمراه همه وابستگی هایش (کتابخونه های مورد نیاز) در یک فایل ZIP فشرده کنید. این فایل ZIP قابل اجراست و میتونید اونرو مستقیماً با استفاده از مفسر پایتون اجرا کنید.

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

 

آسیب پذیری خطرناک در تلگرام

 

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

مشکل این روش اینه که ، هر کسی بدلیل فرمتی که داره روش کلیک نمیکنه. بنابراین مهاجمها اومدن یک باتی رو نوشتن و موقع ارسال فایل، mime type اونرو به video/mp4 تغییر میدن و یک Thumbnail هم براش در نظر میگیرن. کد بات هم در جاوااسکریپت توسعه داده شده.

 

کد بات

 

برای همین مورد بوده که قبلا محققا اینجوری فکر میکردن که مشکل در mime type ها هستش.

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

 

 

پارامتری که برای ما مهمه، پارامتر video هستش که در اصل، ویدیو رو برای ارسال، میگیره. این پارامتر رو میشه به دو صورت استفاده کرد :

  • String : در این روش file_id ویدیویی که میخواد ارسال بشه ، بصورت رشته گرفته میشه. این فایل در سرور تلگرام هستش.
  • InputFile : یک HTTP URL رو بعنوان یک رشته به تلگرام میده تا تلگرام اونو از اینترنت بگیره یا هم که یک فایل جدید رو با استفاده از multipart/form-data ارسال میکنه.

آسیب پذیری در حالت دوم هستش.

MIME (Multipurpose Internet Mail Extension) در حقیقت یک استاندارد شناسایی فایل هستش. بطور کلی برای مشخص کردن اینکه سیستم ، چطوری یک فرمت فایل رو باز کنه از MIME استفاده میکنن. روشی هم که استفاده میکنن یک تگ با عنوان Mime type دارن که در اون مشخص میکنن این فایل چیه و چه فرمتی داره ، مثلا Video/mp4 یعنی یک فایل ویدیویی از نوع mp4 .

پس بخواییم دوباره آسیب پذیری رو در این سناریو توضیح بدیم، وقتی مهاجم یک فایل مخرب pyzw رو ارسال میکنه و Mime type اونو بصورت Video/mp4 تنظیم میکنه،کلاینت تلگرام کاربر با این فایل ، بعنوان یک فایل ویدیویی رفتار میکنه.

 

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "dcId": number,
  "location": {
    "_": "inputDocumentFileLocation",
    "id": "*",
    "access_hash": "*",
    "file_reference": [
      *, *, *, *
    ]
  },
  "size": 42,
  "mimeType": "video/mp4",
  "fileName": "***.pyzw"
}

 

کد POC :

برای آسیب پذیری ، کد POC منتشر شده. کافیه این کد رو داخل یک فایل متنی بنویسید و اونو با پسوند pyzw ذخیره کنید : (ماشین حساب رو اجرا میکنه)

 

Python
1
__import__("subprocess").call(["calc.exe"])

 

 

بروزرسانی : 24 فروردین 00:00 – کد PoC و منبع و اصلاحیه اضافه شد.

بروزرسانی : 25 فروردین – اصلاح و بروزرسانی بخش فنی

 

منابع:

Bleepingcomputer

Rosmontis_Daily

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In آسیب پذیری امنیتی اخبار توسعه اکسپلویتIn mime , pyzw , RCE , پایتون , تلگرام

راهبری نوشته

بررسی Patch Tuesday مایکروسافت برای آوریل 2024 (فروردین 1403)
اصلاح چندین آسیب پذیری در PHP + کد POC

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مقالات
  • مهندسی معکوس نرم افزار

پست های مرتبط

  • آسیب پذیری امنیتی
  • اخبار
  • افشای اطلاعات
  • بازیگران تهدید
  • تیم قرمز
  • مقالات
seyyid
On مرداد 22, 1402مرداد 24, 1402

حمله جدید TunnelCrack روی ترافیک VPNها

  • آسیب پذیری امنیتی
  • اخبار
  • مقالات
seyyid
On تیر 3, 1403

بررسی هفتگی آسیب پذیری های منتشر شده در ZDI – (از 26 خرداد تا 1 تیر)

  • آسیب پذیری امنیتی
  • اخبار
  • باگ بانتی
  • توسعه اکسپلویت
  • مهندسی معکوس نرم افزار
seyyid
On مهر 21, 1402

اصلاح 20 آسیب پذیری در کروم

  • آسیب پذیری امنیتی
  • اخبار
  • توسعه اکسپلویت
  • مقالات
seyyid
On تیر 17, 1402تیر 18, 1402

آسیب پذیری CVE-2023-1183 در LibreOffice

درباره ما

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

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow integer overflow kali LockBit Memory Corruption nuclei out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت لینوکس مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کروم گوگل

شبکه های اجتماعی

    • Instagram
    • Telegram
    • Twitter
    • GitHub
    • YouTube
    • LinkedIn
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404