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
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
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
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
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.
Fundstellen
- Wiz Research – PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet – Wiz
- BSI – PHP: Kritische Schwachstellen bedrohen Webanwendungen weltweit (Cybersicherheitswarnung 2026-297981-1032) – BSI
- BSI – IT-Grundschutz-Baustein OPS.1.1.5 Protokollierung – BSI
Weiter: PHP-Sicherheitscheck von außen · PHP2Shell-Angriff erkennen: diese Spuren bleiben zurück · Webshell gefunden – und jetzt? · Merken Sie es überhaupt, wenn Ihre Seite kompromittiert wird? · Soforthilfe bei einem Vorfall
