Warum fehlt die Option „-e“ in netcat-openbsd?

Warum fehlt die Option „-e“ in netcat-openbsd?

Warum -efehlt die Option im netcat-openbsdPaket? Es gibt ein netcat-traditionalPaket, aber viele Funktionen des OpenBSD-Pakets fehlen darin. Ich verwende Linux Mint 16.

Weiß jemand, warum das fehlt? Dadurch wird eine ziemlich wichtige Funktion von Netcat entfernt.

Antwort1

Weil es verschiedene Versionen des Programms gibt.

Es gibt keinen "Standard", der beschreibt, welche Optionen netcatunterstützt werden müssen, im Gegensatz zu vielen anderen Standarddienstprogrammen, die in POSIX spezifiziert sind. Es gibt netcatVersionen von OpenBSD, FreeBSD, demGNU Netcat, und so weiter.

Für die OpenBSD-VarianteDie Manpage stellt fest, dass:

There is no -c or -e option in this netcat, but you still can execute a
 command after connection being established by redirecting file descriptors.
 Be cautious here because opening a port and let anyone connected execute
 arbitrary command on your site is DANGEROUS. If you really need to do this,
 here is an example:

 On ‘server’ side:

       $ rm -f /tmp/f; mkfifo /tmp/f
       $ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

 On ‘client’ side:

       $ nc host.example.com 1234
       $ (shell prompt from host.example.com)

 By doing this, you create a fifo at /tmp/f and make nc listen at port 1234
 of address 127.0.0.1 on ‘server’ side, when a ‘client’ establishes a
 connection successfully to that port, /bin/sh gets executed on ‘server’
 side and the shell prompt is given to ‘client’ side.

 When connection is terminated, nc quits as well. Use -k if you want it keep
 listening, but if the command quits this option won't restart it or keep nc
 running. Also don't forget to remove the file descriptor once you don't
 need it anymore:

       $ rm -f /tmp/f

Antwort2

In den letzten Versionen habe ich in einigen Quellen eine Definition für Netcat gefunden, um den Ausführungsbefehl zu aktivieren. Normalerweise ist dies aus Sicherheitsgründen deaktiviert.

aber ich habe eine alternative Lösung gefunden

http://www.commandlinefu.com/commands/view/11061/emulating-netcat-e-netcat-traditional-or-netcat-openbsd-with-the-gnu-netcat

verwandte Informationen