IT TIP

Bash의 간단한 소켓 서버?

itqueen 2020. 10. 28. 21:20
반응형

Bash의 간단한 소켓 서버?


TCP 포트 / IP 주소에 빠르게 바인딩하고 모든 정보를 STDOUT에 인쇄하는 방법이 있습니까? 127.0.0.1:4444에 내용을 쓰는 간단한 디버깅 솔루션이 있으며 bash에서 포트를 바인딩하고 모든 것을 인쇄 할 수 있기를 바랍니다. 이 작업을 수행하는 쉬운 방법이 있습니까?


$ nc -k -l 4444 > filename.out

보다 nc(1)


당신이 요청해서 그것을에서 수행하는 방법 bash하지만, netcat대답은 매우 유효합니다 :

  $ exec 3<>/dev/tcp/127.0.0.1/4444
  $ cat <&3

예상대로 작동합니다.

 nc -k -l 4444 |bash

그리고 너

echo "ls" >/dev/tcp/127.0.0.1/4444

그러면 bash가 수행 한 목록이 표시됩니다.

[간단한 보안 경고]
물론 이와 같은 것을 컴퓨터에서 실행하면 네트워크의 모든 호스트에있는 모든 사용자 계정에서 명령을 보낼 수 있기 때문에 모든 종류의 공격에 대해 개방 된 게이트웨이를 갖게됩니다. 이것은 보안 (인증, 식별)을 전혀 구현하지 않고 네트워크를 통해 암호화되지 않은 모든 전송 명령을 전송하므로 매우 쉽게 악용 될 수 있습니다.


ncat@Freedom_Ben이 언급 한 답변을 추가하면 다음 과 같습니다.

ncat -k -l 127.0.0.1 4444

그리고 man ncat의 옵션에 대한 설명 :

-k, --keep-open            Accept multiple connections in listen mode
-l, --listen               Bind and listen for incoming connections

참고 URL : https://stackoverflow.com/questions/4739196/simple-socket-server-in-bash

반응형