Nmap 으로 UDP 스캔 실행하기

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 UDP 스캔을 실행하는 방법을 배우게 됩니다. 먼저 -sU 옵션을 사용하여 대상 IP 주소에 대한 기본적인 UDP 스캔을 수행하는 것으로 시작합니다. 그런 다음 특정 UDP 포트를 스캔하고, UDP 및 TCP 스캔을 결합하며, 버전 감지를 추가합니다. 마지막으로 Xfce 터미널에서 UDP 스캔 결과를 확인하고 Xfce 텍스트 편집기에서 출력을 비교합니다.

nmap 으로 UDP 스캔 실행 -sU 192.168.1.1

이 단계에서는 Nmap 을 사용하여 기본적인 UDP 스캔을 수행합니다. UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜) 는 비연결형 프로토콜입니다. 즉, TCP 와 달리 데이터를 전송하기 전에 연결을 설정하기 위한 핸드셰이크가 없습니다. 이로 인해 UDP 스캔은 TCP 스캔과 다릅니다. Nmap 의 -sU 옵션은 UDP 스캔을 시작하는 데 사용됩니다.

시작하기 전에 UDP 스캔이 TCP 스캔보다 신뢰성이 떨어질 수 있다는 점을 이해하는 것이 중요합니다. UDP 는 비연결형이므로 Nmap 은 포트가 열려 있어도 항상 응답을 받지 못할 수 있습니다. 방화벽 및 네트워크 상태도 UDP 스캔의 정확성에 영향을 미칠 수 있습니다.

다음 명령을 사용하여 대상 IP 주소 192.168.1.1을 스캔하는 것으로 시작해 보겠습니다.

sudo nmap -sU 192.168.1.1

이 명령은 Nmap 에게 IP 주소 192.168.1.1에 대해 UDP 스캔 (-sU) 을 수행하도록 지시합니다. UDP 스캔은 종종 raw 패킷을 전송하기 위해 권한 상승이 필요하므로 sudo가 필요합니다.

명령을 실행하면 다음과 유사한 출력이 표시됩니다.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Not shown: 997 closed udp ports
PORT      STATE         SERVICE
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
5353/udp  open|filtered zeroconf

Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds

출력 설명:

  • Starting Nmap ...: Nmap 버전과 스캔 시작 시간을 표시합니다.
  • Nmap scan report for 192.168.1.1: 대상 IP 주소를 나타냅니다.
  • Host is up: 대상 호스트에 연결할 수 있음을 확인합니다.
  • Not shown: 997 closed udp ports: Nmap 이 997 개의 닫힌 UDP 포트를 표시하지 않았음을 나타냅니다. 기본적으로 Nmap 은 열린 포트, open|filtered 또는 filtered 포트만 표시합니다.
  • PORT STATE SERVICE: 포트 번호, 상태 및 해당 포트에서 실행 중인 서비스 (알려진 경우) 를 나열합니다.
    • open: Nmap 이 포트에서 응답을 받았음을 나타내며, 해당 포트에서 서비스가 수신 대기 중임을 시사합니다.
    • open|filtered: 포트가 열려 있거나 필터링되었음을 나타냅니다. Nmap 은 어떤 상태인지 확인할 수 없었습니다. 이는 종종 방화벽이 Nmap 의 프로브를 차단하고 있음을 의미합니다.
    • filtered: 방화벽이 Nmap 의 프로브를 차단하고 있으며 Nmap 이 포트가 열려 있는지 닫혀 있는지 확인할 수 없음을 나타냅니다.
  • Nmap done: 스캔 완료 시간과 스캔된 IP 주소 수를 표시합니다.

중요 고려 사항:

  • 192.168.1.1을 스캔하려는 대상의 실제 IP 주소로 바꿉니다.
  • UDP 스캔의 결과는 네트워크 상태 및 방화벽 구성에 따라 다를 수 있습니다.
  • 허가 없이 네트워크를 스캔하는 것은 불법이며 비윤리적입니다. 소유하거나 스캔할 명시적인 권한이 있는 네트워크만 스캔하십시오.

nmap 으로 UDP 포트 스캔 -sU -p 53,123 127.0.0.1

이 단계에서는 특정 포트에 UDP 스캔을 집중합니다. 이는 모든 UDP 포트를 스캔하지 않고 특정 서비스가 대상 시스템에서 실행 중인지 확인하려는 경우에 유용합니다. 모든 UDP 포트를 스캔하는 것은 시간이 많이 걸릴 수 있습니다. 로컬 호스트 (127.0.0.1) 에서 포트 53 (DNS) 및 123 (NTP) 을 스캔합니다.

Nmap 의 -p 옵션을 사용하면 스캔하려는 포트를 지정할 수 있습니다. 단일 포트, 포트 범위 (예: 1-100) 또는 쉼표로 구분된 포트 목록 (예: 21,22,80) 을 제공할 수 있습니다.

127.0.0.1 에서 UDP 포트 53 및 123 을 스캔하려면 다음 명령을 사용하십시오.

sudo nmap -sU -p 53,123 127.0.0.1

이 명령은 Nmap 에게 IP 주소 127.0.0.1 (로컬 호스트) 의 포트 53 및 123 (-p 53,123) 에 대해 UDP 스캔 (-sU) 을 수행하도록 지시합니다. 다시 말하지만, UDP 스캔에는 종종 sudo가 필요합니다.

명령을 실행하면 다음과 유사한 출력이 표시될 수 있습니다.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).

PORT    STATE         SERVICE
53/udp  open|filtered domain
123/udp closed        ntp

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

출력 설명:

  • Nmap scan report for localhost (127.0.0.1): 대상이 로컬 호스트임을 나타냅니다.
  • PORT STATE SERVICE: 포트 번호, 상태 및 해당 포트에서 실행 중인 서비스 (알려진 경우) 를 나열합니다.
    • 53/udp open|filtered domain: 포트 53 (DNS) 이 열려 있거나 필터링되었습니다. 이는 잠재적인 방화벽 규칙 또는 네트워크 조건으로 인해 Nmap 이 포트가 열려 있는지 확실하게 확인할 수 없음을 의미합니다.
    • 123/udp closed ntp: 포트 123 (NTP) 이 닫혔습니다. 이는 해당 포트에서 수신 대기 중인 서비스가 없음을 의미합니다.

핵심 내용:

  • -p 옵션을 사용하면 특정 포트를 대상으로 지정하여 스캔을 보다 효율적으로 만들 수 있습니다.
  • 출력은 각 스캔된 포트의 상태 (열림, 닫힘, 필터링 등) 에 대한 정보를 제공합니다.
  • 일반적인 포트 (DNS 의 경우 53, NTP 의 경우 123 등) 와 관련된 서비스를 이해하면 스캔 결과를 해석하는 데 도움이 됩니다.

nmap 으로 UDP 및 TCP 스캔 결합 -sU -sT 192.168.1.1

이 단계에서는 단일 Nmap 명령에서 UDP 및 TCP 스캔을 결합합니다. 이를 통해 대상 시스템에서 실행 중인 서비스에 대한 보다 포괄적인 보기를 얻을 수 있습니다. 일부 서비스는 UDP 를 사용하고 다른 서비스는 TCP 를 사용하기 때문입니다.

Nmap 의 -sT 옵션은 TCP connect 스캔을 수행합니다. 이는 Nmap 이 대상 포트와 완전한 TCP 연결을 설정하려고 시도하는 가장 기본적인 형태의 TCP 스캔입니다. 일반적으로 신뢰할 수 있지만 쉽게 감지될 수 있습니다.

192.168.1.1에서 UDP 스캔과 TCP connect 스캔을 모두 수행하려면 다음 명령을 사용하십시오.

sudo nmap -sU -sT 192.168.1.1

이 명령은 Nmap 에게 IP 주소 192.168.1.1에 대해 UDP 스캔 (-sU) 과 TCP connect 스캔 (-sT) 을 수행하도록 지시합니다. 특히 스캔의 UDP 부분에는 sudo가 필요한 경우가 많습니다.

명령을 실행하면 UDP 및 TCP 스캔의 결과가 모두 포함된 출력이 표시됩니다. 출력은 다음과 유사하게 보일 수 있습니다.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Not shown: 997 closed udp ports
PORT      STATE         SERVICE
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
5353/udp  open|filtered zeroconf
PORT      STATE    SERVICE
22/tcp    open     ssh
80/tcp    open     http

Nmap done: 1 IP address (1 host up) scanned in 7.23 seconds

출력 설명:

  • 출력은 이전 스캔과 유사하지만 이제 UDP 및 TCP 포트의 결과가 모두 포함됩니다.
  • 첫 번째 섹션은 UDP 스캔 결과 (포트 및 상태 (열림, 닫힘, 필터링 등)) 를 보여줍니다.
  • 두 번째 섹션은 TCP 스캔 결과 (포트 및 상태 포함) 를 보여줍니다.
  • 동일한 IP 주소에서 서로 다른 프로토콜 (UDP 및 TCP) 에서 서로 다른 서비스가 실행될 수 있음을 확인하십시오.

UDP 및 TCP 스캔 결합의 이점:

  • 보다 포괄적인 결과: 대상에서 실행 중인 서비스에 대한 보다 완전한 그림을 얻을 수 있습니다.
  • 다양한 서비스 유형 식별: UDP 를 사용하는 서비스 (예: DNS, NTP) 와 TCP 를 사용하는 서비스 (예: HTTP, SSH) 를 식별할 수 있습니다.

중요 참고 사항:

스캔 유형을 결합하면 스캔 시간이 늘어날 수 있습니다. 더 빠른 결과가 필요한 경우 특정 포트를 대상으로 지정하는 것을 고려하십시오.

nmap 으로 버전 탐지 추가 -sUV 192.168.1.1

이 단계에서는 UDP 스캔에 버전 감지를 추가합니다. 버전 감지를 통해 Nmap 은 열린 포트에서 실행 중인 응용 프로그램 이름과 버전 번호를 확인하려고 시도할 수 있습니다. 이는 잠재적인 취약점에 대한 귀중한 정보를 제공할 수 있습니다.

Nmap 의 -sV 옵션은 버전 감지를 활성화합니다. UDP 스캔을 위한 -sU와 결합하면 -sUV가 됩니다. Nmap 은 열린 UDP 포트로 프로브를 보내 서비스 및 해당 버전을 식별하려고 시도합니다.

192.168.1.1에서 버전 감지를 사용하여 UDP 스캔을 수행하려면 다음 명령을 사용하십시오.

sudo nmap -sUV 192.168.1.1

이 명령은 Nmap 에게 IP 주소 192.168.1.1에 대해 UDP 스캔 (-sU) 과 버전 감지 (-sV) 를 수행하도록 지시합니다. 결합된 옵션은 -sUV입니다. 이전과 마찬가지로 UDP 스캔에는 종종 sudo가 필요합니다.

명령을 실행하면 다음과 유사한 출력이 표시될 수 있습니다.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00088s latency).
Not shown: 997 closed udp ports
PORT      STATE         SERVICE VERSION
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
5353/udp  open|filtered zeroconf  Apple Bonjour
Service Info: OS: Apple embedded

Nmap done: 1 IP address (1 host up) scanned in 12.54 seconds

출력 설명:

  • 이제 출력에는 감지된 서비스 버전 (사용 가능한 경우) 을 표시하는 VERSION 열이 포함됩니다.
  • 5353/udp open|filtered zeroconf Apple Bonjour: Nmap 은 포트 5353 에서 실행 중인 서비스를 Apple Bonjour 로 식별했습니다.
  • Service Info: OS: Apple embedded: Nmap 은 또한 서비스 정보를 기반으로 운영 체제를 확인하려고 시도합니다.

핵심 내용:

  • -sV 옵션 (또는 UDP 스캔과 결합된 경우 -sUV) 은 버전 감지를 활성화합니다.
  • 버전 감지는 열린 포트에서 실행 중인 특정 응용 프로그램 및 버전을 식별하는 데 도움이 될 수 있습니다.
  • 이 정보는 잠재적인 취약점을 평가하고 추가 조치를 계획하는 데 사용할 수 있습니다.

중요 고려 사항:

  • Nmap 이 각 열린 포트로 추가 프로브를 보내야 하므로 버전 감지는 단순한 포트 스캔보다 시간이 더 오래 걸릴 수 있습니다.
  • 버전 감지의 정확성은 서비스 및 사용 가능한 Nmap 시그니처에 따라 다릅니다. 경우에 따라 Nmap 이 서비스 또는 해당 버전을 정확하게 식별하지 못할 수 있습니다.

Xfce 터미널에서 UDP 결과 보기

이 단계에서는 Xfce 터미널 내에서 직접 UDP 스캔 결과를 보고 분석하는 데 중점을 둡니다. Nmap 은 터미널에 직접 출력을 제공하지만, 더 쉽게 검토하고 분석하기 위해 출력을 파일에 저장하는 것이 유용할 때가 있습니다. 터미널 명령을 사용하여 스캔의 UDP 관련 부분을 필터링하고 봅니다.

먼저 UDP 스캔을 실행하고 출력을 파일에 저장해 보겠습니다. 이렇게 하면 결과를 더 쉽게 사용할 수 있습니다. -oN 옵션을 사용하여 출력을 "일반" 형식으로 저장합니다.

sudo nmap -sUV 192.168.1.1 -oN udp_scan_results.txt

이 명령은 192.168.1.1에서 버전 감지를 사용하여 UDP 스캔을 수행하고 출력을 현재 디렉토리 (~/project) 의 udp_scan_results.txt라는 파일에 저장합니다.

이제 결과를 파일에 저장했으므로 터미널 명령을 사용하여 UDP 관련 정보를 보고 필터링할 수 있습니다.

파일의 전체 내용을 보려면 cat 명령을 사용할 수 있습니다.

cat udp_scan_results.txt

이렇게 하면 전체 Nmap 스캔 보고서가 터미널에 표시됩니다. 그러나 우리는 주로 UDP 결과에 관심이 있습니다. grep 명령을 사용하여 출력을 필터링하고 "udp"를 포함하는 줄만 표시할 수 있습니다.

grep "udp" udp_scan_results.txt

이 명령은 udp_scan_results.txt 파일에서 문자열 "udp"를 포함하는 줄을 검색하고 해당 줄을 터미널에 표시합니다. 출력은 열린 또는 필터링된 UDP 포트와 Nmap 이 감지할 수 있었던 모든 버전 정보를 보여줍니다.

예시 출력:

137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
5353/udp  open|filtered zeroconf  Apple Bonjour

less 명령을 사용하여 파일을 페이지별로 볼 수도 있습니다.

less udp_scan_results.txt

less 내부에서 /udp를 입력하고 Enter 키를 눌러 "udp"를 검색할 수 있습니다. n을 눌러 다음 일치 항목으로 이동합니다. q를 눌러 less를 종료합니다.

이러한 간단한 터미널 명령을 사용하면 Nmap 에서 생성된 UDP 스캔 결과를 효과적으로 보고 분석할 수 있습니다. 이를 통해 열린 UDP 포트와 관련 서비스 정보를 빠르게 식별할 수 있습니다.

Xfce 텍스트 편집기에서 출력 비교

이 단계에서는 Xfce 텍스트 편집기를 사용하여 서로 다른 Nmap 스캔의 출력을 비교합니다. 이는 시간이 지남에 따라 열린 포트, 서비스 또는 버전의 변경 사항을 식별하거나, 서로 다른 옵션으로 스캔한 결과를 비교하는 데 유용합니다.

먼저, 이미 두 개의 Nmap 스캔을 수행하고 출력을 별도의 파일에 저장했다고 가정해 보겠습니다. 예를 들어, 기본 UDP 스캔과 버전 감지를 사용한 UDP 스캔을 실행하고 결과를 각각 udp_scan_basic.txtudp_scan_version.txt에 저장했을 수 있습니다. 이러한 파일이 없는 경우 다음 명령을 사용하여 만듭니다.

sudo nmap -sU 192.168.1.1 -oN udp_scan_basic.txt
sudo nmap -sUV 192.168.1.1 -oN udp_scan_version.txt

이제 xfce4-terminal 명령을 사용하여 Xfce 텍스트 편집기 (mousepad) 를 열고 비교를 위해 두 파일을 모두 로드합니다.

mousepad udp_scan_basic.txt udp_scan_version.txt

이 명령은 mousepad의 두 인스턴스를 열어 각각 Nmap 출력 파일 중 하나를 표시합니다.

출력 비교:

  1. 기본 스캔 출력 검토 (udp_scan_basic.txt): 이 파일에는 기본 UDP 스캔의 결과가 포함되어 있으며, 열린 또는 필터링된 UDP 포트를 보여줍니다.

  2. 버전 감지 스캔 출력 검토 (udp_scan_version.txt): 이 파일에는 버전 감지를 사용한 UDP 스캔의 결과가 포함됩니다. 열린 또는 필터링된 UDP 포트 외에도 감지된 서비스 버전도 표시될 수 있습니다.

  3. 나란히 비교: 두 파일을 별도의 창에서 열어두면 결과를 나란히 쉽게 비교할 수 있습니다. 열린 포트, 포트 상태 (열림, 필터링됨, 닫힘) 및 서비스 정보의 차이점을 확인하십시오.

예시 비교:

  • udp_scan_basic.txt는 다음과 같이 표시될 수 있습니다.

    137/udp   open|filtered netbios-ns
    138/udp   open|filtered netbios-dgm
    5353/udp  open|filtered zeroconf
  • udp_scan_version.txt는 다음과 같이 표시될 수 있습니다.

    137/udp   open|filtered netbios-ns
    138/udp   open|filtered netbios-dgm
    5353/udp  open|filtered zeroconf  Apple Bonjour
    Service Info: OS: Apple embedded

이 예에서 버전 감지 스캔은 포트 5353 에서 실행 중인 서비스를 "Apple Bonjour"로 식별하고 기본 스캔에서는 사용할 수 없었던 OS 정보를 제공할 수 있었습니다.

Xfce 텍스트 편집기에서 출력을 비교하면 스캔 간의 차이점과 서로 다른 Nmap 옵션에서 제공하는 추가 정보에 대한 더 나은 이해를 얻을 수 있습니다. 이는 잠재적인 취약점을 식별하고 추가 조치를 계획하는 데 유용할 수 있습니다.

요약

이 랩에서는 참가자들이 Nmap 을 사용하여 UDP 스캔을 실행하는 방법을 배웠습니다. 그들은 IP 192.168.1.1에서 -sU 옵션을 사용하여 기본 UDP 스캔을 시작했으며, UDP 가 비연결형이며 스캔이 TCP 스캔보다 신뢰성이 떨어질 수 있음을 이해했습니다. 또한 특정 UDP 포트를 스캔하고, UDP 및 TCP 스캔을 결합하고, 버전 감지를 추가하고, Xfce 터미널 및 텍스트 편집기에서 결과를 보고 비교했습니다.