netcat-openbsd에서 '-e'옵션이없는 이유는 무엇입니까?


14

패키지 -e에서 옵션이 누락 된 이유는 무엇 netcat-openbsd입니까? 거기에있다 netcat-traditional패키지는하지만 누락 오픈 BSD 패키지에서 많은 기능을 가지고 있습니다. Linux Mint 16을 실행 중입니다.

왜 이것이 누락되었는지 알고 있습니까? netcat의 큰 기능을 제거합니다.


답변:


17

다양한 버전의 프로그램이 있기 때문입니다.

netcatPOSIX에 지정된 다른 많은 표준 유틸리티와 달리 지원해야하는 옵션을 설명하는 "표준"은 없습니다 . 당신은 netcat오픈 BSD, FreeBSD의,로부터 버전 GNU netcat을 등등을.

OpenBSD 변형의 경우 맨 페이지는 다음과 같이 지적합니다 .

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.