Tại sao tùy chọn '-e' bị thiếu trong netcat-openbsd?


13

Tại sao -etùy chọn bị thiếu trong netcat-openbsdgói? Có một netcat-traditionalgói nhưng nó có nhiều tính năng từ gói OpenBSD bị thiếu. Tôi đang chạy Linux Mint 16.

Có ai biết tại sao điều này bị mất? Nó loại bỏ khá nhiều tính năng lớn của netcat.


bản sao có thể có của các phiên bản netcat
Ciro Santilli 病毒 审查 六四 事件

Câu trả lời:


17

Bởi vì có nhiều phiên bản khác nhau của chương trình.

Không có "tiêu chuẩn" nào mô tả các tùy chọn netcatnào phải hỗ trợ, không giống như nhiều tiện ích tiêu chuẩn khác được chỉ định trong POSIX. Bạn có netcatcác phiên bản từ OpenBSD, FreeBSD, GNU netcat , et cetera.

Đối với biến thể OpenBSD , trang lưu ý rằng :

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.