PrestaShop 9 versendet keine E-Mails per SMTP: der Port-587-Fehler
Bestellungen kommen an, aber keine einzige E-Mail geht raus. Ein Fehler von PrestaShop 9 mit Port 587: 9.2 behebt ihn,…
Ein Kunde schreibt Ihnen: Als er Ihren Shop geöffnet hat, erschien ein „Bestätigen Sie, dass Sie ein Mensch sind“, das ihn aufforderte, zwei Tasten zu drücken, etwas einzufügen und mit Enter zu bestätigen. Sie schauen nach und sehen nichts Ungewöhnliches. Wenn Ihnen das passiert, ist Ihr PrestaShop-Shop gehackt und mit ClickFix infiziert: Jemand hat einen Code eingeschleust, der Ihren Besuchern dieses falsche Captcha zeigt, damit sie selbst ein Schadprogramm installieren, meist eines, das Passwörter stiehlt.
Das verschwindet nicht von allein: Jemand ist in Ihren Shop eingedrungen und hat den Code dort hinterlassen. Er lässt sich entfernen, aber entscheidend ist, die Tür zu schließen, durch die er gekommen ist. Und Sie sind nicht allein: Am 3. September zählte Netskope mehr als 5.400 infizierte Websites dieser Kampagne, fast alle von kleinen Unternehmen. Die einzeln untersuchten liefen meist mit WordPress und manchmal mit PrestaShop.
Die Seite verschwimmt hinter einem falschen Captcha, das dazu auffordert, die Windows-Taste und R zu drücken, einzufügen und Enter zu drücken. Eingefügt wird ein Befehl, den die Seite bereits unbemerkt kopiert hat, und wer ihn ausführt, installiert das Programm des Angreifers. Ein echtes Captcha verlangt nie, dass Sie auf Ihrem Computer etwas öffnen.
Dass Sie es nicht sehen, heißt nicht, dass es nicht da ist. Der Code in Ihrem Shop holt die Falle bei jedem Seitenaufruf von woanders, und der Angreifer entscheidet, was wem angezeigt wird, ohne Ihren Shop erneut anzufassen. Ziel sind Windows-Computer, und die Variante, die The Hacker News am 6. Oktober beschrieben hat, versteckt das Programm sogar schon im Browser des Besuchers, bevor sie ihn zu irgendetwas auffordert.
Der Screenshot des Kunden reicht, um loszulegen.
In der Datenbank, in einem Feld, das der Shop auf jeder Seite ausgibt, oder in den Dateien: Netskope fand es an legitime JavaScript-Dateien angehängt und in Ordnern, die eine echte Erweiterung imitieren. Der französische Händler, der am 5. Oktober im PrestaShop-Forum davon berichtete, fand mit seinem 1.7.8-Shop nichts in der Datenbank, und die Hintertüren lagen in Dateien in mehreren Ordnern.
index.php. Eine Datei mehr, oder eine, deren Name mit einem Punkt beginnt und die Ihr FTP-Programm ausblendet, ist eine Hintertür.Die Prüfung unter Erweiterte Einstellungen → Informationen → Liste der geänderten Dateien schaut nur, ob sich Core-Dateien geändert haben: nicht das Template, nicht die Module, nicht die Bilder und keine neu hinzugefügten Dateien. Eine leere Liste heißt nicht, dass der Shop sauber ist.
Netskope weiß noch nicht, wie diese Websites kompromittiert wurden. Bei PrestaShop sind die üblichen Türen ein Modul mit einer bekannten Lücke, das nie aktualisiert wurde, ein gestohlenes oder zu einfaches Backoffice-Passwort und „Nulled“-Module, also Bezahlmodule, die gratis von Piratenseiten geladen werden und oft schon mit eingebauter Hintertür kommen.
ps_facetedsearch, dem Modul für die Katalogfilter, das PrestaShop standardmäßig mitbringt: Jeder konnte ohne Konto Code auf Ihrem Server ausführen. Behoben ist sie in 4.0.4; hatten Sie eine ältere Version, gehen Sie davon aus, dass das der Weg hinein gewesen sein kann. Und löschen Sie Module, die Sie nicht nutzen./admin lautet. Einen zweiten Schritt mit Code auf dem Handy bringt PrestaShop nicht mit, ein Modul rüstet ihn nach.Abfragen nur lesend; ersetzen Sie ps_ durch das Präfix des Shops. Warehouse speichert seine Code-Felder maskiert, deshalb auch nach <script suchen.
SELECT name, LEFT(value, 120)
FROM ps_configuration
WHERE value LIKE '%<script%'
OR value LIKE '%<script%'
OR value LIKE '%eth_call%'
OR name LIKE '%codes_js';
SELECT id_cms, id_lang
FROM ps_cms_lang
WHERE content LIKE '%<script%';
SELECT id_employee, email,
id_profile, active,
last_connection_date
FROM ps_employee
ORDER BY id_employee DESC;
In den Dateien, vom Stammverzeichnis des Shops aus:
find img upload download \
-name '*.php' ! -name index.php
find . -name '.*.php'
find . -type f -mtime -30 \
\( -name '*.php' -o -name '*.js' \) \
-not -path './var/cache/*'
grep -rl -e eth_call -e prebsc \
-e bsc-testnet -e claritydelivr \
--include=*.js --include=*.php \
--include=*.tpl .
Die Indikatoren der Kampagne stehen in der Liste von Netskope. Core und Module aus sauberen Paketen derselben Version neu aufzuspielen ist sicherer, als Datei für Datei zu löschen; danach var/cache und themes/*/assets/cache leeren. PrestaShop 9 bringt eine .htaccess mit, die PHP in img, upload, download, js, vendor und modules nicht ausführen lässt: prüfen, dass sie noch da sind, und unter Nginx, das sie nicht liest, diese Regeln in die Serverkonfiguration übernehmen.
Wenn Sie etwas gefunden haben und niemand es bereinigen kann, wenn es nach der Bereinigung zurückgekommen ist oder wenn Sie nicht wissen, wo Sie anfangen sollen. Das gehört zu unserem Support- und Wartungsservice: Wir bereinigen den Shop, finden heraus, wie sie hereingekommen sind, und schließen die Tür. Schicken Sie uns den Screenshot Ihres Kunden und Ihre PrestaShop-Version, und wir sehen es uns am selben oder am nächsten Tag an.
Bestellungen kommen an, aber keine einzige E-Mail geht raus. Ein Fehler von PrestaShop 9 mit Port 587: 9.2 behebt ihn,…
Aus dem Ausland lädt sie einwandfrei, aus Spanien läuft sie in die Zeitüberschreitung – ausgerechnet am Spieltag. Nicht…
Ein Modul, eine App, ein Server, der Ärger macht, oder einfach eine Einschätzung. Die erste Beratung kostet nichts, und daraus wird ein Festangebot mit Preis und Termin.