هک تلگرام پارت 3
· 1 اسفند · خواندن 5 دقیقه چند وقت پیش داشتم رفتار لینکهای t.me/proxy رو روی نسخههای Android و iOS تلگرام از زاویه شبکه بررسی میکردم. هدفم این بود ببینم دقیقاً قبل و بعد از فعال شدن پروکسی چه اتفاقی روی لایه TCP میفته.
نتیجه یه نکته جالب داشت:
وقتی روی لینک پروکسی کلیک میشه، قبل از اینکه پروکسی فعال بشه، تلگرام یه اتصال مستقیم به سرور مقصد برقرار میکنه.
و این اتصال با IP واقعی کاربر انجام میشه.
یعنی حتی اگر کاربر در نهایت روی «Connect» نزنه، همون لحظهای که صفحه Add Proxy باز میشه، یه TCP handshake از سمت دستگاه به سرور زده شده.
البته یک ویدیو هم منتشر کردم ازش
که تو تلگرام اینجا کلیک کنید میتونید ببینید .
تو شرایط فعلی و وضعیت اینترنت چون پیوی منو پر کردید یکی از بچه های تیم تو روبیکا ویدیو رو گذاشته ببینید اینجا هست تصویر کاور بلاگمونم تو سرور خارجی بوده پریده تا نتا وصل بشه کپ نکنید چرا این شکلیه جادوگری نکردم بلاگیس رو 🤣
تو لینک دین منم هست که ترجیح می دم اونو ندم برگدیم به بحث
دقیقاً پشت صحنه چه اتفاقی میفته؟
بیایم از دید فنی نگاه کنیم.
وقتی لینک باز میشه، تلگرام باید تصمیم بگیره که:
آیا سرور در دسترسه؟
آیا پورت بازه؟
آیا ارتباط TCP برقرار میشه؟
برای همین یه Reachability Check انجام میده.
اما چون هنوز پروکسی فعال نشده، مسیر خروجی شبکه همون مسیر پیشفرض سیستمه.
یعنی:
DNS resolve میشه (اگر hostname باشه)
یه SYN به سمت سرور ارسال میشه
handshake کامل یا نیمهکامل انجام میشه
همین.
هیچ تونلسازیای وجود نداره چون هنوز پروکسی فعال نشده.
این از نظر منطقی قابل درکه.
ولی از نظر Threat Modeling یه نکته مهم داره:
IP کاربر قبل از اینکه خودش تصمیم بگیره پروکسی رو فعال کنه، به سرور مقصد رسیده.
بیا ادامه مطلب
افشای IP از طریق لینکهای t.me/proxy در تلگرام — یه رفتار طراحی که میتونه تبدیل به بردار شناسایی بشه
در حالت عادی شاید مهم به نظر نرسه.
ولی اگر سناریو رو کمی تغییر بدیم، موضوع جدی میشه.
فرض کن:
مهاجم یه سرور در اختیار داره
یه لینک پروکسی میسازه
لینک رو پشت یه نام کاربری معتبر یا یه URL فریبنده پنهان میکنه
کاربر فقط کلیک میکنه
همین.
در همون لحظه:
IP واقعی ثبت میشه
ASN و ISP قابل استخراج میشه
موقعیت جغرافیایی تقریبی به دست میاد
میشه کاربر رو با دیتابیسهای دیگه correlate کرد
کاربر شاید اصلاً متوجه نشه که یه اتصال مستقیم زده شده.
اینجوری میشه که آدرس آیپی شما تو تلگرام با پروکسی لو میره جالبیش اینجاست که این ایده اینجوری تو ذهنم اومد چجوری روی سیستم من پروکسی ping 300 داره با aspi A مثلا و روی گوشی با aspi B و سیمکارت پینگ دیگه ای میده داره پینگ رو بر چه اساسی میده ؟
مقداری موقعیت م رو جابه جا کردم پرواز زدم برداشتم متوجه شدم پینگ تعغیر میکنه و اینجا شروع کشف این گوگلی با حال شدم بریم برای ادامه زیاد حرف زدم
بازتولید عملی (همون چیزی که خودم تست کردم)
- یه VPS یا هر سروری با Public IP
- دسترسی به لاگ اتصالها
- تلگرام Android یا iOS
VPN خاموش (برای دیدن IP واقعی)
مرحله ۱ — آمادهسازی سرور
روی سرور یه پورت باز کن. مثلاً 8443.
لازم نیست MTProto واقعی اجرا کنی.
ما فقط میخوایم ببینیم اتصال زده میشه یا نه.
مثلاً:
tcpdump -nni any port 8443یک روش دیگه هم هست
nc -lvnp 8443
من خودم اینو رفتم برای دیدن source ip
مرحله ۲ — ساخت لینک تست
https://t.me/proxy?server=IP_SERVER&port=8443&secret=abcdef1234567890abcdef1234567890IP_SERVER رو با IP سرورت عوض کن.
secret فقط باید فرمت hex داشته باشه.
مرحله ۳ — اجرای تست
VPN گوشی خاموش باشه
لینک رو باز کن
تلگرام صفحه Add Proxy رو نشون میده
حتی Connect هم نزن
در همین لحظه اتصال تست زده میشه.
مرحله ۴ — مشاهده در tcpdump
خروجی چیزی شبیه این میشه:
IP 1.2.3.4.52341 > YOUR_SERVER.8443: Flags [S]
اون IP همون IP واقعیه.
اگر handshake کامل بشه، SYN/ACK هم میبینی.
اگر سرور پاسخ نده، فقط SYN دیده میشه.
در هر صورت، IP ثبت شده.
اگر بخوای دقیقتر زمانبندی رو ببینی:
tcpdump -nni any host IP_USER
بعد لینک رو باز کن.
میبینی دقیقاً همزمان با باز شدن صفحه پروکسی، SYN ارسال میشه.
این یه اتصال TCP سادهست.
هیچ دیتای حساس کاربر رد و بدل نمیشه.
صرفاً یه تست دسترسپذیریه.
و مهمتر از همه: tcpdump روی سرور خودته. کلاینت هیچ راهی برای تشخیص اینکه تو داری ترافیک ورودی رو مانیتور میکنی نداره.
آیا این باگ امنیتیه؟
اینجا باید دقیق حرف زد.
این یه Remote Code Execution نیست.
یه Memory Corruption هم نیست.
حتی یه Authentication Bypass هم نیست.
این یه IP Disclosure Behavior ناشی از طراحی کلاینته.
تلگرام قبل از فعالسازی پروکسی، سرور رو تست میکنه.
این رفتار منطقیه.
اما از دید امنیتی، یه Trade-off بین UX و Privacy ایجاد میکنه.
سطح ریسک چقدره؟
برای کاربر معمولی: ریسک پایین تا متوسط.
برای کسی که روی ناشناسبودن حساب کرده:
- فعالان
- روزنامهنگارها
- پژوهشگرهای امنیت
- کاربران در محیطهای پرریسک
- هکر هامون
- ناشناس
ریسکمیتونه بالا باشه.
چون یه کلیک ساده میتونه IP رو افشا کنه.
در کل به صورت خلاصه
با کلیک روی t.me/proxy
قبل از فعال شدن پروکسی
یه اتصال مستقیم TCP به سرور مقصد برقرار میشه
IP واقعی کاربر ثبت میشه
حتی اگر کاربر Connect نزنه
این یه باگ کلاسیک نیست، ولی یه رفتار قابل سوءاستفادهست.
تنها راه جلوگیری استفاده همزمان پروکسی و vpn
MR.COM