Wegen eines leicht erhöhten Load hat mich nagios informiert. Was macht man da als Admin? Klar, mal gucken, was das denn schon wieder sein könnte....
Ich habe in einem Joomla Web auf meinem Server einen fiesen Burschen eingefangen, der andere Server angreift.
21936 1 0 17:13 ? 00:00:01 /usr/bin/perl ./jcache domain.de
21938 1 0 17:13 ? 00:00:00 /usr/bin/perl ./jcache domain.de
21940 1 0 17:13 ? 00:00:01 /usr/bin/perl ./jcache domain.de
21942 1 0 17:13 ? 00:00:01 /usr/bin/perl ./jcache domain.de
21944 1 0 17:13 ? 00:00:01 /usr/bin/perl ./jcache domain.de
21946 1 0 17:13 ? 00:00:00 /usr/bin/perl ./jcache domain.de
21948 1 0 17:13 ? 00:00:00 /usr/bin/perl ./jcache domain.de
21950 1 3 17:13 ? 00:00:05 /usr/bin/perl ./jcache domain.de
21952 1 0 17:13 ? 00:00:00 /usr/bin/perl ./jcache domain.de
... insgesamt 18 Prozesse ...
Das habe ich durch mitlesen der Prozesse durch strace -p Beobachtung herausgefunden.
Abschalten ist kein Problem, es kommt aus dem Joomla.
Wenn ich das Web kurz aktiviere werden die Perl Prozesse innerhalb kurzer (unterschiedlichen Zeiträumen im 1-2 stelligen Minutenbereich) wieder gestartet.
Das Problem ist, dass ich keine manipulierte Datei oder extra Datei im betreffenden Web finden kann. Klar, ich werde ein Backup einspielen, nur ist es schon eigenartig, dass ich keine Spuren finde. Eine Möglichkeit wäre ja, das an der Datei der Datumsstempel manipuliert worden ist. maldet findet auch nichts.
Es wäre gut zu wissen, was ich mir da eingefangen habe. Nach den straces jedenfalls etwas fortgeschrittenes, es liest meine /etc/hosts /etc/resolv.conf und /etc/ssl/certs/ca-certificates.crt aus und greift verschiedene Server auf Port 80 und 443 an um nach Lücken in Wordpress Installationen zu finden.
Allerdings macht mich ein Fund in meinen Traces mißtrauisch .
/var/www/clients/clientN/webMMM/tmp/phpSM2Np7 (deleted);
Möglicherweise wird, nachdem das Script gestart wurde, die Datei auch gleich wieder gelöscht?!
Um den auf die Spur zu kommen, habe ich nun ein kleines Script gebastelt, um das eingespielte Backup zu überwachen, denn das heutige erneute aktivieren des Webs führte nicht zum erneuten aufflammen des jcache Wahnsinns ...
cat ueberwache.sh
while true; do
inotifywait -m -e modify,create,delete,move --timefmt '%Y-%m-%d_%H:%M:%S' --format '%T %w %:e %f' -r /var/www/clients/clientN/webMMM/web >>/root/ueberwachung-webMMM-neu.log
done
Also wirklich dirty Scripting, das könnte man natürlich besser gestalten.
Gestartet habe ich das script mit nohup ./ueberwache.sh&
Danach wurde das zurücksetzte Web dem "Kunden" (Kumpel) übergeben und ich konnte die Funktion schön überprüfen, weil jetzt erstmal alle Addons/Plugins upgedatet bzw deinstalliert wurden.
Ausschnitt:
2019-01-09_20:17:54 /var/www/clients/clientN/webMMM/web/administrator/components/com_jem/views/ DELETE:ISDIR
2019-01-09_20:17:54 /var/www/clients/clientN/webMMM/web/administrator/components/com_jem/views/imagehandler/ DELETE:ISDIR tmpl
2019-01-09_20:17:54 /var/www/clients/clientN/webMMM/web/administrator/components/com_jem/views/ DELETE:ISDIR imagehandler
Nun ist der erste Tag vorbei und kein erneuter Angriff.
das inotifywait tut aber nicht weh, ich lasse es jetzt einfach mal laufen, wenn dann wieder das, oder was anderes unterwegs ist hilft die Dokumentation und das Log hoffentlich.