netcat을 통해 콘솔 응용 프로그램을 파이프 / 리디렉션하여 원격으로 사용할 수 있습니까?


10

그렇게 netcat을 새로운 연결을 수신하는 '파이프'netcat을 통해 콘솔 애플리케이션의 인스턴스에 가능하며 리디렉션 stdinstdout네트워크 연결을 통해.


예,하지만 하나의 라이너가 필요할 수도 있습니다. 파이프가 좋습니다. pid로 nc와 파이프를 이미 실행중인 인스턴스에 알릴 수 있는지 여부를 모르겠습니다. 당신은 IP에 nc를 듣고 그것을 듣고있는 nc에 파이프하고 그것을 듣고있는 nc에 파이프하고 그것을 nc에 ip에 파이프 할 수 있습니다.
barlop

언급 한 내용 이 파이프를 사용하는 것이 아니라 I / O 리디렉션 과 비슷하게 들리기 때문에 제목을 변경했습니다 ( 한 프로세스 의 출력 을 다른 프로세스의 입력 으로 이동하는 것만 처리합니다 ).
획기적인

@ 그것은 파이프와 어떻게 다릅니 까? IO 리디렉션에 대해 이야기하고 파일에 대해서는 이야기하지 않고 파이프와 다른 점은 무엇입니까?
barlop 2016 년

@barlop I / O 리디렉션 ( <또는 >)은 파이핑 ( |)과 크게 다르지만 때로는 두 가지를 혼합하여 동등한 작업을 수행 할 수 있습니다. 그러나 I / O 리디렉션을 사용하면 스트림 의 위치를 모두 변경할 수 있습니다 . 파이핑은 한 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 리디렉션합니다.
획기적인

@Breakthrough 내가 당신에게 물어 보았습니다. <와>는 파일을 사용하기 때문에>와 <는 물론 파이핑과 다릅니다. 그러나 그는 파일에 대해 이야기하고 있지 않습니다. "IO 리디렉션이 파이프와 어떻게 다릅니 까? IO 리디렉션에 대해 이야기하고 파일에 대해 이야기하지 않고 파이프와 어떻게 다릅니 까?"
barlop

답변:


16

에 설명 된대로 글쎄, 위키피디아netcat문서하는이 -e산란으로 인해 옵션 ( 전자 프로세스의 표준 입력, 표준 출력 및 표준 오류에 소켓을 부착 xecute) 연결 수령시 프로그램. 사용법 예 :

nc -l -pport_number -eprogram_name

예제는 일반적으로 program_name 으로 표시 /bin/sh되거나 bash사용됩니다 . 이 옵션은 기본적으로 컴퓨터에 익명의 암호없는 액세스 포털을 열기 때문에 사용하지 않는 것이 좋습니다. 물론 이것은 쉘보다 전력이 적은 프로그램 (쉘로 탈출 할 수없는 프로그램)을 사용하여 사용을 최소화하고 비밀로 유지함으로써 완화됩니다. 그럼에도 불구하고, 원래 개발자 들은이 옵션이 기본적으로 비활성화되어“GAPING_SECURITY_HOLE”컴파일 옵션에 따라 조정되었다는 나쁜 생각이라고 강하게 느꼈습니다. 이것은이 NetCat Tutorial 및 기타 설명서 에서 간단히 언급 됩니다.netcatnetcat

Google 검색을 통해 다른 Stack Exchange 사이트 ( 스택 오버플로서버 오류) 에서이 문제에 대해 토론했습니다 . 여러 참여자는 사용하지 않고 같은 일을하기 위해 다음과 같은 기술을 제공하는 -e옵션 (버전에서, 즉 netcat그이 -e옵션 장애인) :

서버에서 :
mkfifopipe_name
nc -l -pport_number <pipe_name   | program_name >pipe_name

클라이언트에서 :
nc server_machine_name  port_number

몇 가지 메모 :

  • 일부 버전에서 netcat, -l의미 -p, 그래서 당신은 단지 말을해야 -l하고 포트 번호를.
  • 솔루션을 while true루프 로 감쌀 수 있습니다 .
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.