기본 Nmap UDP 스캔 수행
이 단계에서는 이전 단계에서 설정한 UDP 서버를 스캔하기 위해 Nmap 을 사용합니다. 이 프로세스는 Nmap 이 열린 UDP 포트와 해당 포트에서 실행 중인 서비스를 식별하는 방법을 이해하는 데 도움이 되므로 매우 중요합니다. 이 단계를 마치면 사이버 보안 분야에서 필수적인 기술인 UDP 스캐닝을 위해 Nmap 을 사용하는 방법을 더 잘 이해하게 될 것입니다.
Nmap UDP 스캐닝 이해
Network Mapper 의 약자인 Nmap 은 네트워크 검색 및 보안 감사에 사용되는 잘 알려진 무료 오픈 소스 도구입니다. UDP 포트 스캐닝과 관련하여 Nmap 은 TCP 포트 스캐닝과 다르게 작동합니다.
UDP (User Datagram Protocol) 는 비연결형 프로토콜입니다. 데이터를 전송하기 전에 연결을 설정하는 TCP 와 달리 UDP 는 먼저 연결을 설정하지 않고 데이터를 전송합니다. 즉, TCP 포트에 사용되는 기존의 연결 기반 스캐닝 방법은 UDP 에 적용되지 않습니다.
Nmap 이 UDP 포트를 스캔할 때 대상 포트로 빈 UDP 패킷을 보내고 응답을 기다립니다. 포트가 닫혀 있으면 대상 시스템은 일반적으로 ICMP "port unreachable" 메시지를 다시 보냅니다. 그러나 포트가 열려 있으면 상황이 조금 더 복잡해집니다. 응답이 전혀 없을 수 있으며, 이로 인해 포트가 실제로 열려 있는지 확인하기 어려울 수 있습니다. 또는 포트에서 실행 중인 UDP 서비스가 패킷 형식을 인식하면 응답을 보낼 수 있습니다.
UDP 스캐닝은 일반적으로 TCP 스캐닝보다 느리고 신뢰성이 떨어진다는 점에 유의해야 합니다. 이는 UDP 가 TCP 와 같은 오류 검사 및 재전송을 위한 내장 메커니즘이 없기 때문입니다.
UDP 스캔 수행
-
먼저 새 터미널 창을 엽니다. UDP 서버가 실행 중인 이전 터미널을 유지하십시오. 이 터미널에서 현재 활성 상태인 UDP 서버를 스캔할 것이므로 중요합니다.
-
다음으로 프로젝트 디렉토리로 이동해야 합니다. 새 터미널에서 다음 명령을 실행합니다.
cd /home/labex/project
이 명령은 현재 작업 디렉토리를 관련 파일과 구성이 모두 있는 프로젝트 디렉토리로 변경합니다.
- 이제 Nmap UDP 스캔을 실행할 차례입니다. 로컬 호스트 (127.0.0.1) 를 스캔하여 포트 9999 를 대상으로 합니다. 다음 명령을 실행합니다.
sudo nmap -sU -p 9999 127.0.0.1 > /home/labex/project/udp_scan_results.txt
이 명령을 자세히 살펴보고 각 부분이 수행하는 작업을 이해해 보겠습니다.
sudo: 이 명령은 권한을 높여 명령을 실행하는 데 사용됩니다. UDP 스캐닝은 낮은 수준의 네트워크 계층에서 패킷을 전송하는 작업이 포함되므로 이러한 권한이 필요합니다.
nmap: 이것은 우리가 사용하고 있는 스캐닝 도구입니다. 네트워크 검색 및 보안 감사를 위한 핵심 작업입니다.
-sU: 이 옵션은 Nmap 에게 UDP 스캔을 수행하도록 지시합니다.
-p 9999: 이 옵션은 포트 9999 만 스캔하려는 것을 지정합니다.
127.0.0.1: 이것은 대상 IP 주소입니다. 이 경우 로컬 호스트이므로 자체 머신을 스캔하는 것입니다.
> /home/labex/project/udp_scan_results.txt: 이 부분은 Nmap 스캔의 출력을 프로젝트 디렉토리의 udp_scan_results.txt라는 파일로 리디렉션합니다. 이렇게 하면 나중에 결과를 검토할 수 있습니다.
- 스캔이 완료되면 결과를 볼 수 있습니다. 다음 명령을 실행합니다.
cat /home/labex/project/udp_scan_results.txt
다음과 유사한 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-15 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000054s latency).
PORT STATE SERVICE
9999/udp open|filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
결과 이해
스캔 결과를 자세히 살펴보고 그 의미를 이해해 보겠습니다.
open|filtered 상태는 Nmap 이 ICMP "port unreachable" 메시지를 수신하지 못했음을 나타냅니다. 이에 대한 몇 가지 가능한 설명이 있습니다.
- 포트가 열려 있고 UDP 서비스가 예상대로 실행되고 있습니다.
- 포트가 방화벽에 의해 필터링될 수 있습니다. 방화벽은 ICMP "port unreachable" 메시지 또는 UDP 트래픽 자체를 차단할 수 있습니다.
- 대상 시스템이 어떤 이유로 ICMP "port unreachable" 메시지를 보내지 않을 수 있습니다.
이 경우, UDP 서버를 직접 설정했으므로 포트가 열려 있음을 알고 있습니다. unknown 서비스 레이블은 Nmap 이 서비스 지문을 기반으로 해당 포트에서 어떤 서비스가 실행 중인지 확인할 수 없음을 의미합니다.
앞서 언급했듯이 UDP 스캐닝은 TCP 스캐닝보다 덜 결정적입니다. 그렇기 때문에 Nmap 은 종종 UDP 포트에 대해 open|filtered 상태를 표시하여 UDP 포트의 상태를 정확하게 결정하는 것을 조금 더 어렵게 만듭니다.