NetCat ( nc )
standalone server
이를 이용하면 non-socket programming binary도 standalone server로 동작할 수 있다. 근데 하나의 connection만 처리할 수 있으며 connection이 종료되면 nc도 꺼진다.
1
2
$ nv -vvv -e /bin/sh -l -p 1234
1
2
3
$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/sh -i 2>&1 | nc -vvv -l -p 1234 > /tmp/f
* -i
는 interactive 옵션인데, 대화형 모드로 띄워준다.
interactive mode
startup file을 읽어들이고, 프롬프트를 표시해준다. interactive mode를 백그라운드로 돌리면, 사용자 입력을 대기하며 멈춰있게 된다.
non-interactive mode
startup file을 읽어들이지 않는다. 쉘스크립트같은 경우 백그라운드에서 사람의 입력 없이 돌아가야 하는게 대부분이므로, 기본적으로 non-interactive mode로 동작한다. 그러나 이 것이 non-interactive mode가 사용자 입력을 받을 수 없다는 뜻은 아니기 때문에, nc server에서 non-interactive mode로 쉘을 열어 놓았다고 해도 사용자와의 입출력이 가능해 쉘이 정상적으로 동작한다.
Note ) socat을 활용해 remote로 포팅하는 방법도 있다.
1
2
3
socat tcp-listen:9090,fork,reuseaddr exec:/path
Basic
server :
1
2
nc -vvv -l -p 8888
client :
1
2
nc servIP 8888
파일 전송
server :
1
2
nc -l -p 8888 > output
client :
1
2
nc servIP < input 또는 cat input | nc servIP 8888
input, output
방향 반대로 해도 가능하다.
This post is licensed under CC BY 4.0 by the author.