===========================================================================
  DAVINCI SPURENSUCHE – Anleitung
  Kostenlose Prüfung eines Webservers nach einem Vorfall
===========================================================================

  Sie brauchen dafür keine Programmierkenntnisse. Sie brauchen einen
  Zugang zum Server und etwa zehn Minuten.


---------------------------------------------------------------------------
  WAS DAS WERKZEUG MACHT – UND WAS NICHT
---------------------------------------------------------------------------

  Es sucht nach den Spuren, die nach einem erfolgreichen Angriff auf einen
  PHP-Server üblicherweise zurückbleiben. Es liest dabei nur.

  Es verändert nichts.    Keine Datei wird gelöscht, verschoben oder
                          repariert. Das ist Absicht, siehe unten.
  Es sendet nichts.       Keine Verbindung ins Internet, kein Rückkanal.
                          Der Bericht bleibt auf Ihrem Server.
  Es garantiert nichts.   Ein leerer Befund heißt: Die gesuchten Spuren
                          wurden nicht gefunden. Nicht: alles ist sauber.


---------------------------------------------------------------------------
  SCHRITT 1: PRÜFEN, OB PHP AUF DER KOMMANDOZEILE LÄUFT
---------------------------------------------------------------------------

  LINUX (über SSH angemeldet):

      php -v

  WINDOWS SERVER (Eingabeaufforderung als Administrator):

      php -v

  Es muss eine Versionsnummer erscheinen, zum Beispiel "PHP 8.2.35 (cli)".

  Kommt stattdessen "Befehl nicht gefunden" oder "php wird nicht als
  Befehl erkannt", suchen Sie die Datei:

      Linux:    which php     oder    ls /usr/bin/php*
      Windows:  dir C:\php\php.exe

  Auf Windows liegt PHP oft unter C:\php\php.exe. Dann schreiben Sie in
  allen folgenden Befehlen diesen vollen Pfad statt nur "php".


---------------------------------------------------------------------------
  SCHRITT 2: DIE DATEI AUF DEN SERVER LEGEN
---------------------------------------------------------------------------

  Legen Sie davinci-spurensuche.php an eine Stelle, die NICHT über das
  Internet erreichbar ist. Also nicht ins Webverzeichnis.

      Linux:    /root/davinci-spurensuche.php
                oder /tmp/davinci-spurensuche.php

      Windows:  C:\Temp\davinci-spurensuche.php

  Warum nicht ins Webverzeichnis: Das Werkzeug weigert sich zwar, über
  einen Browser zu starten. Aber Dateien, die dort nicht hingehören,
  gehören eben nicht dorthin – auch diese nicht.


---------------------------------------------------------------------------
  SCHRITT 3: STARTEN
---------------------------------------------------------------------------

  LINUX:

      sudo php /root/davinci-spurensuche.php --pfad /var/www/html

  WINDOWS SERVER (Eingabeaufforderung als Administrator):

      C:\php\php.exe C:\Temp\davinci-spurensuche.php --pfad C:\inetpub\wwwroot\ihre-seite.de

  Ersetzen Sie den Pfad hinter --pfad durch Ihr Webverzeichnis. Wenn Sie
  es nicht kennen, lassen Sie --pfad weg – das Werkzeug sucht dann an den
  üblichen Stellen.

  WARUM MIT ADMINISTRATORRECHTEN: Ohne sie kann das Werkzeug geplante
  Aufgaben, Autostarts und die Protokolle nicht lesen. Es läuft auch
  ohne, meldet dann aber im Abschnitt "NICHT GEPRÜFT", was es nicht
  einsehen konnte. Das ist ehrlicher als ein unvollständiges Ergebnis,
  das vollständig aussieht.


---------------------------------------------------------------------------
  SCHRITT 4: DEN BERICHT MITSCHREIBEN
---------------------------------------------------------------------------

  Damit Sie den Bericht weitergeben oder in Ruhe lesen können:

      Linux:    sudo php /root/davinci-spurensuche.php --pfad /var/www/html --bericht /root/bericht.txt
      Windows:  C:\php\php.exe C:\Temp\davinci-spurensuche.php --bericht C:\Temp\bericht.txt

  Die Datei bericht.txt können Sie mit jedem Texteditor öffnen.

  Die Prüfung dauert je nach Größe der Installation zwischen zehn
  Sekunden und drei Minuten.


---------------------------------------------------------------------------
  SCHRITT 5: DAS ERGEBNIS LESEN
---------------------------------------------------------------------------

  Der Bericht hat drei Stufen. Lesen Sie von oben nach unten.

  [!] SOLLTE SO NICHT SEIN
      Hier fällt uns keine harmlose Erklärung ein. Das heißt nicht
      zwingend, dass Sie angegriffen wurden – aber es gehört heute
      angesehen, nicht nächste Woche.

  [?] BITTE ANSEHEN
      Kann harmlos sein und ist es meistens auch. Baukästen und
      Erweiterungen erzeugen solche Muster regelmäßig. Durchgehen,
      nicht erschrecken.

  [i] INFORMATION
      Kein Verdacht. Steht im Bericht, damit Sie den Zustand kennen –
      zum Beispiel, wie weit Ihre Protokolle zurückreichen.

  NICHT GEPRÜFT
      Punkte, an die das Werkzeug nicht herankam. Die sind weder in
      Ordnung noch auffällig, sondern offen. Diesen Abschnitt bitte
      nicht überspringen.


---------------------------------------------------------------------------
  WICHTIG: WAS SIE JETZT NICHT TUN SOLLTEN
---------------------------------------------------------------------------

  LÖSCHEN SIE NICHTS.

  Das ist der häufigste und teuerste Fehler nach einem Fund. Der Grund:

  Nach jedem Vorfall lautet die erste Frage "seit wann?". Erst die
  Antwort darauf sagt Ihnen, welche Datensicherung noch sauber ist. Diese
  Antwort steckt in den Zeitstempeln der gefundenen Dateien und in den
  Zugriffsprotokollen. Wer zuerst aufräumt, löscht genau die Angaben, die
  er danach braucht – und muss im Zweifel auf eine Sicherung zurück, die
  Monate alt ist.

  Ebenso wenig hilft es, nur die gefundene Datei zu entfernen. Ist die
  Lücke offen, ist sie am nächsten Tag wieder da. Dann allerdings ohne
  die Spur, an der man den Zeitraum hätte ablesen können.

  Die richtige Reihenfolge:

      1. Bericht sichern (die Datei aus Schritt 4)
      2. Zugriffsprotokolle wegkopieren, bevor sie rotieren
      3. Eine Sicherung des aktuellen Zustands anlegen – auch des
         befallenen. Man braucht sie später.
      4. Erst danach entscheiden, was entfernt wird


---------------------------------------------------------------------------
  HÄUFIGE FRAGEN
---------------------------------------------------------------------------

  Kann das Werkzeug meinen Server beschädigen?
      Nein. Es öffnet Dateien ausschließlich zum Lesen. Die einzige
      Datei, die es schreibt, ist der Bericht – und nur, wenn Sie
      --bericht angeben. Sie können den Quelltext vorher lesen; er ist
      kommentiert und nicht verschleiert.

  Verlangsamt es den Server?
      Während des Laufs wird das Dateisystem gelesen, das erzeugt Last.
      Bei sehr großen Installationen empfiehlt sich eine ruhige Stunde.

  Warum findet es bei mir 20 gelbe Treffer?
      Weil WordPress, TYPO3 und ihre Erweiterungen Techniken verwenden,
      die auch in Schadcode vorkommen. Deshalb sind sie gelb und nicht
      rot. Ein Werkzeug, das jedes base64 rot färbt, ist unbrauchbar.

  Es meldet "abgewehrte Zugriffsversuche". Wurde ich angegriffen?
      Versucht ja, erfolgreich nein. Jeder öffentlich erreichbare Server
      wird rund um die Uhr nach Hintertüren abgesucht. Abgewehrt heißt:
      Es gab nichts zu finden. Das Werkzeug zählt diese Versuche nur,
      damit Sie das Rauschen einordnen können.

  Läuft es auch bei geteiltem Webspace ohne SSH?
      Nur eingeschränkt. Ohne Kommandozeile fehlt der Zugang. Viele
      Anbieter stellen einen SSH-Zugang auf Anfrage bereit.

  Was ist, wenn gar nichts gefunden wird?
      Dann wurden die gesuchten Spuren nicht gefunden. Das ist eine gute
      Nachricht und keine Garantie. Wer genug Rechte hat, um sich
      einzunisten, hat auch genug, um ein Werkzeug zu täuschen, das auf
      demselben System läuft. Sicherheit gibt nur eine Prüfung von außen
      oder an einem abgezogenen Abbild.


---------------------------------------------------------------------------
  WENN SIE EINEN ROTEN BEFUND HABEN
---------------------------------------------------------------------------

  Schicken Sie uns den Bericht. Wir sehen ihn uns an und sagen Ihnen,
  was er bedeutet – auch dann, wenn die Antwort lautet, dass nichts
  passiert ist.

      post@davinci-rechenzentrum.de
      +49 621 877 55 990

      https://davinci-rechenzentrum.de/php-spurensuche

  DAVINCI Rechenzentrum GmbH, Mannheim

===========================================================================
  Frei verwendbar, auch gewerblich. Ohne Gewähr.
===========================================================================
