Analiza techniczna Telega: podstawianie serwerów i przejmowanie sesji Telegram
Alternatywny klient Telega przekierowuje ruch z oficjalnych serwerów Telegram na własną infrastrukturę w Kazaniu (AS203502, podsieć 130.49.152.0/24). Przy pierwszym uruchomieniu aplikacja pobiera konfigurację przez HTTPS z api.telega.info/v1/dc-proxy i otrzymuje JSON z listą 25 adresów IP, udawanych za serwery DC Telegram.
{
"dc_version": 2,
"dcs": [
{"id":1, "addresses":[
{"host":"130.49.152.50","port":443},
{"host":"130.49.152.20","port":443}
]}
]
}
Wszystkie adresy należą do operatora Telega. Zaufanie jest zapewniane wstrzykniętym kluczem RSA (odcisk 0x2c945714333b5ebd) w bibliotece libtmessages.49.so, którego brak w oficjalnym Telegramie. Serwery podpisują MTProto-handshake tym kluczem, klient akceptuje połączenie.
Operator generuje auth_key — klucz dostępu do konta. W efekcie w oficjalnym Telegramie pojawia się nieautoryzowana sesja.
Dynamiczny eksperyment: potwierdzenie MitM
Na emulatorze Android 14 z kontem testowym po onboardingu w Telega w oficjalnym kliencie wyświetliła się nowa sesja:
- Wersja systemu: iOS SDK 34 (fałszywka, konkatenacja iOS + poziom API Android).
- Lokalizacja: Rosja (po IP serwera, mimo fałszywego GPS w Helsinkach).
- Adres IP: Brak danych.
- Sekretne czaty: Akceptować.
Każdy użytkownik może to sprawdzić: Ustawienia → Urządzenia → Aktywne sesje. Sesja z „iOS SDK 34” wskazuje na Telega.
Kompromitacja sekretnych czatów i mediów
Sesja operatora ma ustawienie „Sekretne czaty: Akceptować”. Przy inicjalizacji secret chat jedną stroną E2E staje się serwer operatora, otrzymujący plaintext.
Zdjęcia z galerii (nie pliki) są przekodowywane:
- Wysyłka pliku: SHA-256 identyczny.
- Wysyłka zdjęcia: SHA-256 zmieniony, rozmiar 2539 → 2298 bajtów, inna biblioteka JPEG.
Serwer dekoduje, przetwarza i reenkoduje obraz, widząc treść w formie jawnej.
Sekretne czaty są dodatkowo blokowane: Firebase Remote Config zwraca enable_sc: false. Dzwonienie w Telegramie jest wyłączone na sztywno w kodzie (isTelegramCallFallbackEnabled() = false).
Telemetria i cenzura
Codziennie Telega wysyła statystyki na stats.telega.info:
POST /v1/network/usage
{
"items": [
{"content_type":"message", "wifi":{"incoming":3096242, "outgoing":870670}},
{"content_type":"video", "wifi":{"incoming":8766576, "outgoing":0}}
]
}
Dane wg typów treści (bajty w/na WiFi/mobilne), powiązane z user ID przez PASETO v4.local.
Mechanizm cenzury (ru.dahl.messenger.moderation):
- Firebase włącza moderation_enabled.
- Klient pobiera Mlist z api.hub.telega.info (user_id, channel_id).
- Wiadomości są ukrywane lokalnie.
Analiza kodu i piaskownicy
Publiczny GitHub (Telegru/Telegram-Android) — czysty upstream bez podstawiania DC czy klucza RSA. APK (ru.dahl.messenger) zawiera prywatne modyfikacje.
Piaskownica tria.ge dla APK SHA-256 efb7a89496e11af0bd8516a7a571a723a393be62feaf542810f999200ffcbe9c: 8/10 zagrożeń.
Sygnatury MITRE ATT&CK:
- T1426: wykrywanie roota (8).
- T1407: dynamiczne ładowanie DEX/JAR (7).
- T1424: wyliczanie procesów (7).
- T1421: rekonesans sieciowy (6).
- T1422: dane operatora (6).
Dodatkowo: podwójna AppMetrica, PII na /v1/api/account, autopodpisanie @telegaru, połączenia przez VK.
Co ważne
- Telega podstawia serwery DC Telegram swoimi, przejmując auth_key i widząc jawne media.
- Sesje maskowane jako „iOS SDK 34”, łatwe do wykrycia w ustawieniach Telegrama.
- Sekretne czaty zablokowane i skompromitowane przez MitM.
- Telemetria i cenzura sterowane serwerowo bez aktualizacji APK.
- Publiczny kod nie zgadza się z binarką.
— Editorial Team
Brak komentarzy.