[네트워크] Netcat 간단한 사용법
서버와 클라이언트가 네트워크 세션 확립 또는 통신이 되려면 소켓이 필요합니다.
코딩을 하는 사람(코더)는 소켓 프로그래밍을 해야 하는데 간단한 소켓 통신이라도
그 프로그램을 만드는데 의외로 적지 않은 시간이 걸립니다.
그래서 이 기능을 제공해주는 프로그램 Netcat이 있습니다.
간단한 소켓(통신)을 할 수 있는 기능을 제공해주는 프로그램이라고 생각하시면 됩니다.
< 공통 >
ncat -h
- Netcat 메뉴얼 보기
C:\>ncat -h
Ncat 7.40 ( https://nmap.org/ncat )
Usage: ncat [options] [hostname] [port]
Options taking a time assume seconds. Append 'ms' for milliseconds,
's' for seconds, 'm' for minutes, or 'h' for hours (e.g. 500ms).
-4 Use IPv4 only
-6 Use IPv6 only
-C, --crlf Use CRLF for EOL sequence
-c, --sh-exec <command> Executes the given command via /bin/sh
-e, --exec <command> Executes the given command
--lua-exec <filename> Executes the given Lua script
-g hop1[,hop2,...] Loose source routing hop points (8 max)
-G <n> Loose source routing hop pointer (4, 8, 12, ...)
-m, --max-conns <n> Maximum <n> simultaneous connections
-h, --help Display this help screen
-d, --delay <time> Wait between read/writes
-o, --output <filename> Dump session data to a file
-x, --hex-dump <filename> Dump session data as hex to a file
-i, --idle-timeout <time> Idle read/write timeout
-p, --source-port port Specify source port to use
-s, --source addr Specify source address to use (doesn't affect -l)
-l, --listen Bind and listen for incoming connections
-k, --keep-open Accept multiple connections in listen mode
-n, --nodns Do not resolve hostnames via DNS
-t, --telnet Answer Telnet negotiations
-u, --udp Use UDP instead of default TCP
--sctp Use SCTP instead of default TCP
-v, --verbose Set verbosity level (can be used several times)
-w, --wait <time> Connect timeout
-z Zero-I/O mode, report connection status only
--append-output Append rather than clobber specified output files
--send-only Only send data, ignoring received; quit on EOF
--recv-only Only receive data, never send anything
--allow Allow only given hosts to connect to Ncat
--allowfile A file of hosts allowed to connect to Ncat
--deny Deny given hosts from connecting to Ncat
--denyfile A file of hosts denied from connecting to Ncat
--broker Enable Ncat's connection brokering mode
--chat Start a simple Ncat chat server
--proxy <addr[:port]> Specify address of host to proxy through
--proxy-type <type> Specify proxy type ("http" or "socks4" or "socks5")
--proxy-auth <auth> Authenticate with HTTP or SOCKS proxy server
--ssl Connect or listen with SSL
--ssl-cert Specify SSL certificate file (PEM) for listening
--ssl-key Specify SSL private key (PEM) for listening
--ssl-verify Verify trust and domain name of certificates
--ssl-trustfile PEM file containing trusted SSL certificates
--ssl-ciphers Cipherlist containing SSL ciphers to use
--version Display Ncat's version information and exit
See the ncat(1) manpage for full options, descriptions and usage examples
< 서버(IP : 10.0.0.2) >
ncat -l 8888
- 8888포트로 Listen
- 클라이언트와 1:1 소켓통신을 할 수 있음.
- 클라이언트측에서 소켓을 끊어버리면 서버측에서도 netcat이 종료된다.
ncat -lk 8888
- 8888포트로 (Multi)Listen
- 클라이언트들과 N:1 소켓통신을 할 수 있음
- 클라이언트측에서 소켓을 끊어도 서버측에서는 netcat이 종료되지 않음.
ncat -l 8888 -c cmd
ncat -l 8888 -e cmd
- 8888포트로 Listen
- 이 서버로 접속하는 클라이언트에게 서버의 cmd 원격 실행 권한을 부여
ncat -lv 8888
- 8888포트로 Listen
- 해당포트에 세션확립이 되었던 클라이언트의 아이피를 출력
< 클라이언트 >
ncat 10.0.0.2 8888
- 10.0.0.2 서버의 8888포트로 접속
ncat 10.0.0.2 8888 -c cmd
ncat 10.0.0.2 8888 -e cmd
- 10.0.0.2 서버의 8888포트로 접속
- 접속하는 서버(10.0.0.2)에게 자신(클라이언트)의 cmd 원격 실행 권한을 부여
'Network > Network' 카테고리의 다른 글
[네트워크] 사설아이피 (0) | 2017.04.02 |
---|---|
[네트워크] 포트포워딩 테스트 사이트 (0) | 2017.03.26 |