Zum Inhalt springen
0621 877 55 990
DAVINCI Rechenzentrum

Kostenlos, ohne Anmeldung

Prüfen Sie Ihren Server selbst

Ein einzelnes PHP-Skript für Linux und Windows Server. Es sucht nach den Spuren, die nach einem erfolgreichen Angriff zurückbleiben: Hintertüren im Webverzeichnis, nachgeladene Startbefehle, veränderte Konfigurationen. Es liest nur, es verändert nichts und es sendet nichts.

Version 1.0 · 22. Oktober 2026

Herunterladen

Auch einzeln: nur die Anleitung.

Prüfsummen (SHA-256)

ZIP  a1c6d59c526f4c367dfdbbeacbdae198791f9727829bef2ce0428ed6e075040d
PHP  553b5973021f854e19e92657d0df298967ae6031600e75a3321686bf74becbcd

Damit lässt sich prüfen, ob eine weitergereichte Datei noch unsere ist.

Bitte vorher lesen

  • Es garantiert keine Sicherheit. Geprüft wird auf die gängigsten Varianten solcher Angriffe. Findet das Werkzeug nichts, heißt das: Diese Muster liegen nicht vor. Es heißt nicht, dass Ihr Server sauber ist.
  • Es läuft auf dem System, das es prüft. Wer dort genug Rechte hat, um sich einzunisten, hat auch genug, um ein Werkzeug zu täuschen. Belastbar ist nur eine Prüfung von außen oder an einem abgezogenen Abbild.
  • Datenbank und Anwendung bleiben außen vor. Neu angelegte Redakteurskonten, manipulierte Inhalte und Einträge in Erweiterungstabellen sieht es nicht.
  • Löschen Sie nichts, bevor der Zeitraum geklärt ist. Die Frage, seit wann etwas läuft, entscheidet darüber, welche Sicherung noch brauchbar ist. Wer zuerst aufräumt, kann sie nicht mehr beantworten.
  • Ohne Gewähr. Wir stellen das Werkzeug kostenlos und frei verwendbar zur Verfügung, auch gewerblich. Eine Haftung für Vollständigkeit oder Richtigkeit der Befunde übernehmen wir nicht.

So wird es benutzt

Sie brauchen keine Programmierkenntnisse, nur Zugang zum Server.

  1. 1

    Prüfen, ob PHP auf der Kommandozeile läuft

    Es muss eine Versionsnummer erscheinen. Kommt stattdessen eine Fehlermeldung, suchen Sie die Datei – unter Windows liegt sie oft unter C:\php\php.exe und muss dann mit vollem Pfad angegeben werden.

    php -v
  2. 2

    Die Datei ablegen, aber nicht ins Webverzeichnis

    Das Werkzeug weigert sich zwar, über einen Browser zu starten. Trotzdem gehört eine solche Datei nicht dorthin, wo das Internet sie erreicht.

    Linux:    /root/davinci-spurensuche.php
    Windows:  C:\Temp\davinci-spurensuche.php
  3. 3

    Starten und den Bericht mitschreiben

    Den Pfad hinter --pfad durch Ihr Webverzeichnis ersetzen. Kennen Sie es nicht, lassen Sie den Teil weg – dann wird an den üblichen Stellen gesucht. Die Prüfung dauert zehn Sekunden bis drei Minuten.

    Linux:
      sudo php /root/davinci-spurensuche.php \
        --pfad /var/www/html --bericht /root/bericht.txt
    
    Windows (Eingabeaufforderung als Administrator):
      C:\php\php.exe C:\Temp\davinci-spurensuche.php ^
        --pfad C:\inetpub\wwwroot\ihre-seite.de --bericht C:\Temp\bericht.txt
  4. 4

    Den Bericht lesen

    Drei Stufen, von oben nach unten: [!] sollte so nicht sein – dafür fällt uns keine harmlose Erklärung ein. [?] bitte ansehen – meistens harmlos, gehört trotzdem durchgegangen. [i] Information – kein Verdacht. Den Abschnitt NICHT GEPRÜFT am Ende bitte nicht überspringen: Diese Punkte sind weder in Ordnung noch auffällig, sondern offen.

  • 14Jahre

    unternehmerisch im IT-Betrieb, GmbH seit 2020

  • 1.000+Arbeitsplätze

    in laufender Betreuung

  • 99,9 %Verfügbarkeit

    der Cloud-Services, je Kalendermonat

  • 7,4 Min.Ø Reaktionszeit

    laut Ticketsystem (12 Monate, alle Tickets); vertraglich höchstens 15 Min., rund um die Uhr

  • ISO 27001Partner-Rechenzentren

    in Deutschland – zertifiziert ist der Betreiber

Warum ein Skript und keine EXE

Weil Sie es vorher lesen können

Wir bitten Sie, auf einem möglicherweise betroffenen Server ein fremdes Programm mit hohen Rechten auszuführen. Das ist genau das, wovor wir sonst warnen. Deshalb bekommen Sie kein fertiges Programm, sondern Quelltext: kommentiert, unverschleiert, in einer Datei. Sie können ihn lesen, und Ihr Dienstleister kann es auch.

Suchen Sie darin nach curl, fsockopen oder file_get_contents mit einer Internetadresse. Es gibt keine. Das Werkzeug baut keine einzige Verbindung nach außen auf – der Bericht bleibt auf Ihrem Server, bis Sie selbst entscheiden, ihn jemandem zu zeigen.

Und es räumt bewusst nicht auf. Nach einem Vorfall entscheidet eine einzige Frage über alles Weitere: seit wann? Die Antwort steckt in den Zeitstempeln der gefundenen Dateien und in den Protokollen. Wer zuerst löscht, vernichtet sie – und muss im Zweifel auf eine Sicherung zurück, die Monate alt ist.

Ihr nächster Schritt

Lieber jemanden draufschauen lassen?

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

Die Prüfpunkte

Was geprüft wird

PHP-Fassung
Vergleicht die laufende Unterversion mit der, in der PHP2Shell geschlossen ist – 8.1.38, 8.2.35, 8.3.36, 8.4.17.
PHP-Einstellungen
auto_prepend_file und auto_append_file laden bei jedem Aufruf eine Datei, ohne dass im Webverzeichnis etwas auffällt. Dazu allow_url_include und leeres disable_functions.
Ausführbarer Code im Webverzeichnis
Sucht die Kombination aus einer Ausführungsfunktion und einer Benutzereingabe im selben Ausdruck – das Kennzeichen jeder Webshell.
PHP an Orten für reine Daten
Eine PHP-Datei in wp-content/uploads, typo3temp oder var/cache gehört dort nicht hin. Einer der verlässlichsten Hinweise überhaupt.
Doppelte Dateiendungen
bild.jpg.php und shell.php.jpg dienen dazu, Upload-Prüfungen zu umgehen.
.htaccess und .user.ini
Einträge, die harmlose Endungen ausführbar machen oder bei jedem Aufruf fremden Code laden.
Geplante Aufgaben und Autostarts
Linux: crontab, /etc/cron.d, systemd-Dienste, rc.local, ld.so.preload. Windows: Aufgabenplanung und Autostart-Schlüssel der Registry.
Zugänge
Hinterlegte SSH-Schlüssel und Konten mit Anmeldemöglichkeit, unter Windows die Mitglieder der Administratorgruppe.
Lauschende Dienste
Anschlüsse jenseits der erwarteten, auf denen etwas auf Verbindungen wartet.
Zugriffsprotokolle
Erfolgreiche Aufrufe typischer Hintertür-Namen und POST-Anfragen an Bilddateien. Abgewehrte Versuche werden getrennt gezählt und nicht als Befund gewertet.
Unglaubwürdige Zeitstempel
Änderungszeiten, die in der Zukunft liegen – ein Zeichen für nachträglich gesetzte Stempel.
Rückreichweite der Protokolle
Sagt Ihnen, wie weit Sie überhaupt zurückschauen können. Unter 30 Tagen wird die Aufarbeitung eines Vorfalls schwierig.

Geprüft am 2026-10-22.

Häufige Fragen

Garantiert das Werkzeug, dass mein Server sauber ist?

Nein, und das sagt es auch selbst in jedem Bericht. Geprüft wird auf bekannte Muster. Wer sich Mühe gibt, hinterlässt keine. Dazu kommt: Das Skript läuft auf dem System, das es prüfen soll – wer dort genug Rechte hat, kann ihm falsche Antworten geben. Ein leerer Befund heißt, dass die gesuchten Spuren nicht gefunden wurden. Nicht mehr.

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 das ausdrücklich verlangen. Es löscht nichts, verschiebt nichts und repariert nichts.

Werden meine Daten an DAVINCI übertragen?

Nein. Das Skript baut keine Netzwerkverbindung auf. Es gibt keine Statistik, keinen Rückkanal und keine Registrierung. Sie können das im Quelltext nachsehen, bevor Sie es starten.

Welche PHP-Version brauche ich?

PHP 7.4 oder neuer, auf der Kommandozeile. Prüfen lässt sich das mit php -v. Unter Windows liegt PHP häufig unter C:\php\php.exe.

Brauche ich Administratorrechte?

Nicht zwingend, aber ohne sie bleiben geplante Aufgaben, Autostarts und Protokolle unlesbar. Das Werkzeug läuft trotzdem und listet im Abschnitt NICHT GEPRÜFT auf, woran es nicht herankam. Ein unvollständiges Ergebnis, das vollständig aussieht, wäre schlechter als gar keines.

Es meldet abgewehrte Zugriffsversuche. Bin ich angegriffen worden?

Versucht ja, erfolgreich nein. Jeder öffentlich erreichbare Server wird rund um die Uhr nach Hintertüren abgesucht. Abgewehrt bedeutet, dass es nichts zu finden gab. Das Werkzeug zählt diese Versuche getrennt und wertet sie ausdrücklich nicht als Befund.

Warum bekomme ich gelbe Treffer, obwohl nichts passiert ist?

Weil WordPress, TYPO3 und ihre Erweiterungen Techniken verwenden, die auch in Schadcode vorkommen. Genau deshalb sind diese Treffer gelb und nicht rot. Ein Werkzeug, das jedes base64 rot färbt, wird nach dem zweiten Lauf weggeklickt.

Läuft es auch bei geteiltem Webspace?

Nur eingeschränkt, weil dort meist der Kommandozeilenzugang fehlt. Viele Anbieter richten SSH auf Anfrage ein. Ohne Zugang bleibt die Prüfung von außen über unseren PHP-Sicherheitscheck.

Was mache ich bei einem roten Befund?

Nichts löschen. Zuerst den Bericht sichern, die Zugriffsprotokolle wegkopieren, bevor sie rotieren, und eine Sicherung des aktuellen Zustands anlegen – auch des befallenen, die braucht man später. Erst danach entscheiden, was entfernt wird. Schicken Sie uns den Bericht, wenn Sie eine Einordnung möchten.