Neu E-Mail / WICHTIG: Sicherheitslücke in JTL-Shop 4 - Dringender Handlungsbedarf

niro

Sehr aktives Mitglied
15. August 2012
280
32
Moin Zusammen,

bezüglich Auswertung der Logs (all-inkl) habe ich mich auch schwer getan mit Notepad. Das ist ja sehr unübersichtlich in dem Wirrwarr von IP's, Code etc.

Ich habe mir die Logs einfach in Excel geladen (mehr Übersicht da in Spalten und Zeilen) und dann habe ich mit der "Suchen"-Funktion einfach nach bestimmten IP's oder Codes gesucht. Das ging recht fix, da Excel dann ja die Zeilen mit den gesuchten Begriffen anzeigt. Vielleicht ist das ja für den einen oder anderen eine Hilfe.

Gruß
niro
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Nach Auswertung vieler Log-Files zeichnet sich ab, dass der Admin-Account immer (oder zumindest sehr häufig) mit ID 40 angelegt wurde. Mit einem Select-Statement auf der Datenbank:
SQL:
SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<Name-der-Datenbank>'
    AND TABLE_NAME = 'tadminlogin';
<Name-der-Datenbank> bitte durch den Namen eurer Datenbank ersetzen, so wie es in der config.JTL-Shop.ini.php unter DB_NAME eingetragen ist.

Wenn man bisher nicht mehr 39 Admin-Logins angelegt hat, kann man damit einen ersten schnellen Test machen, ob der Shop angegriffen und ein Admin-Account angelegt wurde. Ist das Ergebnis der o.g. Abfrage 41 ist es sehr wahrscheinlich, dass die Lücke in diesem Shop ausgenutzt wurde. Ein Wert <> 41 bedeutet jedoch nicht zwangsläufig Entwarnung!
Wer jedoch bisher nichts in seinen Logs gefunden hat und trotzdem die 41 als nächste ID hat, der sollte dann doch nochmal Rückwirkend seine Logs durchgehen. :(
Bei Fragen dazu könnt ihr mich auch gerne per PN anschreiben.
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
585
170
Nach Auswertung vieler Log-Files zeichnet sich ab, dass der Admin-Account immer (oder zumindest sehr häufig) mit ID 40 angelegt wurde. Mit einem Select-Statement auf der Datenbank:
SQL:
SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<Name-der-Datenbank>'
    AND TABLE_NAME = 'tadminlogin';
<Name-der-Datenbank> bitte durch den Namen eurer Datenbank ersetzen, so wie es in der config.JTL-Shop.ini.php unter DB_NAME eingetragen ist.

Wenn man bisher nicht mehr 39 Admin-Logins angelegt hat, kann man damit einen ersten schnellen Test machen, ob der Shop angegriffen und ein Admin-Account angelegt wurde. Ist das Ergebnis der o.g. Abfrage 41 ist es sehr wahrscheinlich, dass die Lücke in diesem Shop ausgenutzt wurde. Ein Wert <> 41 bedeutet jedoch nicht zwangsläufig Entwarnung!
Wer jedoch bisher nichts in seinen Logs gefunden hat und trotzdem die 41 als nächste ID hat, der sollte dann doch nochmal Rückwirkend seine Logs durchgehen. :(
Bei Fragen dazu könnt ihr mich auch gerne per PN anschreiben.
Eine Idee warum 40 spezifiziert wurde anstatt sich einfach die nächste AUTO_INCREMENT ID geben zu lassen?
 

c24

Aktives Mitglied
26. Dezember 2017
82
18
Ich habe die .htaccess mit dem folgendem Code im Verzeichnis Bilder angelegt:
Apache config:
Apache config:
Options -Indexes
<FilesMatch ".+\.ph(ar|(p[\d]?)|tml)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
    </IfModule>
</FilesMatch>

Mein Problem ist, dass die Bilder aus dem Unterverzeichnis bilder/kk_dropper_uploads und bilder/intern/shoplogo/ nicht mehr angezeigt werden.
Ohne .htaccess  funktionieren die Verlinkungen auf die Bilder.
Was habe ich falsch gemacht?
 

c24

Aktives Mitglied
26. Dezember 2017
82
18
Ich habe die .htaccess mit dem folgendem Code im Verzeichnis Bilder angelegt:
Apache config:
Apache config:
Options -Indexes
<FilesMatch ".+\.ph(ar|(p[\d]?)|tml)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
    </IfModule>
</FilesMatch>

Mein Problem ist, dass die Bilder aus dem Unterverzeichnis bilder/kk_dropper_uploads und bilder/intern/shoplogo/ nicht mehr angezeigt werden.
Ohne .htaccess  funktionieren die Verlinkungen auf die Bilder.
Was habe ich falsch gemacht?
hat sich erledigt... nachdem ich "Apache config:" in der ersten Zeile entfernt habe funktioniert es
 

301Moved

Sehr aktives Mitglied
19. Juli 2013
930
188
Ja, wir haben auch die 41 (https://security.stackexchange.com/...-0x41414141-associated-with-security-exploits).
Als Tool hab ich glogg, aber grep & less sind absolut ausreichend.
Unser Webserver- Log geht leider nur 24 Stunden, doch in jtllogs/zugriffslog_* konnte ich nichts auffälliges finden
(natürlich es ist fraglich, ob immer die IP ...110 genommen wurde, aber dieser alte User Agent ist schon auffällig).

Wer danach noch mal selbst einen Benutzer neu angelegt hat, weil er die alten gelöscht oder was auch immer hat, der kann natürlich auch einen entsprechend höheren Wert als 41 haben...

Vermutlich auch andere IP...
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.709
252
Leipzig
Für alle die Kunden bei der IT-Rechtskanzlei sind; die haben dort ein Musterschreiben für die Kundenbenachrichtigung:
https://www.it-recht-kanzlei.de/muster-benachrichtigung-betroffener-datenpanne.html
Hey, danke für den Hinweis. Ich hab es mir angesehen, und muss sagen: Wenn ich eine solche E-Mail als Kunde erhalten würde, würde ich mich nicht aufgeklärt und ernst genommen fühlen.
Das ist das Schema "Firma zu groß". xD Aber mal ehrlich, wie würdet ihr euch fühlen, wenn ihr eine E-Mail erhaltet, die nicht aufklärt und am Ende mit einem Gutschein abspeist. Wer hier jetzt denkt, er müsse seinen Kunden einen Gutschein oder ähnliches anbieten, erweckt den Eindruck, dass er (die Firma) Schuld daran hat.
Ich habe heute allen Kunden eine E-Mail zugeschickt. Ich war ehrlich, habe geschrieben
1. Was passiert ist und welche Maßnahmen wir getroffen haben.
2. welche Daten betroffen waren/sind,
3. Was der Kunde jetzt machen kann (PW ändern, das alle PWs ungültig gemacht wurden, auch das er sein Konto löschen kann und gleich hinterher, dass er ja kein Kundenkonto für eine Bestellung braucht ;), er muss es halt nur immer wieder eingeben)
4. was der Kunde jetzt erwarten kann nach dem Datenklau (Spam, Telefonterror, etc. pp.) Halt das was man selbst kennt, denn mal ehrlich: Wer ist denn nicht von einer solchen Datenpanne schon betroffen?
5. Der Ablauf der Angriffs mit Datumsangabe
6. Eine kurze Entschuldigung und für weitere Fragen eine E-Mailadresse

Bis jetzt ein paar Mails zur Kontolöschung, ansonsten positive Rückmeldung von Kunden und dem Dank der Transparenz. Und Kopf hoch.🙂
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
@FPrüfer
Ich überlege noch eine Strafanzeige bei der Polizei zu stellen, sollten wir als Betroffene das machen?
Was meint JTL dazu?
Bzw. Strafanzeige, oder Strafantrag?
Wie immer von meiner Seite: Keine Rechtsberatung! Eine Anzeige (mit Strafantrag vs. Strafanzeige bin ich leider überfordert) bei der Polizei macht in meinen Augen Sinn. Auch wenn offensichtlich keine Daten geflossen sind, aber der illegale Account angelegt wurde liegt - in meinen Augen - zumindest der Tatbestand des illegalen Eindringens in ein Computersystem vor.
Unter https://www.jtl-software.de/hotfix-sicherheitsluecke haben wir ein paar Massnahmen zusammengefasst. Diese Seite wird von uns auch permanent überarbeitet und ergänzt. Ich werde intern mal nachfragen, ob wir zu dem Punkt: "Anzeige bei der Polizei" was belastbares beisteuern können.
 
  • Gefällt mir
Reaktionen: sah

arminma

Sehr aktives Mitglied
2. Januar 2017
153
100
Ist ein KEIN gutes Zeichen. Hier wurde der Exploit versucht, auch wenn der Shop mit 404 antwortet.

Ist dagegen ein gutes Zeichen. Hier wurde der Login-Versuch mit einer Weiterleitung (falscher User/Passwort) beantwortet

Hier wurden Spuren verwischt und der Admin-Account über die Lücke wieder gelöscht.
Wenn zwischen dem Insert und dem Delete KEINE erfolgreichen Aufrufe von Backend-Dateien (mutmasslich /admin/wawisync.php, admin/einstellungen.php, admin/banner.php) oder /bilder/banner/xyz.php enthalten sind, scheinen keine Daten abgeflossen zu sein.
Stelle bitte trotzdem sicher, dass sich KEINE .php-Dateien im Verzeichniss /bilder/banner befinden und die .htaccess in /bilder vorhanden ist und den Inhalt

Apache config:
Options -Indexes
<FilesMatch ".+\.ph(ar|(p[\d]?)|tml)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
    </IfModule>
</FilesMatch>
hat, bzw. das die korrespondierenden Rules bei Verwendung eines NGINX-Servers aktiv sind.

***Anmerkung** Ich habe meine Antwort nochmal konkretisiert, da der Post von heute Nacht nicht ganz korrekt war!
Ich habe den Patch installier, mein Bilder Banner ist ohne Dateieintrag , also leer...die .htaccess datei schaut genauso aus wie sie ausschauen muss, bin ich dann fein raus? was sollte ich dann noch tun? danke für die Info
und noch ne ganz blöde Frage, wo finde ich die evtl. betroffenen logfiles? per FTP ZUgriff zum Hoster, da ist dann ein ordner mit LOGS...diese kopiere ich dann alle lokal bis 22.10 sagen wir mal, dann gehe ich jede log mit Glogg durch indem ich tadminlogin als suchbegriff eingebe? wäre das richtig?
 
Zuletzt bearbeitet:

tbrenner

Sehr aktives Mitglied
5. September 2019
181
86
@arminma
Nimm Notepad++ da kannst alle Dateien auf einmal nach tadminlogin untersuchen. Geht schneller
Haben wir auch gemacht und Gottseidank nichts gefunden.
 

sah

Sehr aktives Mitglied
11. Juni 2021
330
32
Herten
@arminma
Unser Ordner heißt /var/www/XXX/ log/ (von heute) bzw. /var/www/XXX/log/old/ (letzte sieben Tage, gepackt) aber das ist natürlich individuell.
In einer SSH wäre das zgrep test: log/old/*
Mit FTP sehe ich neben /html direkt das /log.
 
Zuletzt bearbeitet:

arminma

Sehr aktives Mitglied
2. Januar 2017
153
100
@arminma
Unser Ordner heißt /var/www/XXX/ log/ (von heute) bzw. /var/www/XXX/log/old/ (letzte sieben Tage, gepackt) aber das ist natürlich individuell.
In einer SSH wäre das zgrep test: log/old/*
Mit FTP sehe ich neben /html direkt das /log.
japp, mit ftp gehe ich auf die Domain, dort ist ein Ordner logs, mit viel inhalt: acess_ssl.log, error log und viele mehr...diese müssen alle untersucht werden, sind aber viel mit nur 20 byte
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Ich habe den Patch installier, mein Bilder Banner ist ohne Dateieintrag , also leer...die .htaccess datei schaut genauso aus wie sie ausschauen muss, bin ich dann fein raus?
Leider noch nicht ganz... Es besteht immer noch die Möglichkeit, dass die Lücke ausgenutzt wurde, um einen illegalen Admin-Account anzulegen und Zugriff zum Backend zu erlangen. Klarheit hierüber geben leider nur die Acces- Log-Files des Servers. Du kannst auch erstmal das SQL-Script von hier: https://forum.jtl-software.de/threa...dringender-handlungsbedarf.170283/post-924326 ausführen und prüfen ob du dort einen Wert > 40 erhälst.
Im Zweifel schreib mich bitte per PN an.
 

arminma

Sehr aktives Mitglied
2. Januar 2017
153
100
Leider noch nicht ganz... Es besteht immer noch die Möglichkeit, dass die Lücke ausgenutzt wurde, um einen illegalen Admin-Account anzulegen und Zugriff zum Backend zu erlangen. Klarheit hierüber geben leider nur die Acces- Log-Files des Servers. Du kannst auch erstmal das SQL-Script von hier: https://forum.jtl-software.de/threa...dringender-handlungsbedarf.170283/post-924326 ausführen und prüfen ob du dort einen Wert > 40 erhälst.
Im Zweifel schreib mich bitte per PN an.
ok, pn
Leider noch nicht ganz... Es besteht immer noch die Möglichkeit, dass die Lücke ausgenutzt wurde, um einen illegalen Admin-Account anzulegen und Zugriff zum Backend zu erlangen. Klarheit hierüber geben leider nur die Acces-Log-Files des Servers. Du kannst auch erstmal das SQL-Script von hier: https://forum.jtl-software.de/threa...dringender-handlungsbedarf.170283/post-924326 ausführen und prüfen ob du dort einen Wert > 40 erhälst.
Im Zweifel schreib mich bitte per PN an.
pm ist gesendet
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.709
252
Leipzig
@FPrüfer
Hey, könnt ihr mal ne kurze Anleitung geben, wie man die "prechecked" Checkbox bei Kundenkonto erstellen rausnimmt?
Also so, dass der Kunde eher auf Gastkonto bestellt und nur wenn er wirklich ein Kundenkonto erstellen will, die Box anklicken muss.
Oder gibt es da eine Einstellung im 4erShop?
 

Ähnliche Themen