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:
Teilweise steht unter dem Skript allerdings auch die Entschlüsselung. Beispiel:
- 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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 325112
Url: https://administrator.de/contentid/325112
Ausgedruckt am: 19.11.2024 um 04:11 Uhr
23 Kommentare
Neuester Kommentar
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
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
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
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
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=='))
Zitat von @131381:
Base64 Strings lassen sich einfach dekodieren. z.B. per Powershell:
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.
Zitat von @Lochkartenstanzer:
Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.
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
Zitat von @ashnod:
aber dafür sehe ich im Moment noch keine Notwendigkeit ... zumindest nicht aus den wenigen Anhaltspunkten.
Zitat von @Lochkartenstanzer:
Alles löschen, Backup einspielen, Updates einspielen, nach den Löchern schauen.
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.
lks
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.
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.
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 ...
VG
Ashnod
Zitat von @Luuke257:
Ich stelle gerne mehr Informationen bereit, mir muss nur gesagt werden was genau!
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
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!!
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.
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
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 . Denn ich schätze mal von Regex hast du bestimmt keine Ahnung.
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.
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.
Zitat von @Luuke257:
Das habe ich beim letzten mal auch schon gemacht, scheint ja nicht geholfen zu haben. Aber klar, das werde ich auf jeden Fall machen.
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.
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