Was ist eine Reverse-Shell?

Mar 16 2023
Inhaltsverzeichnis Zuerst müssen wir wissen, was eine Shell ist, bevor wir mit der umgekehrten Shell fortfahren. Ist das ein Panzer wie auf dem Rücken einer Schildkröte? Das ist nicht der Fall, aber sie wird Shell genannt, weil sie die äußerste Schicht um das Betriebssystem herum darstellt.
Bild von pixabay.com

Inhaltsverzeichnis

  • Was ist eine Muschel?
  • Was ist eine Reverse-Shell?
  • Warum brauchen Angreifer/Hacker eine Reverse Shell?
  • Unterschied zwischen Angriffen über WAN und LAN
  • Verhinderung einer umgekehrten Shell

Zuerst müssen wir wissen, was eine Shell ist, bevor wir mit der umgekehrten Shell fortfahren. Ist das ein Panzer wie auf dem Rücken einer Schildkröte? Das ist nicht der Fall, aber sie wird Shell genannt, weil sie die äußerste Schicht um das Betriebssystem herum darstellt. Was macht eine Shell? Eine Shell ist ein Programm, das unsere Befehle an das Betriebssystem übersetzt. Das ist eine Schnittstelle zwischen dem Betriebssystem und einem Benutzer. Es nimmt Eingaben, bei denen es sich um Befehle oder Schlüsselwörter über die Tastatur handelt, entgegen und gibt sie an das Betriebssystem weiter. Über das Terminal/CLI (Befehlszeilenschnittstelle) können Sie Befehle eingeben und mit der Shell interagieren. Es gibt tiefergehende Überlegungen zur Shell, aber ich werde sie nicht darlegen, da sich dieser Blog hauptsächlich auf die Reverse-Shell konzentriert.

Was ist eine Reverse-Shell?

Ich wette, Sie haben in Tutorial-Videos und CTFs schon oft von diesem Begriff gehört, wissen aber noch nicht, was er bedeutet. Dann sind Sie hier genau richtig. Die Bedeutung einer Reverse Shell liegt im Namen. Es bewirkt das Gegenteil von dem, was eine normale Remote-Verbindung bewirkt: Der Benutzer, der als Client fungiert, verbindet sich mit dem Server, der meist ein Ziel von Angreifern ist. Der Server wartet auf Verbindungen von Benutzern an bestimmten Ports. Beispielsweise überwacht ein Webserver Port 443 auf eingehende Verbindungen, damit er den vom Benutzer gewünschten Dienst bereitstellen kann, nämlich eine Website. Wie macht Reverse Shell das Gegenteil? In Reverse-Shell-Fällen initiiert der Server eine Remote-Verbindung und der Benutzer, der ein Angreifer ist, lauscht auf dem Port, zu dem der Server eine Verbindung herstellen möchte. Beispielsweise wird eine Reverse-Shell-Nutzlast in den Webserver eingeschleust. In dieser Nutzlast Möglicherweise sehen Sie die IP-Adresse und Portnummer Ihres Laptops oder PCs, mit der der Server eine Verbindung herstellen soll. Nehmen wir an, 192.168.1.1 und der Port ist 4444 in der Nutzlast. Bevor Sie überhaupt die Nutzlast einschleusen, müssen Sie diesen Port mithilfe von Tools wie Netcat abhören. Nachdem Sie es injiziert haben, erhalten Sie die Verbindung vom Server zu Ihrem Gerät.

Warum brauchen Angreifer eine Reverse Shell?

Warum brauchen Angreifer sie? Im Allgemeinen liegt es an der Firewall. Die Firewall begrenzt den eingehenden Datenverkehr, den der Angreifer an den Server sendet, nicht jedoch den ausgehenden Datenverkehr, den der Server an Benutzer/Angreifer sendet. Angegriffene Server erlauben in der Regel nur Verbindungen über bestimmte Ports. Beispielsweise akzeptiert ein dedizierter Webserver nur Verbindungen auf den Ports 80 und 443. Das bedeutet, dass es keine Möglichkeit gibt, einen Shell-Listener auf dem angegriffenen Server einzurichten.

Andererseits schränken Firewalls ausgehende Verbindungen in der Regel überhaupt nicht ein. Daher kann ein Angreifer die umgekehrte Verbindung herstellen, indem er den Listener einrichtet. In diesem Fall verhält sich der Server wie ein Benutzer und sendet dann den Datenverkehr an den Angreifer. Der Angreifer benötigt lediglich einen Computer mit der IP-Adresse und ein Tool wie Netcat, um den Listener zu erstellen und den Shell-Zugriff darauf zu binden.

Bild von pixabay.com

Unterschied zwischen Angriffen über WAN und LAN

Das Einrichten der Reverse-Shell über das LAN ist ziemlich einfach. Sie müssen lediglich Ihre private IP-Adresse und die private IP-Adresse des Opfers kennen. Nehmen wir an, Sie befinden sich im Netzwerk 192.168.1.0 und Ihre IP-Adresse lautet 192.168.1.10. Die IP-Adresse des Opfers lautet 192.168.1.20. Jetzt stellen Sie die Verbindung her, indem Sie eine Nutzlast mit Ihrer IP-Adresse und dem Port einschleusen, mit dem sich das Opfer verbinden soll.

Wie wäre es mit WAN? Hier wird es etwas kompliziert. Was wir tun müssen, ist unsere private IP-Adresse durch eine öffentliche IP-Adresse zu ersetzen, die Sie bei Google finden können, indem Sie wie folgt suchen: „Was ist meine öffentliche IP-Adresse?“. Sind wir hier fertig? Nicht wirklich, aber wir sind einen Schritt näher gekommen. Nehmen wir an, Sie haben bereits eine Möglichkeit oder finden eine Schwachstelle, um eine Nutzlast der Reverse-Shell in den Server einzuschleusen. Der Opfer-/angegriffene Server wird versuchen, eine Verbindung zu Ihrer öffentlichen IP-Adresse herzustellen, da Sie Ihre öffentliche IP in Ihre Nutzlast aufgenommen haben. Die vom Opfer gesendete Anfrage wird vor dem Listener auf Ihrem Computer an Ihren Router gesendet. Ihr Router muss wissen, wohin er diese Anfrage an Geräte weiterleiten soll, die mit dem Router verbunden sind. Dies können Sie tun, indem Sie die Portweiterleitung auf Ihrem Router aktivieren.

Dieser Angriff ist weniger arbeitsintensiv, wenn Ihre öffentliche IP-Adresse statisch ist, was weder notwendig noch üblich ist. Die von Ihrem ISP bereitgestellte öffentliche IP-Adresse für Ihren Router kann statisch sein oder auch nicht. Dynamische IP-Adressen haben wir normalerweise mit öffentlichen IP-Adressen gemeinsam. Dynamische IP bedeutet, dass sich Ihre öffentliche IP ändert, wenn Sie Ihre Verbindung zum Internet wiederherstellen (Neustart des Routers usw.). In diesem Fall ist Ihre bisherige IP, die in die Payload geschrieben wurde, nutzlos. Aber es gibt noch kreativere Wege und andere Möglichkeiten, es anders als diese Methode zu machen.

Hier ist ein Reverse-Shell- Spickzettel für euch alle.

Wie kann man es verhindern?

Der beste Weg, Reverse-Shells zu vermeiden, besteht darin, sich vor Angriffen zu schützen, die es Betrügern überhaupt erst ermöglichen, auf Shells zuzugreifen. Sie können die meisten Tools deaktivieren, die das Erstellen einer Reverse-Shell ermöglichen. Wie Sie dem Spickzettel oben entnehmen können, können Reverse-Shells mit verschiedenen Tools und Sprachen erstellt werden. Daher können Sie es dem Angreifer erschweren, aber nicht unmöglich machen.

Referenz

Wikipedia-Mitwirkende. (2022, 18. Oktober). Shellcode . Wikipedia.https://en.wikipedia.org/wiki/Shellcode

Nidecki. (2019, 26. August). Was ist eine Reverse Shell ? Acunetix.https://www.acunetix.com/blog/web-security-zone/what-is-reverse-shell/

GeeksforGeeks. (2022, 27. September). Unterschied zwischen Bind Shell und Reverse Shell .https://www.geeksforgeeks.org/difference-between-bind-shell-and-reverse-shell/