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


10

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


예,하지만 하나의 라이너가 필요할 수도 있습니다. 파이프가 좋습니다. 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.