Nmap 으로 UDP 포트 스캔 수행

NmapBeginner
지금 연습하기

소개

이 랩에서는 네트워크 보안 전문가에게 필수적인 기술인 UDP (User Datagram Protocol) 포트 스캐닝을 위해 Nmap 을 사용하는 방법을 배우게 됩니다. 연결이 없는 프로토콜인 UDP 는 데이터 전송 전에 전용 종단 간 연결을 설정하지 않습니다. 이로 인해 TCP 보다 빠르지만 신뢰성은 떨어집니다.

네트워크 스캐닝은 사이버 보안에서 매우 중요하며, 전문가가 열린 포트, 실행 중인 서비스 및 잠재적인 취약점을 식별할 수 있도록 합니다. 네트워크 검색 및 보안 감사를 위한 강력한 오픈 소스 도구인 Nmap 은 시스템 관리자와 사이버 보안 전문가가 널리 사용합니다. 이 랩을 마치면 UDP 서버 설정, Nmap 을 사용한 기본적인 UDP 포트 스캐닝 수행, 스캔 결과 해석을 마스터하게 됩니다. 이는 네트워크 탐색 및 보안 평가에 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 99%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

UDP 서버 설정

이 단계에서는 UDP 서버를 설정합니다. 이 서버는 Nmap 스캔의 대상 역할을 합니다. 이렇게 함으로써 UDP 서비스가 어떻게 작동하고 스캐닝 도구가 이를 어떻게 감지하는지 더 잘 이해할 수 있습니다.

UDP 프로토콜 이해

서버 설정을 시작하기 전에 UDP (User Datagram Protocol) 가 무엇인지 잠시 살펴보겠습니다. UDP 는 인터넷 프로토콜 (IP) 제품군의 중요한 부분입니다.

  • UDP 는 비연결형 프로토콜입니다. 즉, TCP 와 달리 데이터를 전송하기 전에 연결을 설정하지 않습니다. TCP 를 사용할 때는 먼저 송신자와 수신자 간에 연결이 설정되지만 UDP 는 이 단계를 건너뜁니다.
  • UDP 는 TCP 보다 빠릅니다. 연결을 설정하는 과정을 거칠 필요가 없으므로 데이터를 더 빠르게 보낼 수 있습니다. 그러나 이 속도에는 대가가 따릅니다. UDP 는 데이터가 전달될 것이라는 보장, 올바른 순서로 도착할 것이라는 보장, 중복 데이터가 없을 것이라는 보장이 없기 때문에 TCP 보다 신뢰성이 떨어집니다.
  • UDP 는 속도가 신뢰성보다 더 중요한 애플리케이션에서 일반적으로 사용됩니다. 예를 들어, 비디오 및 음악과 같은 스트리밍 미디어, 온라인 게임, DNS 조회는 모두 UDP 에 의존합니다. 이러한 경우 데이터 전송의 작은 지연이 약간의 데이터 손실보다 더 눈에 띄고 방해가 될 수 있습니다.

UDP 서버 설정

UDP 서버를 설정하기 위해 netcat이라는 도구를 사용합니다. 이는 종종 nc로 축약됩니다. netcat은 TCP 또는 UDP 를 사용하여 네트워크 연결에서 읽고 쓸 수 있는 매우 유용한 네트워킹 유틸리티입니다.

  1. 먼저 터미널 창을 엽니다. 터미널이 열리면 프로젝트 디렉토리로 이동해야 합니다. 이 랩과 관련된 모든 파일과 구성이 여기에 있습니다. 터미널에서 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
cd /home/labex/project
  1. 이제 UDP 서버를 시작할 차례입니다. 서버가 포트 9999 에서 수신 대기하도록 하려고 합니다. 다음 명령으로 서버를 시작할 수 있습니다.
nc -u -l -p 9999 -k

이 명령의 각 옵션이 의미하는 바를 자세히 살펴보겠습니다.

  • -u: 이 옵션은 netcat에게 기본 TCP 대신 UDP 를 사용하도록 지시합니다. UDP 서버를 설정하므로 이를 지정해야 합니다.
  • -l: 이 옵션은 netcat을 수신 모드로 설정합니다. 수신 모드에서 netcat은 서버 역할을 하며 들어오는 연결을 기다립니다.
  • -p 9999: 이 옵션은 서버가 수신 대기할 포트 번호를 지정합니다. 이 경우 포트 9999 를 선택했습니다.
  • -k: 이 옵션은 클라이언트가 연결을 끊은 후에도 서버가 계속 실행되도록 지시합니다. 이는 클라이언트가 떠날 때마다 서버를 다시 시작하지 않고도 새 연결을 수락할 수 있으므로 유용합니다.

이 명령을 실행하면 터미널이 멈추거나 멈춘 것처럼 보일 수 있습니다. 이것은 정상적인 동작입니다. 이는 netcat이 이제 포트 9999 에서 들어오는 UDP 연결을 활발하게 수신 대기하고 있음을 의미합니다.

이 터미널 창을 열어 두십시오. 다음 단계에 필요합니다. 랩을 계속하려면 새 터미널 창을 열어야 합니다.

기본 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 스캔 수행

  1. 먼저 새 터미널 창을 엽니다. UDP 서버가 실행 중인 이전 터미널을 유지하십시오. 이 터미널에서 현재 활성 상태인 UDP 서버를 스캔할 것이므로 중요합니다.

  2. 다음으로 프로젝트 디렉토리로 이동해야 합니다. 새 터미널에서 다음 명령을 실행합니다.

cd /home/labex/project

이 명령은 현재 작업 디렉토리를 관련 파일과 구성이 모두 있는 프로젝트 디렉토리로 변경합니다.

  1. 이제 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라는 파일로 리디렉션합니다. 이렇게 하면 나중에 결과를 검토할 수 있습니다.
  1. 스캔이 완료되면 결과를 볼 수 있습니다. 다음 명령을 실행합니다.
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 포트의 상태를 정확하게 결정하는 것을 조금 더 어렵게 만듭니다.

요약

이 랩에서는 네트워크 보안 평가에 필수적인 기술인 UDP 포트 스캐닝을 위해 Nmap 을 사용하는 방법을 배웠습니다. 먼저, 스캔을 위한 실질적인 대상을 만들기 위해 netcat 으로 UDP 서버를 설정했습니다. 그런 다음, 서버가 수신 대기 중인 특정 포트에서 기본적인 Nmap UDP 스캔을 수행했습니다.

또한 UDP 프로토콜과 TCP 와의 차이점을 이해하고, netcat 을 사용하여 기본 UDP 서버를 설정하고, Nmap 을 사용하여 열린 UDP 포트를 스캔하고, UDP 스캔 결과를 해석하는 실질적인 경험을 얻었습니다. 이러한 기술은 보다 진보된 네트워크 스캐닝 및 보안 평가의 기본입니다. DNS, DHCP, 스트리밍 프로토콜과 같은 많은 중요한 서비스가 UDP 를 사용하므로 UDP 스캐닝은 매우 중요합니다.

사이버 보안 여정을 진행하면서 네트워크 스캐닝은 포괄적인 보안 평가의 일부일 뿐임을 기억하십시오. 항상 소유하고 있거나 스캔할 명시적인 권한이 있는 시스템을 스캔하십시오.