NetCat ( nc )
standalone server
```bash
$ 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로 포팅하는 방법도 있다.
```
socat tcp-listen:9090,fork,reuseaddr exec:/path
```
Basic
server :
```bash
nc -vvv -l -p 8888
```
client :
```bash
nc servIP 8888
```
파일 전송
server :
```bash
nc -l -p 8888 > output
```
client :
```bash
nc servIP < input 또는 cat input | nc servIP 8888
```
`` input, output`` 방향 반대로 해도 가능하다.
'OS > LINUX & UNIX' 카테고리의 다른 글
[shell] pipe (0) | 2016.11.03 |
---|---|
PLT, GOT (0) | 2016.11.01 |
xinetd / micro-inetd (0) | 2016.09.26 |
Shell shock (0) | 2016.08.15 |
리눅스 파일 설치과정 / Makefile 작성 / 윈도우에서 make하기. nmake (0) | 2016.08.15 |