네트웍/포트(port) 체크

리눅스 - NC (NetCat) 사용법(1) 포트체크

승하연서빠 2024. 7. 8. 09:42
728x90

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보다 복잡한 포트 검색에 더 적합한 도구입니다.

 

출처 : https://jjeongil.tistory.com/1600 

반응형