Web Shells: How Attackers Use Them and How to Detect Them
Inhaltsübersicht
Exploits targeting internet-facing web applications were the leading initial access vector for the sixth consecutive year in 2025, according to Mandiant’s M-Trends 2026 report. Web shells are central to how those exploits are sustained — threat groups deployed them in 35% of incidents in Q4 2024, more than triple the rate of the previous quarter. Once planted on a compromised web server, a web shell gives attackers long-term persistence, the ability to move laterally, and direct access to sensitive data — all without triggering the alerts that conventional malware would generate.
In 2025, the median time between initial compromise and attacker hand-off collapsed to 22 seconds. Web shells are a key enabler of that speed — they allow threat actors to maintain silent access while a second group takes over for ransomware deployment or data exfiltration. Let’s dissect a classic PHP web shell to show how it works in practice, and why these scripts remain so effective at turning a single unpatched vulnerability into a lasting breach.
Warum Web-Shells wichtig sind
Eine Web-Shell ist ein kleines Skript (meist in PHP, ASP oder JSP geschrieben), das Angreifer in eine anfällige Webanwendung hochladen.
Betrachten Sie eine Web-Shell als ein verstecktes Bedienfeld. Nach der Installation ermöglicht sie Hackern, Befehle auszuführen, Dateien zu durchsuchen und den Server über ihren Browser zu übernehmen. Was als einzelner Fehler in einer Webanwendung beginnt, kann schnell zu einer dauerhaften Hintertür werden.
Nach Angaben von CISA, Web-Shells können auf verschiedenen Plattformen eingesetzt werden, darunter Linux, Microsoft Windows, macOS und Netzwerkplattformen.
Angreifer pflanzen Web-Shell-Skripte normalerweise durch:
- Remote Code Ausführungsfehler in öffentlichen Webanwendungen
- Schlecht gesicherte Dateiupload-Formulare
- Remote- oder Local File Inclusion (RFI/LFI) Schwachstellen
- Veraltete CMS-Plugins oder Themes, wie zum Beispiel bei WordPress
Im Laufe der Jahre sind einige Shells berühmt-berüchtigt geworden:
- C99 Web-ShellEine funktionsreiche PHP-Shell mit Werkzeugen für Dateiverwaltung, Befehlsausführung und Datenbanken
- China Chopper Webshell Eine winzige, aber mächtige Web-Shell, die häufig für heimliches Persistenz genutzt wird
- R57 und WSO Web-Shells Ältere, aber noch aktive Web-Shells mit grundlegenden Datei- und Befehlsfunktionen
- B374K Web-Shell: Eine PHP-Webshell, die Prozesse anzeigen und Befehle ausführen kann
Werfen wir einen Blick auf einige dieser Web-Shells in Aktion.

Fallstudien: Echte Web-Shell-Vorfälle
Bevor wir ihre Bestandteile aufschlüsseln, werfen wir einen Blick auf einige reale Beispiele für den Schaden, den Web-Shells anrichten können. Sie waren verantwortlich für 35% Cyberangriffsfälle im 4. Quartal 2024, was sie zu einem wichtigen bösartigen Skript macht, auf das man achten muss.
- April 2025: Nach Angaben von Die Hacker-Nachrichten, kritischer Fehler, der es Angreifern ermöglicht, JSP-Web-Shells hochzuladen und dann Tools wie Brute Ratel zum Eskalieren und Stehlen von Daten zu verwenden. Scans ergaben Hunderte von verwundbaren Servern, die online exponiert waren.
- Juli 2023: CISA meldete, dass Bedrohungsakteure die Citrix NetScaler/ADC-Schwachstelle (CVE-2023-3519) ausgenutzt haben, um Web-Shells (oft JSP) abzulegen, eine Remote-Befehlsausführung und Persistenz zu erlangen und sich seitwärts zu bewegen.
- Juni 2022: MITRE ATT&CK dokumentiert, wie während des Angriffs auf die ukrainische Stromversorgung eine Web-Shell eingeschleust wurde, ausgeführt von einer Bedrohungsgruppe mit russischen Verbindungen.
Kurz gesagt, Web-Shells können jede anfällige Anwendung schnell in einen kompromittierten Webserver verwandeln, mit verheerenden Folgen.
C99: Eine Webshell-Analyse
C99 ist ein klassisches PHP-Webshell-Beispiel, das viele Funktionen in ein einziges Skript packt, darunter:
- Dateimanager
- Hochladen/Herunterladen
- Befehlsausführung
- Datenbankhelfer
- Selbstlöschungsoption
C99 demonstriert klar den vollständigen Angreifer-Workflow: Ein Angreifer lädt eine winzige PHP-Datei über eine anfällige Upload-Funktion oder RCE hoch und nutzt dann dasselbe Skript, um das Webroot zu durchsuchen, Betriebssystembefehle auszuführen, Anmeldedaten abrufen und weitere Werkzeuge auf der Bühne.
Lassen Sie uns genauer aufsehen, wie die C99 Webshell aussehen kann.

Abbildung 2: C99-Webshell-Codeinformationen in GitHub. (Quelle: GitHub)
1. Dateisystemnavigation
- Was es tut: Dateisystemnavigation ermöglicht es einem Angreifer, Ordner aufzulisten, Dateien zu öffnen und deren Inhalt zu lesen. Er könnte Funktionen wie
scandir()oderopendir()um zu sehen, was auf dem Server ist,file_get_contents()zum Lesen von Dateien, undfile_put_contents()Dateien löschen oder aktualisieren. - Warum es wichtig ist: So finden Hacker Konfigurationsdateien, API-Schlüssel, Backups und andere sensible Daten und wo sie zusätzliche Payloads platzieren.
- Worauf ist zu achten: Anfragen, die wiederholt denselben PHP-Pfad treffen und Verzeichnislisten zurückgeben. Überprüfen Sie auch auf neue oder kürzlich geänderte Dateien im Webroot (ungewöhnliche Zeitstempel) und plötzliche Lesezugriffe auf Konfigurationsdateien oder große Downloads, die vom Webserver initiiert werden.
Der untenstehende Ausschnitt ist ein vereinfachtes Beispiel, um das Verhalten zu veranschaulichen, obwohl die genauen Implementierungen und Funktionsnamen je nach Variante variieren.

Abbildung 3: Beispiel für Dateisystemnavigation in der PHP-Programmiersprache.
2. Datei hochladen/ herunterladen
- Was es tut: C99-style Shells enthalten oft ein Datei-Upload-Formular, damit ein Angreifer zusätzliche Werkzeuge (Malware, Scanner oder große Payloads) auf dem Server ablegen kann. Sie erlauben Angreifern auch, Dateien vom Server herunterzuladen. Gängige Upload-Mechanismen sind
move_uploaded_file()(Standard-Browser-Datei-Uploads), Handler, die rohe POST-Inhalte akzeptieren, oder POST-Felder mit Base64-kodierten Dateien. - Warum es wichtig ist: Ein Angreifer nutzt Uploads, um weiter zu inszenieren Malware oder App-Dateien ersetzen. Downloads ermöglichen es ihnen, Konfigurationsdateien oder Datenbank-Dumps über den Webserver-Prozess aus Ihrer Umgebung herunterzuladen.
- Worauf ist zu achten: Achten Sie auf große oder ungewöhnliche POST-Anfragen an denselben PHP-Endpunkt (insbesondere solche mit langen Base64-Strings), gefolgt von neuen oder seltsam benannten Dateien, die in webzugänglichen Ordnern erscheinen, oder Spitzen im ausgehenden Datenverkehr.

3. Befehlsausführung/Fernzugriff
- Was es tut: C99 gibt einem Angreifer ein winziges Web-Terminal. Sie können einen Befehl über die Web-Oberfläche oder eine POST-Anfrage senden und die Befehlsausgabe im Browser zurückerhalten.
- Warum es wichtig ist: So starten Angreifer Reverse-Shells, führen Skripte zur Rechteerweiterung aus oder starten andere Tools vom Webserver aus.
- Worauf ist zu achten: Überwachen Sie, ob Web-Prozesse Shell-Befehle ausführen oder unerwartete ausgehende Verbindungen aufbauen, unmittelbar nach Anfragen an einen einzelnen PHP-Endpunkt.

4. Datenbankverbindungen und Datenextraktion
- Was es tut: C99-Style-Shells enthalten oft schnelle Werkzeuge, um Konfigurationsdateien (in denen Anwendungen Datenbankanmeldeinformationen speichern) zu lesen und mit diesen Anmeldeinformationen SQL-Abfragen auszuführen. Dies ermöglicht es einem Angreifer, Benutzertabellen auszulesen, API-Schlüssel zu stehlen oder neue Einträge zu schreiben, um die Persistenz zu erhöhen.
- Warum es wichtig ist: Mit DB-Zugriff kann ein Angreifer Kundendaten exfiltrieren, Konten übernehmen oder verwende die gleichen Anmeldedaten um auf andere Dienste zuzugreifen, was die Auswirkungen eines Verstoßes vervielfacht.
- Worauf ist zu achten: Achten Sie auf unerwartete Lesevorgänge von Konfigurationsdateien sowie auf ungewöhnliche Datenbankverbindungen/Abfragen, die vom Webserver-Prozess ausgehen.

5. Verschleierung und Anti-Forensik
C99-Varianten verstecken manchmal Zeichenfolgen oder Logik unter Verwendung von base64_decode(), gzinflate() oder auswerten() Wrapper und können Payloads komprimieren oder aufteilen, um eine einfache Signaturerkennung zu vermeiden. Sie können sich auch nach Gebrauch selbst löschen. Diese Tricks lassen Signatur-Scanner und schnelle manuelle Überprüfungen den Implantat übersehen.
Wie Angreifer Web-Shells bereitstellen
Nachdem wir nun die Funktionsweise eines Web-Shell-Betriebssystems gesehen haben, wollen wir untersuchen, wie Hacker diese zuerst in ein kompromittiertes System einschleusen.
- Ausgenutzte Remotecodeausführung (RCE) in einer öffentlichen App: Angreifer führt Code auf Ihrem Server aus
- Unsichere Datei-Upload-Endpunkte oder falsch konfigurierte Berechtigungen, die es Angreifern ermöglichen, Dateien abzulegen
- Remote File Inclusion (RFI) oder Local File Inclusion (LFI) Ketten, die es einem Angreifer ermöglichen, den Server zum Schreiben oder Ausführen einer Remote-Datei zu zwingen
- Kompromittierte Plugins oder Themes, gestohlene Admin-Zugangsdaten, oder Phishing das Zugriff auf Admin-Panels ermöglicht (häufig bei WordPress)
Checkliste: Wie man eine Web-Shell fängt
Hier ist eine klare Checkliste, die Sie bei Suchen oder Triage verwenden können. Jeder Punkt ist eine Stelle, nach der gesucht werden kann, und was er normalerweise bedeutet.
- Neue oder seltsam benannte PHP-Dateien in Webordnern: Überprüfe auf Dateien, die vorher nicht da waren, seltsame Namen (zufällige Zeichenketten) oder Zeitstempel, die nicht mit deinem letzten Deploy übereinstimmen.
- Unerwartete ausgehende Verbindungen vom Webserver: Wiederholte, periodische Verbindungen zu unbekannten IPs können ein Signal für Command-and-Control sein.
- Webserver, die neue Prozesse spawnen oder Shell-Befehle ausführen: Wenn Ihr Webprozess plötzlich verzweigt
sh,Bash, oder andere unerwartete Binärdateien, behandeln Sie es als hohe Priorität. - Änderungen an CMS-Kern-Dateien, Plugins oder unbekannte Admin-Konten: Suchen Sie nach modifizierten Kerndateien, neuen Admin-Benutzern oder Plugin-Dateien, die nicht mit Anbieter-Hashes übereinstimmen.
- Ungewöhnliche POST-Anfragen mit langen Körpern oder base64-ähnlichen Daten: Große oder häufige POST-Anfragen an denselben PHP-Endpunkt (insbesondere mit langen kodierten Zeichenketten) deuten oft auf Uploads oder Remote-Schreibvorgänge hin.
Sie können auch von Monitoring-Tools profitieren.
Beispielsweise können Sie die Überwachung der Dateiintegrität verwenden, um neue oder geänderte Web-Root-Dateien zu erkennen, Web Application Firewall (WAF) und Webserver-Protokolle auf verdächtige POST-Anfragen zu überprüfen, EDR-Warnungen auszulösen, wenn der Webprozess Shells startet oder Binärdateien schreibt, sowie Netzwerk-IDS/IPS auf Beaconing- oder unerwartete ausgehende Verbindungen zu überwachen. Kombinieren Sie diese Datenströme, und Sie werden Implantate schneller erkennen.
CybelAngel kann diesen Prozess ergänzen. Es kann Ihre öffentlichen und internetfähigen Assets (die oft die sensibelsten Daten enthalten) verwalten und Probleme kennzeichnen, bevor sie zu einem ausgewachsenen Sicherheitsvorfall werden.

7 taktische Cybersicherheitsmaßnahmen für CISOs
Hier sind einige Korrekturen, die CISOs sollte Priorität haben, Web-Shells zuvorzukommen.
- Öffentlich zugängliche Apps und Plugins patchen: Anbieterkorrekturen schnell anwenden und Updates dort automatisieren, wo es sicher ist.
- Upload-Endpunkte härten: Dateitypen validieren, Metadaten entfernen, ausführbare Dateien ablehnen und Uploads außerhalb des Webservers speichern.
- Stimmen Sie Ihre WAF auf verdächtige POST-Anfragen ab: Blockiere oder stelle große/verschlüsselte POST-Anfragen und bekannte Web-Shell-Signaturen infrage.
- Dateintegritätsprüfungen auf dem Webroot ausführen: Hash-Inhalt regelmäßig und benachrichtige bei neuen oder geänderten PHP-Dateien.
- Ausgang von Webservern sperren: Ausgehend zulassen und unerwartete ausgehende Ports blockieren.
- Zugangsdatenhygiene verbessern Rotieren Sie Geheimnisse, erzwingen Sie MFA für Admin-Panels und benachrichtigen Sie bei neuen/privilegierten Konten.
- Nutzen Sie externe Threat-Intelligence zur Priorisierung von Behebungsmaßnahmen: Abgebildete exponierte Apps, Fokus auf Fehlerbehebungen bei Hochrisiko-Assets, mit Tools wie CybelAngel zur Automatisierung des Prozesses.
FAQs
Eine Web-Shell ist ein kleines Skript, das ein Angreifer auf einer Website platziert. Sobald es dort ist, kann der Angreifer den Server über einen Browser (Befehle ausführen, Dateien lesen, Tools hochladen oder Daten abrufen) über normale Webanfragen steuern.
Dateimanager (Dateien auflisten und lesen).
Hochlade-/Herunterladefunktion
Systembefehle ausführen (ein winziges Web-Terminal)
Einfache SQL/Abfragetools für Datenbanken
Eine Web-Oberfläche oder eine passwortgeschützte Hintertür
Verschleierungs- oder Selbstlöschungsoptionen, um Spuren zu verbergen
Sie nutzen Schwachstellen wie einen Remote-Code-Bug, ein unsicheres Datei-Upload-Formular, eine RFI/LFI-Kette oder ein kompromittiertes Plugin/Anmeldedaten. Oft findet ein Scanner die Lücke, und dann lädt ein Angreifer die Shell hoch und testet den Zugriff.
Neue oder seltsam benannte PHP-Dateien in Webordnern
Lange oder ungewöhnliche POSTs (große Bodies oder Base64-Daten)
Wiederholte ausgehende Verbindungen vom Webserver (Beaconing/C2)
Webserver führt unerwartete Prozesse oder Shell-Befehle aus
Geänderte CMS-Kern-Dateien oder unbekannte Admin-Konten
Patch web apps and plugins, lock down file uploads and store them outside the webroot, tune your WAF, run file-integrity checks and egress controls, and enforce strong credential hygiene (MFA, rotate secrets). Use external-asset mapping tools like CybelAngel to prioritise the exposed apps that matter most.
Sie verschaffen Angreifern langfristigen Zugriff, ohne dass neue Exploits benötigt werden. Mit einem kleinen Skript können sie Daten stehlen, weitere installieren Malware, und sich in deinem Netzwerk bewegen. Und sie sind oft schwer zu erkennen, bis der wirkliche Schaden angerichtet ist.
Einpacken
Web shells are not sophisticated. That’s exactly what makes them dangerous. A few hundred lines of PHP, uploaded through a single unpatched vulnerability, can give an attacker persistent access to your environment for weeks or months, long after the original flaw is fixed.
Mandiant’s 2026 data confirms the pattern: exploits remain the number one initial access vector, and internet-facing web application servers are the primary target. Web shells are the bridge between initial exploitation and everything that follows — lateral movement, credential theft, ransomware deployment.
The organisations that detect web shells early share one capability: continuous visibility into their external attack surface. They know which internet-facing applications are running, which are unpatched, and they receive alerts when unexpected files appear on web servers. CybelAngel’s attack surface management maps your internet-facing assets continuously, identifying exposed and vulnerable applications before attackers can plant a foothold.
