Nmap 에서 TCP 및 UDP 스캔 결합하기

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 에서 TCP 및 UDP 스캔을 결합하는 방법을 배우게 됩니다. 이 랩은 대상 IP 에 대한 결합된 스캔 실행, 특정 포트 스캔, 스캔에 상세 정보 추가, 결합된 결과 저장, TCP 및 UDP 출력 비교, Xfce 터미널에서 결과 분석을 다룹니다. nmap -sS -sU와 같은 명령을 다양한 옵션과 함께 사용하여 다양한 스캔 작업을 수행합니다.

실제 시나리오에서는 명시적인 권한이 있는 네트워크와 호스트만 스캔해야 합니다. 이 랩에서는 192.168.1.1을 사용하거나 필요한 경우 LabEx VM 의 IP 로 대체할 수 있습니다.

nmap -sS -sU 192.168.1.1 로 결합된 스캔 실행

이 단계에서는 Nmap 을 사용하여 TCP SYN (stealth) 스캔과 UDP 스캔을 결합하여 수행하는 방법을 배우게 됩니다. 이러한 유형의 스캔은 대상 호스트에서 실행 중인 TCP 및 UDP 서비스를 모두 식별하는 데 유용합니다.

시작하기 전에, 명령에 사용된 플래그에 대해 간략하게 설명하겠습니다.

  • -sS: 이 플래그는 Nmap 에게 TCP SYN 스캔을 수행하도록 지시합니다. 이는 stealth 스캔이라고도 합니다. 전체 TCP 핸드셰이크를 완료하지 않으므로 "stealth"라고 불리며, 대상에 의해 로깅될 가능성이 적습니다.
  • -sU: 이 플래그는 Nmap 에게 UDP 스캔을 수행하도록 지시합니다. UDP 는 비연결형 프로토콜이므로 UDP 스캔은 일반적으로 TCP 스캔보다 느리고 신뢰성이 떨어집니다.
  • 192.168.1.1: 이것은 스캔할 대상 IP 주소입니다. 참고: 실제 시나리오에서는 스캔할 명시적인 권한이 있는 네트워크와 호스트만 스캔해야 합니다. 이 랩에서는 192.168.1.1이 테스트 환경 내의 유효한 대상이라고 가정합니다. 이 주소에 호스트가 없는 경우 LabEx VM 의 IP 주소 (일반적으로 127.0.0.1 또는 localhost) 로 대체할 수 있습니다.

이제 결합된 스캔을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력합니다.

sudo nmap -sS -sU 192.168.1.1

비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지므로 Enter 키를 누르십시오.

출력은 대상 호스트의 TCP 및 UDP 프로토콜에 대한 열린 포트, 닫힌 포트 또는 필터링된 포트를 표시합니다. 특히 UDP 스캔은 완료하는 데 몇 분 정도 걸릴 수 있습니다.

예시 출력 (실제 출력은 대상 호스트에 따라 다릅니다):

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.00020s latency).
Not shown: 998 closed tcp ports (reset)
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 996 closed udp ports (reset)
PORT      STATE         SERVICE
53/udp    open|filtered domain
67/udp    open|filtered dhcps
137/udp   open|filtered netbios-ns

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

이 예에서 Nmap 은 TCP 포트 22 와 80 이 열려 있고 UDP 포트 53, 67, 137 이 열려 있거나 필터링된 것을 발견했습니다. open|filtered 상태는 네트워크 조건 또는 방화벽 규칙으로 인해 Nmap 이 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없음을 의미합니다.

nmap -sS -sU -p 22,53 127.0.0.1 로 특정 포트 스캔

이전 단계에서는 대상 호스트에서 TCP 및 UDP 스캔을 결합하여 수행했습니다. 이제 Nmap 을 사용하여 특정 포트를 스캔하는 방법을 배우게 됩니다. 이는 특정 서비스 또는 취약점에 스캔을 집중하려는 경우 유용합니다.

Nmap 의 -p 옵션을 사용하면 스캔하려는 포트를 지정할 수 있습니다. 단일 포트, 포트 범위 또는 쉼표로 구분된 포트 목록을 지정할 수 있습니다.

이 단계에서는 localhost (127.0.0.1) 에서 포트 22 (SSH) 및 53 (DNS) 를 스캔합니다.

Xfce 터미널을 열고 다음 명령을 입력합니다.

sudo nmap -sS -sU -p 22,53 127.0.0.1

다시 비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지므로 Enter 키를 누르십시오.

이 명령은 Nmap 에게 localhost 의 포트 22 와 53 에서 TCP SYN 스캔과 UDP 스캔을 수행하도록 지시합니다.

예시 출력 (실제 출력은 다를 수 있습니다):

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.000027s latency).

PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).

PORT   STATE         SERVICE
53/udp open|filtered domain

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

이 예에서 Nmap 은 TCP 포트 22 (SSH) 가 열려 있고 UDP 포트 53 (DNS) 이 열려 있거나 필터링된 것을 발견했습니다. open|filtered 상태는 네트워크 조건 또는 방화벽 규칙으로 인해 Nmap 이 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없음을 의미합니다. localhost 를 스캔하고 있으므로 서비스가 실행 중일 가능성이 높지만 방화벽이 스캔을 방해할 수 있습니다.

스캔할 포트를 지정하면 스캔 시간을 크게 줄이고 관심 있는 서비스에 집중할 수 있습니다.

nmap -v -sS -sU 192.168.1.1 로 상세 정보 추가

이 단계에서는 Nmap 스캔의 상세 정보 수준을 높이는 방법을 배우게 됩니다. 상세 정보는 스캔 프로세스에 대한 더 자세한 정보를 제공하며, 문제 해결 또는 Nmap 의 동작 이해에 도움이 될 수 있습니다.

Nmap 의 -v 옵션은 상세 정보 수준을 높입니다. 더 자세한 출력을 위해 여러 번 사용할 수 있습니다 (예: -vv).

첫 번째 단계에서 수행한 결합된 TCP SYN 및 UDP 스캔에 상세 정보를 추가해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력합니다.

sudo nmap -v -sS -sU 192.168.1.1

비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지므로 Enter 키를 누르십시오.

이 명령은 이전과 동일한 결합된 스캔을 수행하지만 상세 정보 수준이 높아집니다.

예시 출력 (실제 출력은 대상 호스트 및 상세 정보 수준에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating SYN Stealth Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Completed SYN Stealth Scan at 10:10, 0.00s elapsed (1000 total ports)
Initiating UDP Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Completed UDP Scan at 10:10, 5.00s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 998 closed tcp ports (reset)
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 996 closed udp ports (reset)
PORT      STATE         SERVICE
53/udp    open|filtered domain
67/udp    open|filtered dhcps
137/udp   open|filtered netbios-ns

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

이제 출력에 스캔 시작, 스캔 중인 포트 수, 각 스캔 단계에 소요된 시간에 대한 정보가 포함되어 있음을 알 수 있습니다. 이는 스캔 진행 상황을 모니터링하고 잠재적인 문제를 식별하는 데 도움이 될 수 있습니다.

nmap -sS -sU -oN tcpudp.txt 127.0.0.1 로 결과 저장

이 단계에서는 Nmap 스캔 결과를 파일에 저장하는 방법을 배우게 됩니다. 이는 나중에 분석, 보고 또는 이전 스캔과의 비교에 유용합니다.

Nmap 은 다양한 형식으로 스캔 결과를 저장하기 위한 여러 옵션을 제공합니다. -oN 옵션은 결과를 "일반" 사람이 읽을 수 있는 형식으로 저장합니다.

이 단계에서는 localhost (127.0.0.1) 에 대한 결합된 TCP SYN 및 UDP 스캔의 결과를 ~/project 디렉토리의 tcpudp.txt라는 파일에 저장합니다.

Xfce 터미널을 열고 다음 명령을 입력합니다.

sudo nmap -sS -sU -oN tcpudp.txt 127.0.0.1

비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지므로 Enter 키를 누르십시오.

이 명령은 결합된 스캔을 수행하고 결과를 tcpudp.txt 파일에 저장합니다.

스캔이 완료된 후 cat 명령을 사용하여 파일의 내용을 볼 수 있습니다.

cat tcpudp.txt

예시 출력 (실제 출력은 다를 수 있습니다):

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023 as: nmap -sS -sU -oN tcpudp.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).

PORT   STATE         SERVICE
53/udp open|filtered domain

## Nmap done at Fri Oct 27 10:15:01 2023 -- 1 IP address (1 host up) scanned in 1.50 seconds

출력은 열린 포트와 관련 서비스를 포함하여 사람이 읽을 수 있는 형식으로 스캔 결과를 보여줍니다. 파일에는 Nmap 버전, 스캔 시작 시간 및 스캔 기간에 대한 정보도 포함되어 있습니다.

이제 이 파일을 추가 분석 또는 보고에 사용할 수 있습니다.

Xfce 터미널에서 TCP 및 UDP 출력 비교

이 단계에서는 TCP 및 UDP 스캔 결과를 비교하여 각 프로토콜에서 실행 중인 서비스의 차이점을 이해합니다. 이전 단계에서 생성된 tcpudp.txt 파일의 출력을 필터링하기 위해 grep 명령을 사용하고 차이점을 관찰합니다.

먼저 cat 명령을 사용하여 tcpudp.txt 파일의 내용을 표시해 보겠습니다.

cat tcpudp.txt

localhost (127.0.0.1) 에 대한 결합된 TCP 및 UDP 스캔 결과를 볼 수 있습니다.

이제 출력을 필터링하여 TCP 스캔 결과만 표시해 보겠습니다. grep 명령을 사용하여 "tcp"를 포함하는 줄을 검색합니다.

grep "tcp" tcpudp.txt

예시 출력:

22/tcp open  ssh

이는 localhost 에서 열린 TCP 포트를 보여줍니다. 이 예에서는 포트 22 (SSH) 가 열려 있습니다.

다음으로, 출력을 필터링하여 UDP 스캔 결과만 표시해 보겠습니다. grep 명령을 사용하여 "udp"를 포함하는 줄을 검색합니다.

grep "udp" tcpudp.txt

예시 출력:

53/udp open|filtered domain

이는 localhost 에서 열리거나 필터링된 UDP 포트를 보여줍니다. 이 예에서는 포트 53 (domain) 이 열리거나 필터링되었습니다.

TCP 및 UDP 출력을 비교하여 각 프로토콜에서 어떤 서비스가 실행 중인지 확인할 수 있습니다. TCP 는 일반적으로 SSH 와 같은 신뢰할 수 있는 연결 지향 서비스에 사용되는 반면, UDP 는 DNS (domain) 와 같은 비연결 서비스에 자주 사용됩니다. UDP 의 open|filtered 상태는 UDP 프로토콜의 특성으로 인해 Nmap 이 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없음을 나타냅니다.

요약하면, grep을 사용하여 결합된 TCP 및 UDP 스캔의 출력을 필터링함으로써 각 프로토콜에서 실행 중인 서비스를 쉽게 식별하고 대상 호스트에서 사용 가능한 네트워크 서비스에 대한 더 나은 이해를 얻을 수 있습니다.

Xfce 터미널에서 결과 분석

이 단계에서는 Nmap 스캔 결과를 분석하여 잠재적인 취약점을 식별하고 대상 시스템에서 실행 중인 서비스를 이해합니다. 이전 단계에서 수집한 정보를 사용하여 대상의 보안 상태에 대한 결론을 도출합니다.

먼저 localhost (127.0.0.1) 에 대한 결합된 TCP 및 UDP 스캔 결과를 포함하는 tcpudp.txt 파일의 내용을 검토해 보겠습니다.

cat tcpudp.txt

출력을 기반으로 다음을 식별할 수 있습니다.

  • 열린 포트 (Open Ports): 스캔은 대상 시스템에서 어떤 포트가 열려 있는지 보여줍니다. 열린 포트는 연결을 적극적으로 수신 대기하는 서비스를 나타냅니다.
  • 서비스 (Services): Nmap 은 각 열린 포트에서 실행 중인 서비스를 식별하려고 시도합니다. 이 정보는 각 포트의 목적과 해당 서비스와 관련된 잠재적 취약점을 이해하는 데 사용될 수 있습니다.
  • TCP vs. UDP: 스캔은 TCP 및 UDP 서비스를 구분합니다. TCP 는 연결 지향적이며 일반적으로 신뢰할 수 있는 데이터 전송에 사용되는 반면, UDP 는 비연결적이며 종종 더 빠르고 덜 신뢰할 수 있는 통신에 사용됩니다.
  • 필터링된 포트 (Filtered Ports): UDP 스캔의 경우 Nmap 은 포트를 "open|filtered"로 보고할 수 있습니다. 이는 UDP 가 연결을 설정하기 위해 핸드셰이크를 필요로 하지 않기 때문에 Nmap 이 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없음을 의미합니다.

이제 결과를 자세히 분석해 보겠습니다.

이전 단계에서 localhost (127.0.0.1) 를 스캔했으며 포트 22/tcp (SSH) 및 53/udp (domain) 이 열리거나 필터링된 것을 발견했습니다.

  • 포트 22 (SSH): SSH 는 원격 관리 및 파일 전송에 사용되는 보안 셸 프로토콜입니다. SSH 가 실행 중인 경우 무단 액세스를 방지하기 위해 강력한 암호 또는 키 기반 인증으로 안전하게 구성되었는지 확인하는 것이 중요합니다.
  • 포트 53 (domain): 포트 53 은 일반적으로 DNS (Domain Name System) 서비스에 사용됩니다. 이 포트가 열려 있으면 시스템이 DNS 서버를 실행 중일 수 있음을 나타냅니다. DNS 서버는 DNS 스푸핑 및 캐시 포이즈닝과 같은 다양한 공격에 취약할 수 있으므로 최신 보안 패치로 최신 상태를 유지하는 것이 중요합니다.

결과를 더 자세히 분석하기 위해 Nmap 의 스크립팅 엔진 (NSE) 을 사용하여 보다 심층적인 취약점 스캔을 수행할 수 있습니다. 그러나 이것은 이 랩의 범위를 벗어납니다.

결론적으로, Nmap 스캔 결과를 분석하여 대상 시스템에서 실행 중인 서비스에 대한 귀중한 통찰력을 얻고 해결해야 할 잠재적 취약점을 식별할 수 있습니다. 네트워크 또는 시스템을 스캔하기 전에 항상 적절한 권한을 얻는 것을 잊지 마십시오.

요약

이 랩에서는 Nmap 을 사용하여 TCP 및 UDP 스캔을 결합하는 방법을 배웠습니다. 대상 IP 주소에서 nmap -sS -sU 명령을 사용하여 결합된 스캔을 실행했습니다. 여기서 -sS는 TCP SYN 스캔을 수행하고 -sU는 UDP 스캔을 수행합니다. 또한 특정 포트를 스캔하고, 스캔에 상세 정보를 추가하고, 결합된 결과를 파일에 저장하는 방법을 배웠습니다.

또한 Xfce 터미널에서 TCP 및 UDP 출력을 비교하고 분석하라는 지시를 받았습니다. 실제 시나리오에서는 명시적인 권한이 있는 네트워크 및 호스트만 스캔해야 합니다.