NetCat에서 더 많은 출력 얻기

NetCat에서 더 많은 출력 얻기

현재 저는 이 표준을 사용하여 netcat -e /bin/sh다른 컴퓨터에 액세스할 수 있는 원격 셸을 제공하고 있습니다.

하지만 문제는 이 쉘이 출력이 제한되어 있기 때문에 꽤 나쁘다는 것입니다. 예를 들어 잘못된 명령을 보내면 xxxxx컴퓨터에서는 아무런 응답도 받지 못하지만 컴퓨터에서는 터미널에 오류가 표시됩니다 /bin/sh: xxxxx: not found.

셸을 사용하여 콘솔 응용 프로그램을 시작하면 일반적으로 콘솔 응용 프로그램의 출력이 전혀 표시되지 않으며 Ctrlz컴퓨터에서 netcat이 종료되기 때문에 셸을 통과할 수 없습니다. 이것은 엉망입니다. SSH처럼 작동하고 싶습니다(사용할 수 없습니다).

/bin/shnetcat에서 하는 것처럼 모든 것을 파이핑하는 대신 터미널에 모든 출력을 표시하는 사용자 정의 애플리케이션을 만드는 것이 가능합니까? 작성 프로세스에 관계없이 터미널에서 텍스트를 얻는 것이 가능합니까?

sshd상자에서 부팅 하여 이 작업을 수행할 수 있습니까 netcat -e "ssh root@localhost"? (나는 이것을 시도했지만 작동하지 않는 것 같습니다).

나는 어떤 종류의 해결책이라도 찾고 있습니다.

답변1

"사용자 정의 응용 프로그램"을 만들면 telnet/ssh가 다시 구현됩니다. 이는 확실히 가능하지만 필수는 아닙니다.

호스트에 sshd(또는 telnetd)가 있는 경우 예를 들어 netcat-shell 세션에서 이를 시작한 /usr/sbin/sshd -p <port> -D 2>&1다음 ssh -p <port> root@<host>클라이언트에서 이 작업을 수행할 수 있습니다. sshd에 더 많은 옵션을 추가해야 할 수도 있고 구성 파일을 생성하여 명령줄에 제공해야 할 수도 있습니다./usr/sbin/sshd -f <config-file> ...

그렇지 않은 경우 netcat 세션을 사용하여 telnetd 또는 sshd를 업로드하고 필요한 환경/구성을 설정한 후 특정 포트에서 실행할 수 있습니다.

예를 들어 stderr를 stdout으로 리디렉션하는 래퍼를 쉘 주위에 만들 수도 있습니다. /bin/sh 2>&1이렇게 하면 netcat 세션에서 stderr을 볼 수 있지만 "실제 터미널" 기능은 제공되지 않습니다.

또 다른 옵션은 DISPLAY=<client>:0 xtrem호스트에 xterm 또는 이와 동등한 기능을 갖고 클라이언트에 X 서버를 두는 것입니다.

관련 정보