리눅스 - NC (NetCat) 사용법(1) 포트체크
Netcat(ornc)은 TCP 또는 UDP 프로토콜을 사용하여 네트워크 연결을 통해 데이터를 읽고 쓰는 명령줄 유틸리티입니다. 네트워크 및 시스템 관리자 무기고에서 가장 강력한 도구 중 하나이며, 네트워킹 툴의 스위스 군용 칼이라고 할 수 있습니다.
Netcat은 교차 플랫폼이며 리눅스, MacOS, 윈도우즈 및 BSD에서 사용할 수 있습니다. Netcat을 사용하여 네트워크 연결을 디버그 및 모니터링하고, 열린 포트를 검사하고, 데이터를 전송하고, 프록시로 사용하는 등의 작업을 수행할 수 있습니다.
Netcat 패키지는 MacOS 및 Ubuntu, Debian 또는 CentOS와 같은 널리 사용되는 Linux 배포에 미리 설치되어 있습니다.
Linux : Netcat (nc) 명령어, 사용 방법, 예제
Netcat 구문
Netcat 유틸리티의 가장 기본적인 구문은 다음과 같습니다.
nc [options] host port
Ubuntu에서는 netcat 또는 nc를 사용할 수 있습니다. 둘 다 openBSD 버전에 대한 symilinks입니다.
기본적으로 Netcat은 지정된 호스트 및 포트에 대한 TCP 연결을 시작합니다. UDP 연결을 설정하려면 -u 옵션을 사용합니다.
nc -u host port
포트 검색
포트 검색은 Netcat의 가장 일반적인 용도 중 하나입니다. 단일 포트 또는 포트 범위를 검색할 수 있습니다.
예를 들어 20-80 범위의 열린 포트를 검색하려면 다음 명령을 사용합니다.
nc -z -v 10.10.8.8 20-80
# nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
# nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
# Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
# nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
# ...
# nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
# Connection to 10.10.8.8 80 port [tcp/http] succeeded!
-z 옵션은 nc에 데이터를 보내지 않고 열린 포트만 검색하도록 지시하고 -v 옵션은 보다 자세한 정보를 제공합니다.
열린 포트가 있는 라인만 인쇄하려는 경우 grep 명령을 사용하여 결과를 필터링할 수 있습니다.
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
# Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
# Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Netcat을 사용하여 서버 소프트웨어 및 해당 버전을 찾을 수도 있습니다. 예를 들어 "EX"를 보내는 경우입니다. IT" 명령은 기본 SSH 포트 22에서 서버에 전달됩니다.
echo "EXIT" | nc 10.10.8.8 22
# SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
# Protocol mismatch.
UDP 포트를 검색하려면 아래 나온 것처럼 명령에 -u 옵션을 추가하면 됩니다.
nc -z -v -u 10.10.8.8 20-80
일반적으로 Nmap은 Netcat보다 복잡한 포트 검색에 더 적합한 도구입니다.