luuke257
Goto Top

Verschlüsseltes Skript decodieren

Hallo zusammen,

Ich arbeite momentan daran eine Website die von einem Virus befallen wurde zu säubern.
Ich habe alle befallenen Dateien gefunden (dachte ich zumindest) und gelöscht. Website ging wieder Online, alles super.

Nach 2 Wochen fängt der Spaß nun von neuem an. Ich hab wohl irgendwas übersehen.

In ein paar .PHP Files sind ellenlange codierte Zeilen eingefügt, diese würde ich gerne entschlüsseln, vielleicht gibt der Inhalt mir etwas aufschlüssiges über den verbleib restlicher Dateien.

Die Skripte sehen teilweise einfach nur so aus:

eval(base64_decode("Hier kommt der ellenlange Zahlen und Buchstabensalat==")  

Teilweise steht unter dem Skript allerdings auch die Entschlüsselung. Beispiel:

$sskhzufn = Array('1'=>s', '0'=>N'  

- Und so weiter und sofort.

Meine Frage lautet deswegen:

Kann ich diese Zeilen mit einem Skript / Tool / ähnlichem entschlüsseln, da ich die decodierung ja schon hab? Wenn ich das ganze per Hand machen müsste, wäre das mehr als unschön.

Ich bin leider noch unerfahren in diesem Gebiet, verzeiht mir falls ich eine blöde Frage stelle.

Frohes Neues Jahr an alle hier im Forum und Danke im vorraus!

Content-Key: 325112

Url: https://administrator.de/contentid/325112

Printed on: April 26, 2024 at 18:04 o'clock

Member: StefanKittel
StefanKittel Dec 30, 2016 at 12:50:22 (UTC)
Goto Top
Hallo,

lange Zeilen sind immer ein ziemlich eindeutiges Zeichen.
Und wenn man davon weiß, auch leicht zu finden.

Man kann es Schritt für Schritt dekodieren.
Aber meist kommt man nicht weit, weil das Skript Elemente aus dem Internet nachlädt und deren Server erkennt Manipulationen.
Und es ist aufwendig.

Es ist die alte Frage ob man ein von einem Virus/Wurm befallenes System, egal ob Webseite, PC, Tablet, überhaupt sicher säubern zu können.
Im Zweifel immer neu machen oder ein Backup vor dem Befall.

Stefan
Member: Luuke257
Luuke257 Dec 30, 2016 at 12:55:29 (UTC)
Goto Top
Hallo Stefan,

Da bin ich deiner Meinung. Der Kunde jedoch sieht das anders.
Ihm sind die Kosten einer Neuinstallation der Homepage + Datenübernahme unsererseits zu teuer und selber ist es ihm zu aufwendig.
Da es ein Spezialkunde vom Chef ist muss es aber gelöst werden.

Gut, ich schätze mit der entschlüsselung werde ich dann nicht weit kommen. Vielen Dank für deine Antwort!
Member: StefanKittel
StefanKittel Dec 30, 2016 at 13:05:36 (UTC)
Goto Top
Außerdem bringt es Dir nichts.
Schau nach verdächtigen Dateinamen und langen Zeilen.
Eval, Base64, etc können böse sein
Das Dateidatum des letzten Zugriffes wird auch häufig gefälscht.
Schau auch in die Logs ob Du Zugriffe findest die passen könnten.

Was für ein System/CRM ist denn das?
Wenn es ein altes CRM ist, kannst Du es säubern so oft Du willst.
-> Update

Vieleicht wurden auch die Zugangsdaten eines FTP-Zugangs gestohlen
-> alle ändern

Oder dem Webserver fehlen wichtige Sicherheitsupdates.

Stefan
Mitglied: 131381
Solution 131381 Dec 30, 2016 updated at 13:20:45 (UTC)
Goto Top
Nach 2 Wochen fängt der Spaß nun von neuem an. Ich hab wohl irgendwas übersehen.
Wichtiger wäre es erst mal die Sicherheitslücke zu schließen über den der Wurm auf das System gelangt ist. Meist Plugins/Addons von CMS-Paketen oder das CMS selbst is nicht up to date, oder die PHP-Version ist nicht gepatcht.
base64_decode
Base64 Strings lassen sich einfach dekodieren. z.B. per Powershell:
[System.Text.Encoding]::UTF8.GetString([convert]::FromBase64String('RGFzIGlzdCBlaW4gVGVzdA=='))  
Gruß mik
Member: ashnod
Solution ashnod Dec 30, 2016 updated at 13:12:57 (UTC)
Goto Top
Zitat von @131381:
Base64 Strings lassen sich einfach dekodieren. z.B. per Powershell:

Moin
Und für die nichtsogernetipper: https://www.base64decode.org/

VG
Ashnod

P.S. Hierbei handelt es sich allerdings um eine Kodierung und nicht um eine Verschlüsselung.
Member: Lochkartenstanzer
Solution Lochkartenstanzer Dec 30, 2016 updated at 13:20:44 (UTC)
Goto Top
Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.

Auf dem ersten Blick scheint, das "säubern" billiger zu sein, aber wenn man alle 2 Wochen "saubermachen" muß, wird das irgendwann deutlich teurer werden als sogar das ganze neu aufzusetzen.

lks
Member: ashnod
ashnod Dec 30, 2016 at 13:31:02 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.

Ahoi und sorry ...

aber dafür sehe ich im Moment noch keine Notwendigkeit ... zumindest nicht aus den wenigen Anhaltspunkten.

VG
Ashnod
Member: Lochkartenstanzer
Lochkartenstanzer Dec 30, 2016 updated at 13:44:50 (UTC)
Goto Top
Zitat von @ashnod:

Zitat von @Lochkartenstanzer:
Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.

aber dafür sehe ich im Moment noch keine Notwendigkeit ... zumindest nicht aus den wenigen Anhaltspunkten.

Mag sein, aber meine Erfahrung sagt, daß es fast immer darauf hinausläuft. Den Optimismus hatte ich nämlich früher auch, daß man sowas "reparieren" kann. face-smile

lks
Member: ashnod
ashnod Dec 30, 2016 at 13:52:00 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
Mag sein, aber meine Erfahrung sagt, daß es fast immer darauf hinausläuft. Den Optimismus hatte ich nämlich früher auch, daß man sowas "reparieren" kann. face-smile


Bin grundsätzlich bei dir, allerdings müsste man schon wissen was dort eingesetzt wird.
Gibt ja "findige" Programmierer die damit tatsächlich Ihren eigenen Code bewusst verstecken wollen.

Solange das unklar ist wäre ich noch nicht in Panik ... face-wink

VG
Ashnod
Member: Luuke257
Luuke257 Dec 30, 2016 at 14:47:36 (UTC)
Goto Top
Das Problem ist ja, dass ich nicht jeden Unterordner und jede Datei einzeln durchsuchen kann. Das sprengt definitiv den Rahmen.
Der einzige Anhaltspunkt den ich hab ist der Virenscanner der Domainfactory.
Ich bekomme eine Email dass Schadsoftware gefunden wurde und es wird eine infiziert.txt erstellt in der die Resultate drin stehen.

Leider weiß ich aber, dass nicht alle befallenen Dateien von diesem Virenscanner erfasst werden. Letztes mal waren es schon mehr und da der Fehler nun immer noch auftritt, hab ich wohl immer noch was übersehen.

Sorry, die Infos hätte ich am Anfang dazu schreiben müssen.

Es ist eine ganz simple Seite mit Wordpress erstellt. Ich habe als die Seite das letzte mal wieder lief alle Updates gemacht die ich machen konnte, sowie alle Themes / plugins etc. die befallen waren gelöscht.

Zugangsdaten die ich geändert hab sind:

Der Login bei Domainfactory
Der WP-User (es gibt nur einen)
Den einzigen FTP Zugang

Das einzige was ich noch nicht geändert hab ist der Zugang zu der SQL Datenbank.
Ich kenne mich leider nicht gut mit Wordpress aus, aber ich habe mir gedacht, wenn ich in der SQL Datenbank einfach zugänge ändere schieße ich die komplette Website ab, da Wordpress keinen Zugriff mehr drauf hat. Wo ich in Wordpress den Zugang abändere, bei einer nicht laufenden Seite, weiß ich nicht.

Gruß,
Lukas
Member: Luuke257
Luuke257 Dec 30, 2016 updated at 14:50:50 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.

Auf dem ersten Blick scheint, das "säubern" billiger zu sein, aber wenn man alle 2 Wochen "saubermachen" muß, wird das irgendwann deutlich teurer werden als sogar das ganze neu aufzusetzen.

lks


Da bin ich komplett deiner Meinung. Aber hier gab es schon ewige Diskussionen, das möchte der Chef nicht.


Ich weiß, dass ich euch hier ziemlich wenige Informationen gebe, leider weiß ich auch nicht was man um mehr sagen zu können alles benötigt.
Ich stelle gerne mehr Informationen bereit, mir muss nur gesagt werden was genau!

Ich danke euch,
Lukas
Member: Lochkartenstanzer
Lochkartenstanzer Dec 30, 2016 at 14:53:26 (UTC)
Goto Top
Zitat von @Luuke257:

Ich stelle gerne mehr Informationen bereit, mir muss nur gesagt werden was genau!

Ich würde erstmal ein diff mit einem backup machen, von dem ich weiß, daß es sauber sein müßte. Dann hat man schonmal die verdächtigen Dateien deutlich eingeschränkt. Diese kann man dann genauer analysieren.

lks
Member: Luuke257
Luuke257 Dec 30, 2016 at 15:00:14 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Ich würde erstmal ein diff mit einem backup machen, von dem ich weiß, daß es sauber sein müßte. Dann hat man schonmal die verdächtigen Dateien deutlich eingeschränkt. Diese kann man dann genauer analysieren.

Das war auch mein erster Anhaltspunkt. Wir haben das Unternehmen allerdings vor nicht allzu langer Zeit erst als Kunde bekommen, vorher haben sie alles selber verwaltet. Und wie man die Menschen so kennt = Natürlich kein Backup erstellt.

Ich hätte denen ganz klar gesagt die Neuinstallation müssen sie jetzt Zahlen, ist ja ihre Schuld das kein Backup gemacht wurde. Aber als ich das vorgeschlagen hab ist mir der Chef fast an den Hals gesprungen.

Gruß,
Lukas
Member: Luuke257
Luuke257 Dec 30, 2016 at 15:17:25 (UTC)
Goto Top
Ich habe mal einen Teil des Skritps decodiert, sieht zum Teil aus wie normale PHP Programmierung.

Danach kommt allerdings ein weiterer Teil der Codiert ist, den ich mit base64 nicht mehr entschlüsseln kann:

if (!defined('ALREADY_RUN_1bc29b36f342a82aaf6658785356718'))  
{
define('ALREADY_RUN_1bc29b36f342a82aaf6658785356718', 1);  

 $klgsmti = 1247; function limyavxps($ofmhzwhe, $iaumzkxq){$opcyuwn = ''; for($i=0; $i < strlen($ofmhzwhe); $i++){$opcyuwn .= isset($iaumzkxq[$ofmhzwhe[$i]]) ? $iaumzkxq[$ofmhzwhe[$i]] : $ofmhzwhe[$i];}  
$kkphabmlxk="base" . "64_decode";return $kkphabmlxk($opcyuwn);}  
$qkgqbtac = 'kqsjGWFRE6kYzDWQiMFQ6DvOEQilKdhWAdVX2VIakqsjGWFRE6kYzDvOEnF  

Und so weiter..

Gruß, Lukas
Mitglied: 131381
131381 Dec 30, 2016 updated at 15:34:00 (UTC)
Goto Top
Dekodieren lohnt nicht wirst du eh nicht schlau draus wenn du hier schon selber nicht weiter kommst (D u musst alle Variablen Schritt für Schritt auflösen). Identifiziere eine Gemeinsamkeit aller Schnippsel in den Dateien, dann kannst du ein Regular Expression-Skript über deine Dateien schrubben lassen das alle diese Bereiche entfernt. Die Datenbank musst du aber auch checken, dort kann es ebenfalls versteckten Code geben!!
Member: Luuke257
Luuke257 Dec 30, 2016 at 15:37:56 (UTC)
Goto Top
Zitat von @131381:

Dekodieren lohnt nicht wirst du eh nicht schlau draus wenn du hier schon selber nicht weiter kommst

Da gebe ich dir Recht. Meine einzige Hoffnung war, dass ich so evtl andere durch den Virus erstellte Dateien finde.

Es wird eine Bestimmte Datei im Hauptverzeichnis von Wordpress erstellt, die der Virenscanner nicht erkannt hat. In dieser Datei ist klar lesbar Schadhafter Code. Ich hatte die Hoffnung, wenn ich diese Teile Dekodieren kann, ich noch andere Dateien finde die selber erstellt wurden, die ich beim letzten Mal übersehen hab.

In der Datenbank habe ich nichts gefunden. Nicht mal Zugriffe die ich nicht erklären konnte.
Member: ashnod
ashnod Dec 30, 2016 at 15:46:26 (UTC)
Goto Top
Zitat von @Luuke257:
Es ist eine ganz simple Seite mit Wordpress erstellt. Ich habe als die Seite das letzte mal wieder lief alle Updates gemacht die ich machen konnte, sowie alle Themes / plugins etc. die befallen waren gelöscht.

Oki, Wordpress ist natürlich ein beliebtes Angriffsziel ...
Als ersten Schritt solltest du eine saubere identische Wordpressversion installieren.

Diese Installation nimmst du als Grundlage und lässt Dateien und Verzeichnisse mit der "versuchten Version" vergleichen.
Alle Dateien der sauberen Version in die alte kopieren, nachdem du die alte vollständig entfernt hast mit Ausnahme bekannter Themes/Designs/Userdateien. Für letztere bleibt dir nur Handarbeit, die Themes kannst du evtl. auch so abgleichen, je nachdem wer diese erstellt hat und wieviel dort verändert wurde .... Vorher natürlich Backup machen.

VG
Ashnod
Mitglied: 131381
131381 Dec 30, 2016 updated at 15:49:01 (UTC)
Goto Top
Ich hatte die Hoffnung, wenn ich diese Teile Dekodieren kann, ich noch andere Dateien finde die selber erstellt wurden, die ich beim letzten Mal übersehen hab.
Mit ein bißchen Regex (grep/sed und Konsorten) das du über alle Dateien laufen lässt findest du die auch so, dazu fehlen uns aber deine Dateien um dir damit konkret weiter zu helfen face-wink. Denn ich schätze mal von Regex hast du bestimmt keine Ahnung.
Member: Luuke257
Luuke257 Dec 30, 2016 at 15:56:12 (UTC)
Goto Top
Zitat von @131381:

Denn ich schätze mal von Regex hast du bestimmt keine Ahnung.

Da liegst du vollkommen richtig, deswegen suche ich Hilfe, ich kenne mich mit diesem Thema nicht gut aus.


Als ersten Schritt solltest du eine saubere identische Wordpressversion installieren.
Diese Installation nimmst du als Grundlage und lässt Dateien und Verzeichnisse mit der "versuchten Version" vergleichen.

Das habe ich beim letzten mal auch schon gemacht, scheint ja nicht geholfen zu haben. Aber klar, das werde ich auf jeden Fall machen.

Danke für eure Hilfe!
Mitglied: 131381
Solution 131381 Dec 30, 2016 updated at 16:46:42 (UTC)
Goto Top
Bei Wordpress hast du eigentlich nur im Verwaltungs-Backend viele PHP-Dateien. Die Daten des Frontends bestehen ja Haupsächlich aus dem Template und er Rest liegt ja alles in der Datenbank. Das Verwaltungs-Backend kannst du also schon mal komplett durch das Original ersetzen. Bleibt das Frontend, Template durch Original ersetzen und das was übrig bleibt ist absolut überschaubar, du lässt dir z.B. per grep alle Files anzeigen die einen typischen String aus Skripten den sie gemeinsam haben.

Da du hierzu leider zu wenig Informationen lieferst wird das schwierig dir hier auf Forumsbasis noch konkreter zu helfen, sorry. Hol dir jemanden der sich damit auskennt mit ins Boot.

Du kannst mir aber gerne die Files auch gezippt schicken und ich bereinige dir das gegen eine kleine Aufwandsentschädigung. Bei Interesse -> PN.

Einfacher, besser und cleaner => OS und PHP auf den aktuellen Stand bringen, Wordpress neu drauf Datenbank zurückspielen und prüfen, fertig.

Noch besser => In Zukunft kein Wordpress mehr verwenden... zu große Angriffsflächen.
Member: StefanKittel
StefanKittel Dec 30, 2016 at 16:38:39 (UTC)
Goto Top
Hallo,

2 Vorschläge

1) Wordpress neu installieren, die DB weiter verwenden und die Module und das Template neu installieren.
Geht aber nur wenn es nicht zu viele sind.

2) Wordfence installieren.
Das ist eine WP-Sicherheitssoftware.

Stefan
Member: ashnod
ashnod Dec 30, 2016 at 16:39:48 (UTC)
Goto Top
Zitat von @Luuke257:
Als ersten Schritt solltest du eine saubere identische Wordpressversion installieren.
Diese Installation nimmst du als Grundlage und lässt Dateien und Verzeichnisse mit der "versuchten Version" vergleichen.

Das habe ich beim letzten mal auch schon gemacht, scheint ja nicht geholfen zu haben. Aber klar, das werde ich auf jeden Fall machen.

Oki, aber der Abgleich aller Dateien, soll nicht nur zu einer sauberen Version führen, sondern soll auch noch der forensischen Suche nach dem Einfallstor dienen evtl. kannst du damit eine Erweiterung erkennen die dafür verantwortlich war.

Das gesamte System prüfen ... OS-Stand, aktuelle Pakete, etc. pp.

Über google nach bekannten Sicherheitslücken in Wordpress und deren Auswirkungen forschen.

Wenn Erweiterungen genutzt werden unbedingt schauen ob die überhaupt noch gepflegt werden ...

Also da hängt deutlich mehr dran als nur eine saubere Installation auf den Server zu packen.

Sorry, aber das ist wirklich ein erheblicher Aufwand den du an der Backe hast.

und jetzt sind wir an dem Punkt den lks angedeutet hat, wenn du die Lücke nicht sicher schließen kannst lohnt es sich tatsächlich eher den Webserver und Wordpress neu zu installieren. Wichtige Daten/Datenbank widerherzustellen ist dann tatsächlich der einfachere und sichere Weg.

VG
Ashnod
Member: Luuke257
Luuke257 Jan 19, 2017 at 08:33:06 (UTC)
Goto Top
Für alle die an dem Thema beteiligt waren: Vielen Dank für eure Hilfe.
Nach meinem Urlaub bin ich nun wieder in der Firma und die gute Frau hat sich für eine Neuinstallation entschieden. Thema ist damit also gelöst!