NetCat에서 더 많은 출력 얻기

NetCat에서 더 많은 출력 얻기

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

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

Ctrlz셸을 사용하여 콘솔 응용 프로그램을 실행하는 경우 종종 콘솔 응용 프로그램이 출력하는 내용을 볼 수 없으며 컴퓨터에서 netcat이 닫히기 때문에 셸을 통해 실행할 수 없습니다 . 그것은 엉망입니다. SSH처럼 작동하고 싶습니다(사용할 수 없습니다).

netcat을 사용하여 모든 것을 파이핑하는 대신 /bin/sh터미널의 모든 출력을 표시하는 사용자 정의 응용 프로그램을 만드는 것이 가능합니까? 어떤 프로세스에 기록했는지에 관계없이 어떻게든 터미널에서 텍스트를 가져올 수 있습니까?

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 서버가 있는 경우입니다.

관련 정보