这是一个 GitHub 仓库,保存了有关 CVE-2018-7171 的所有相关信息。(以及更多)
CVE-2018-7171 是 TwonkyMedia Server 7.0.11-8.5(最新版本)中的一个目录/文件遍历漏洞。利用此漏洞,攻击者可以列出运行 TwonkyMedia Server 的设备上的所有文件,且与平台无关。此外,攻击者利用该漏洞后,可以从设备下载所有媒体文件(图片、视频和音乐)。要利用此漏洞,TwonkyMedia Server 必须没有密码保护(这是默认设置)。
由于互联网上可访问的大量 TwonkyMedia Server 实例(约 24'000 个)很少受密码保护,研究人员决定公开此漏洞。
也许你不知道 TwonkyMedia Server 正在你的设备上运行,也不知道它已暴露在互联网上。这是因为 TwonkyMedia Server 预装在许多 NAS 设备上。你的路由器可能会自动转发 UPnP 端口(例如 9000)。这使得 TwonkyMedia Server 可以被公开访问。
如果你的设备受到此漏洞影响,请做好设备上的所有文件不再私密的准备。
请务必关闭你的 TwonkyMedia Server 或使用密码进行保护,因为目前还没有针对此漏洞的修复程序。
与本仓库内容相关的任何行动和/或活动均由你自行承担全部责任。滥用本仓库中的信息可能导致相关人员受到刑事指控。如果有任何个人滥用本仓库中的信息违法而被提起刑事指控,作者概不负责。
未经事先双方同意,运行 twonky.py 攻击目标属于非法行为。遵守所有适用的地方、州和联邦法律是最终用户的责任。
2018-01-20 漏洞发现
2018-03-28 安全公告发布
twonky.py 可用于方便地浏览运行 TwonkyMedia Server 的设备。此外,它还实现了一项功能,可根据内置的可扩展关键词列表检查文件和目录名称,例如 "wallet"。同时,它还会获取并向用户展示有趣的系统信息。此外,如果发现 PHPSESSID cookie(通常位于 /tmp/ 目录中),脚本会自动对照 Western Digital Api 进行检查。如果成功,该 cookie 值可能被用于接管 WD NAS 设备。
downloadFiles.py(实验性)可用于批量下载 TwonkyMedia Server 已索引的目录。
“借助 Lynx Technology 的 Twonky,你可以快速发现家中数字视频、照片和音乐的媒体库,通过移动设备进行控制,并在连接的屏幕和扬声器上欣赏它们。
Twonky Server 是 Lynx Technology 推出的业界领先的 DLNA/UPnP 媒体服务器,可在连接设备之间共享媒体内容。Twonky Server 在全球范围内使用,既可作为独立服务器(最终用户可安装,例如用于 PC/Mac),也可作为 NAS、路由器/网关和机顶盒等设备的嵌入式服务器。
Twonky Server 的 Web UI 为你提供了最佳能力,使你能够以多种方式轻松可靠地控制和播放媒体文件,并将这些媒体文件“投射”到其他连接的设备。”——摘自 https://twonky.com
修复: https://docs.twonky.com/display/TRN/Twonky+Server+7.0.x
$ git clone https://github.com/mechanico/sharingIsCaring.git
$ cd sharingIsCaring
$ sudo pip install -r requirements.txt
一切就绪,准备开始吧!
运行 twonky.py [IP ADRESS] [PORT] 会将 TwonkyMedia Server 的 contentbase 参数设置为 /../,从此以后便可以发现、索引和下载设备及连接的外围设备(例如 USB 驱动器)上提供的所有媒体文件。
以下截图展示了现在如何利用 TwonkyMedia Server 访问设备上的所有媒体文件,例如 /root 目录中的文件。请注意,TwonkyMedia Server 不仅在 Unix 上运行,也在 Windows 上运行,所有演示适用于多种操作系统。

步骤 1: 要开始批量下载由 TwonkyMedia Server 共享的文件,只需复制感兴趣文件夹的 URL:

步骤 2: 接下来启动 downloadFiles.py [PATH TO SAVE DOWNLOADS]。该路径参数指定下载文件的保存位置。然后向脚本提供你之前复制的 TwonkyMedia Server 文件夹 URL。现在,脚本会创建一个以 IP 地址命名的新文件夹,并自动开始下载该文件夹内的所有文件。如果媒体文件超过 30 个,脚本将显示一个提示,其中包含发现的媒体文件总数。回答 "Y",批量下载将开始。
