Web-Shells - Ein Überblick

Web-Shells

Ein Überblick

Ralph Meier
von Ralph Meier
am 07. Januar 2021
Lesezeit: 7 Minuten

Keypoints

So gehen Sie mit Web-Shells um

  • Shells sind bösartige Skripte für den Fernzugriff per Kommandozeile
  • Angreifer interagieren über den Browser mit ihren Web-Shells
  • Die Web-Shell muss in Sachen Grösse und Technologie auf den Zielhost passen
  • Um den Zugriff von Drittpersonen zu vermeiden, sollten Web-Shells über eine Authentifizierung verfügen

Schon als kleiner Junge war ich fasziniert von Muscheln jeglicher Art. Ich konnte Stunden damit verbringen, am Strand nach der schönsten Muschel zu suchen. Dass mich dies auch später als Erwachsener wieder packt, auch wenn in einer etwas anderen Art, hätte ich nicht gedacht. Aber nun sitze ich hier und halte Ausschau nach der passenden Shell für mein aktuelles Ziel.

Eine Command-Shell ist ein bösartiges Skript, welches einem Angreifer ein Fernzugriff in Form einer Kommandozeile auf das Zielsystem ermöglicht. Eine Shell ist aber nicht für den ersten Angriffsschritt geeignet, sondern kommt erst zum Einsatz, wenn eine Webanwendung/ein Server bereits kompromittiert wurde. Nachdem der Angreifer also Zugriff auf die Webanwendung/den Server hat, sei dies unter anderem durch eine SQL Injection, eine Remote File Inclusion, eine Social Engineering Attacke oder andere Angriffstechniken, lädt er eine passende Shell hoch, um sich langfristigen Zugang zu ermöglichen. Eine Web-Shell ist eine spezielle Art einer Shell, welche den Browser verwendet, um mit der Shell interagieren zu können. Solange eine Web-Shell unerkannt auf dem Server bleibt, kann sich der Angreifer immer wieder auf das System verbinden. Neben den Web-Shells, gibt es noch weitere Arten von Shells.

Überblick Web-Shells

Überblick Web-Shells

Eine Web-Shell ist wie auch eine Bind-Shell für Drittpersonen zugänglich, es sei denn sie wird durch eine Authentifizierung in Form eines Passworts, einem speziellem HTTP-Header oder weiteren Parametern davor geschützt.

Wie findet man eine passende Web-Shell?

Technologisch muss die Web-Shell auf den gewünschten Host passen. Die Art des Webservers und die dazu passenden Technologien müssen in der Reconaissance-Phase ermittelt werden. Sehr beliebt und dementsprechend häufig werden in PHP geschriebene Web-Shells eingesetzt, da PHP selbst weit verbreitet ist und weil die gängigen Content Management Systeme ebenfalls in PHP geschrieben sind.

Weitere Limitierungen bestehen in der Grösse der Shell, da es teilweise nicht möglich ist, eine Web-Shell mit vollumfänglicher Funktionalität hochzuladen. Dann sollte man eher auf eine minimale Shell zurückgreifen und in einem nächsten Schritt eine umfangreichere Shell nachladen.

Einige Beispiele

Erfahrungen sammeln

Um erste praktische Erfahrungen mit Shells zu sammeln, empfehlen wir das Metasploit Framework. Rapid7 bietet dafür auch eine passende Umgebung an, mit der man seine Fähigkeiten diesbezüglich verbessern kann: Die Metasploitable VM ist als Download verfügbar.

Andere aktuelle Pentesting Frameworks

Das Metasploit Framework gibt es bereits seit einigen Jahren, dementsprechend haben auch die Hersteller von Antivirensoftware reagiert. Sie erkennen Angriffe mit Metasploit sehr oft. Hier einige andere aktuelle Frameworks, die zu kennen es sich lohnt:

Fazit

Eine Web-Shell ist ein sehr nützliches Tool in der Post Exploitation Phase, um dauerhaften Zugriff auf einen Host zu bewahren, ohne jedes Mal wieder einen Exploit anwenden zu müssen. Um den Zugriff durch Drittpersonen vorzubeugen, empfiehlt es sich eine der beschriebenen Authentifizierungs-methoden zu verwenden.

Über den Autor

Ralph Meier

Ralph Meier hat eine Lehre als Applikationsentwickler, Fokus Webentwicklung mit Java, bei einer Schweizer Grossbank absolviert und danach einen Bachelor of Science ZFH in Informatik an der ZHAW School of Engineering abgeschlossen. Er fokussiert sich auf die sicherheitstechnische Untersuchung von Webapplikationen.

Links

Sie wollen die Sicherheit Ihrer Firewall prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Der sichere Einsatz von IoT-Protokollen

Der sichere Einsatz von IoT-Protokollen

Ralph Meier

Programmiersprache Go

Programmiersprache Go

Ralph Meier

Online-Tracking

Online-Tracking

Ralph Meier

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv