본문 바로가기
해킹 기초지식

nc 사용법

by whiteTommy 2023. 11. 29.

서버에서 특정 포트를 통해 서비스를 동작시키는 환경을 구성한다. 클라이언트가 이 프로그램과 통신하기 위해서 nc(netcat)을 사용한다.

 

$ nc
usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
      [-m minttl] [-O length] [-P proxy_username] [-p source_port]
      [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit]
      [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]]
      [destination] [port]
$

 

여기서, 가장 간단한 사용 방식은 nc hostname(ip) port이다.

아래는 google.com에 80번 포트(http)로 연결을 요청한 것이다.

$ nc google.com 80
GET / HTTP/1.1  
​
HTTP/1.1 200 OK
Date: Thu, 01 Dec 2022 02:30:32 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Cross-Origin-Opener-Policy-Report-Only: same-origin-allow-popups; report-to="gws"
...

 

80번 포트로 google에 네트워크 연결을 시도한 후에, GET/HTTP/1.1을 입력한 후 엔터를 누르면, 서버에서 이 요청에 해당하는 response를 전송함을 확인할 수 있다.

 

웹 서비스에 접속해서 푸는 형태의 워게임은 브라우저를 사용해서 접속할 수 있지만, ELF 바이너리가 서비스로 등록되어 제공되는 워게임의 경우 nc로 접속해서 해결해야 한다.

Host: host3.dreamhack.games
Port: 17458/tcp → 31337/tcp

http://host3.dreamhack.games:17458/
nc host3.dreamhack.games 17458