소개
이 랩에서는 Nmap 을 사용하여 UDP 스캔을 실행하는 방법을 배우게 됩니다. 먼저 -sU 옵션을 사용하여 대상 IP 주소에 대한 기본적인 UDP 스캔을 수행하는 것으로 시작합니다. 그런 다음 특정 UDP 포트를 스캔하고, UDP 및 TCP 스캔을 결합하며, 버전 감지를 추가합니다. 마지막으로 Xfce 터미널에서 UDP 스캔 결과를 확인하고 Xfce 텍스트 편집기에서 출력을 비교합니다.
이 랩에서는 Nmap 을 사용하여 UDP 스캔을 실행하는 방법을 배우게 됩니다. 먼저 -sU 옵션을 사용하여 대상 IP 주소에 대한 기본적인 UDP 스캔을 수행하는 것으로 시작합니다. 그런 다음 특정 UDP 포트를 스캔하고, UDP 및 TCP 스캔을 결합하며, 버전 감지를 추가합니다. 마지막으로 Xfce 터미널에서 UDP 스캔 결과를 확인하고 Xfce 텍스트 편집기에서 출력을 비교합니다.
이 단계에서는 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 스캔을 집중합니다. 이는 모든 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 옵션을 사용하면 특정 포트를 대상으로 지정하여 스캔을 보다 효율적으로 만들 수 있습니다.이 단계에서는 단일 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 스캔에 버전 감지를 추가합니다. 버전 감지를 통해 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) 은 버전 감지를 활성화합니다.중요 고려 사항:
이 단계에서는 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 텍스트 편집기를 사용하여 서로 다른 Nmap 스캔의 출력을 비교합니다. 이는 시간이 지남에 따라 열린 포트, 서비스 또는 버전의 변경 사항을 식별하거나, 서로 다른 옵션으로 스캔한 결과를 비교하는 데 유용합니다.
먼저, 이미 두 개의 Nmap 스캔을 수행하고 출력을 별도의 파일에 저장했다고 가정해 보겠습니다. 예를 들어, 기본 UDP 스캔과 버전 감지를 사용한 UDP 스캔을 실행하고 결과를 각각 udp_scan_basic.txt 및 udp_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 출력 파일 중 하나를 표시합니다.
출력 비교:
기본 스캔 출력 검토 (udp_scan_basic.txt): 이 파일에는 기본 UDP 스캔의 결과가 포함되어 있으며, 열린 또는 필터링된 UDP 포트를 보여줍니다.
버전 감지 스캔 출력 검토 (udp_scan_version.txt): 이 파일에는 버전 감지를 사용한 UDP 스캔의 결과가 포함됩니다. 열린 또는 필터링된 UDP 포트 외에도 감지된 서비스 버전도 표시될 수 있습니다.
나란히 비교: 두 파일을 별도의 창에서 열어두면 결과를 나란히 쉽게 비교할 수 있습니다. 열린 포트, 포트 상태 (열림, 필터링됨, 닫힘) 및 서비스 정보의 차이점을 확인하십시오.
예시 비교:
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 터미널 및 텍스트 편집기에서 결과를 보고 비교했습니다.