Nmap 으로 포괄적인 스캔 수행

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 포괄적인 스캔을 수행하는 방법을 배우게 됩니다. 이 랩은 대상에 대한 자세한 정보를 수집하기 위해 다양한 스캔 유형을 결합하는 데 중점을 둡니다.

-sS (TCP SYN 스캔), -sU (UDP 스캔), -O (OS 탐지), -sV (서비스 버전 탐지) 와 같은 옵션을 사용하여 전체 스캔을 실행합니다. 또한 -sC를 사용하여 스크립트를 추가하고, -T3으로 타이밍을 조정하고, -v로 상세도를 높이고, -oN을 사용하여 스캔 결과를 파일에 저장하는 방법을 살펴봅니다. 마지막으로, Xfce 터미널에서 이러한 스캔으로 생성된 포괄적인 출력을 분석합니다.

nmap -sS -sU -O -sV 192.168.1.1 로 전체 스캔 실행

이 단계에서는 Nmap 을 사용하여 대상 IP 주소에 대한 전체 스캔을 수행합니다. 전체 스캔은 대상에 대한 포괄적인 정보를 수집하기 위해 여러 스캔 유형을 결합합니다. 여기에는 TCP SYN 스캔 (-sS), UDP 스캔 (-sU), OS 탐지 (-O) 및 서비스 버전 탐지 (-sV) 가 포함됩니다.

시작하기 전에 각 Nmap 옵션에 대해 간략하게 설명하겠습니다.

  • -sS: TCP SYN 스캔 (스텔스 스캔 또는 반개방형 스캔이라고도 함). TCP 연결을 완료하지 않는 빠르고 스텔스한 스캔입니다.
  • -sU: UDP 스캔. UDP 패킷을 대상에 보내고 응답을 수신하여 어떤 UDP 포트가 열려 있는지 확인합니다.
  • -O: OS 탐지. TCP/IP 스택 지문을 분석하여 대상 호스트의 운영 체제를 식별하려고 시도합니다.
  • -sV: 서비스 버전 탐지. 열린 포트에서 실행 중인 소프트웨어의 버전을 확인합니다.

이제 전체 스캔 명령을 실행해 보겠습니다. IP 주소 192.168.1.1을 스캔합니다. 대상 IP 주소가 LabEx VM 에서 도달 가능한지 확인하십시오. 특정 대상을 염두에 두고 있지 않다면, 자신의 컴퓨터 IP 주소 또는 로컬 네트워크 내의 테스트 IP 주소를 사용할 수 있습니다.

Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 그런 다음 다음 명령을 실행합니다.

nmap -sS -sU -O -sV 192.168.1.1

이 명령은 대상 IP 주소 192.168.1.1에 대한 전체 스캔을 시작합니다. Nmap 은 TCP SYN 스캔, UDP 스캔, OS 탐지 및 서비스 버전 탐지를 수행합니다.

출력에는 열린 포트, 해당 포트에서 실행 중인 서비스, 대상의 운영 체제 및 기타 관련 정보가 표시됩니다.

예시 출력 (실제 출력은 대상에 따라 다름):

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.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

OS details: Linux 3.2 - 4.9
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.20 ms 192.168.1.1

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

이 출력은 열린 포트 (예: 22, 80, 139, 445), 해당 포트에서 실행 중인 서비스 (예: ssh, http, netbios-ssn, microsoft-ds) 및 대상의 운영 체제 (Linux) 를 보여줍니다. UDP 스캔 결과는 포트 5353 이 열려 있음을 보여줍니다.

nmap -sS -sU -sC -p 22,80 127.0.0.1 로 스크립트 추가

이 단계에서는 Nmap 스크립트를 통합하여 Nmap 스캔을 향상시킬 것입니다. Nmap 스크립트는 취약성 탐지, 서비스 열거 등과 같은 다양한 작업을 자동화할 수 있는 강력한 도구입니다. -sC 옵션은 Nmap 에게 기본 스크립트 세트를 사용하도록 지시합니다. 또한 -p 옵션을 사용하여 스캔할 포트를 지정합니다.

진행하기 전에 -sC-p 옵션의 목적을 명확히 하겠습니다.

  • -sC: 이 옵션은 Nmap 에게 대상을 상대로 기본 스크립트 세트를 실행하도록 지시합니다. 이러한 스크립트는 대상에서 실행 중인 서비스에 대한 기본 정보를 제공하도록 설계되었습니다.
  • -p: 이 옵션을 사용하면 스캔하려는 포트를 지정할 수 있습니다. 이 경우 포트 22 와 80 을 지정합니다.

이제 명령을 실행해 보겠습니다. 기본 스크립트를 사용하여 포트 22 와 80 에서 127.0.0.1 (localhost) 을 스캔합니다.

Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 그런 다음 다음 명령을 실행합니다.

nmap -sS -sU -sC -p 22,80 127.0.0.1

이 명령은 로컬 호스트 (127.0.0.1) 의 포트 22 와 80 에서 SYN 스캔 (-sS) 및 UDP 스캔 (-sU) 을 수행하며, 해당 포트에 대해 기본 스크립트 (-sC) 도 실행합니다.

출력에는 열린 포트, 해당 포트에서 실행 중인 서비스 및 실행된 스크립트의 결과가 표시됩니다.

예시 출력 (실제 출력은 로컬 호스트에서 실행 중인 서비스에 따라 다름):

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

PORT   STATE SERVICE
22/tcp open  ssh
| ssh-hostkey:
|   2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (RSA)
|_  256 SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (ECDSA)
80/tcp closed http

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

이 예에서 포트 22 (SSH) 가 열려 있으며 ssh-hostkey 스크립트가 SSH 호스트 키에 대한 정보를 제공했습니다. 포트 80 (HTTP) 은 닫혀 있습니다. UDP 스캔은 열린 포트를 표시하지 않았습니다.

nmap -sS -sU -T3 192.168.1.1 로 타이밍 조절

이 단계에서는 -T 옵션을 사용하여 Nmap 스캔의 타이밍을 조정하는 방법을 배우겠습니다. -T 옵션은 스캔의 공격성을 제어하며, 이는 결과의 속도와 정확성에 영향을 미칩니다. 더 높은 타이밍 템플릿은 스캔을 더 빠르게 만들 수 있지만, 탐지되거나 일부 결과를 놓칠 가능성도 증가시킵니다.

-T 옵션은 0 에서 5 까지의 값을 허용하며, 각 값은 다른 타이밍 템플릿을 나타냅니다.

  • -T0: Paranoid (매우 느림, 침입 탐지 시스템에 사용)
  • -T1: Sneaky (느림, 탐지 회피)
  • -T2: Polite (대상을 압도하지 않도록 스캔 속도를 늦춤)
  • -T3: Normal (기본값, 균형 잡힌 속도와 정확성)
  • -T4: Aggressive (빠름, 탐지 또는 부정확한 결과의 위험 증가 가능성)
  • -T5: Insane (매우 빠름, 탐지 및 부정확한 결과의 높은 위험)

이 단계에서는 "Normal" 타이밍 템플릿을 나타내는 -T3 옵션을 사용합니다. 이것은 기본 설정이지만, 시연 목적으로 명시적으로 지정할 것입니다. 또한 대상 IP 주소 192.168.1.1에 대해 SYN 스캔 (-sS) 과 UDP 스캔 (-sU) 을 수행합니다.

Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 그런 다음 다음 명령을 실행합니다.

nmap -sS -sU -T3 192.168.1.1

이 명령은 "Normal" 타이밍 템플릿을 사용하여 대상 IP 주소 192.168.1.1에 대해 SYN 스캔과 UDP 스캔을 수행합니다.

출력에는 열린 포트와 해당 포트에서 실행 중인 서비스가 표시되며, 이전 스캔과 유사합니다. 주요 차이점은 스캔이 기본 타이밍 설정으로 수행된다는 것입니다.

예시 출력 (실제 출력은 대상에 따라 다름):

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.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

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

이 출력은 첫 번째 단계의 출력과 유사하지만, -T 옵션을 사용하여 타이밍 템플릿을 명시적으로 설정하는 방법을 보여줍니다.

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

이 단계에서는 -v 옵션을 사용하여 Nmap 스캔에 상세 정보를 추가합니다. 상세 정보는 스캔 중에 표시되는 정보의 양을 늘려 프로세스 및 결과에 대한 더 자세한 정보를 제공합니다. 이는 문제 해결 또는 Nmap 이 수행하는 작업에 대한 더 깊은 이해를 얻는 데 도움이 될 수 있습니다.

-v 옵션은 상세 정보 수준을 높입니다. 상세 정보를 더 높이려면 여러 번 사용할 수 있습니다 (예: -vv).

이 단계에서는 대상 IP 주소 127.0.0.1 (localhost) 에 대해 SYN 스캔 (-sS), UDP 스캔 (-sU) 및 OS 탐지 (-O) 를 수행하고 -v 옵션을 사용하여 상세 정보를 추가합니다.

Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 그런 다음 다음 명령을 실행합니다.

nmap -v -sS -sU -O 127.0.0.1

이 명령은 상세 정보가 증가된 상태로 지정된 스캔을 수행합니다. 전송되는 프로브, 수신되는 응답 및 OS 탐지 시도를 포함하여 스캔 프로세스에 대한 더 자세한 출력을 볼 수 있습니다.

예시 출력 (실제 출력은 대상 및 대상에서 실행 중인 서비스에 따라 다름):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
NSE: Loaded 0 scripts for scanning.
Initiating SYN Stealth Scan
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Completed SYN Stealth Scan
Initiating UDP Scan
Scanning localhost (127.0.0.1) [1000 ports]
Completed UDP Scan
Initiating OS detection.
Scanning localhost (127.0.0.1)
Completed OS detection.
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
5353/udp open  mdns

Device type: General purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.15

Read data files from: /usr/bin/../share/nmap
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.24 seconds

"Initiating SYN Stealth Scan", "Completed UDP Scan" 및 "Initiating OS detection"과 같이 스캔 프로세스에 대해 표시되는 추가 정보를 확인하십시오. 이는 증가된 상세 정보의 결과입니다.

nmap -sS -sU -sV -oN full.txt 192.168.1.1 로 전체 스캔 저장

이 단계에서는 -oN 옵션을 사용하여 Nmap 스캔의 출력을 파일에 저장하는 방법을 배우겠습니다. 이는 나중에 분석하거나 스캔 결과를 문서화하는 데 유용합니다.

-oN 옵션은 출력을 지정된 파일에 "normal" 형식으로 저장하도록 지정합니다. "normal" 형식은 사람이 읽을 수 있는 형식으로, 구문 분석하기 쉽습니다.

이 단계에서는 대상 IP 주소 192.168.1.1에 대해 SYN 스캔 (-sS), UDP 스캔 (-sU) 및 서비스 버전 탐지 (-sV) 를 수행하고 출력을 ~/project 디렉토리의 full.txt라는 파일에 저장합니다.

Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 그런 다음 다음 명령을 실행합니다.

nmap -sS -sU -sV -oN full.txt 192.168.1.1

이 명령은 지정된 스캔을 수행하고 출력을 full.txt 파일에 저장합니다.

스캔이 완료된 후 cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 full.txt 파일의 내용을 볼 수 있습니다.

cat full.txt

또는

nano full.txt

full.txt 파일에는 Nmap 스캔의 출력이 사람이 읽을 수 있는 형식으로 포함됩니다.

full.txt의 예시 내용 (실제 내용은 대상에 따라 다름):

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

이 출력은 터미널에 표시되는 출력과 유사하지만, 이제 나중에 사용할 수 있도록 파일에 저장됩니다.

Xfce 터미널에서 상세 출력 분석

이 단계에서는 이전 단계에서 수행한 Nmap 스캔으로 생성된 포괄적인 출력을 분석합니다. 출력을 이해하는 것은 잠재적인 취약점을 식별하고 대상 시스템에 대한 정보를 수집하는 데 매우 중요합니다. Xfce 터미널 내에서 Nmap 출력의 주요 요소를 해석하는 데 중점을 둡니다.

먼저, 수행한 다양한 유형의 스캔과 제공하는 정보를 검토해 보겠습니다.

  • SYN 스캔 (-sS): 이는 TCP 핸드셰이크를 완료하지 않고 열린 포트를 빠르게 식별하는 스텔스 스캔입니다. 대상에서 열린 포트를 빠르게 매핑하는 데 유용합니다.
  • UDP 스캔 (-sU): 이 스캔은 열린 UDP 포트를 식별합니다. UDP 는 비연결형 프로토콜이므로 이 스캔은 TCP 스캔보다 신뢰성이 떨어지고 느릴 수 있습니다.
  • OS 탐지 (-O): 이는 대상에서 실행 중인 운영 체제를 확인하려고 시도합니다.
  • 서비스 버전 탐지 (-sV): 이는 열린 포트에서 실행 중인 서비스의 버전을 확인하려고 시도합니다.
  • 스크립트 스캔 (-sC): 이는 일련의 Nmap 스크립트를 실행하여 취약점을 식별하고 대상에 대한 더 많은 정보를 수집합니다.

이제 출력을 분석해 보겠습니다. 이전 단계에서 생성된 full.txt 파일을 참조하거나 스캔을 다시 실행하고 터미널에서 직접 출력을 관찰할 수 있습니다. 예를 들어, cat 명령을 사용하여 full.txt의 내용을 볼 수 있습니다.

cat ~/project/full.txt

또는 1 단계에서 전체 스캔 명령을 다시 실행할 수 있습니다.

nmap -sS -sU -O -sV 192.168.1.1

출력에서 찾아야 할 주요 요소:

  • 열린 포트: Nmap 은 대상 시스템에서 열린 포트를 나열합니다. 이는 실행 중인 잠재적인 서비스를 식별하는 첫 번째 단계입니다.
  • 서비스 정보: Nmap 은 각 열린 포트에서 실행 중인 서비스를 식별하려고 시도합니다. 이 정보는 해당 서비스의 알려진 취약점을 식별하는 데 사용할 수 있습니다.
  • 운영 체제: Nmap 은 대상에서 실행 중인 운영 체제를 식별하려고 시도합니다. 이 정보는 OS 별 취약점을 식별하는 데 사용할 수 있습니다.
  • 스캔 지연 시간: 출력은 Nmap 이 대상과 통신하는 데 걸리는 시간인 지연 시간을 보여줍니다. 지연 시간이 길수록 네트워크 정체 또는 느린 연결을 나타낼 수 있습니다.

예시 출력 (실제 출력은 대상에 따라 다름):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS CPE: cpe:/o:linux:linux_kernel
Aggressive OS guesses: Linux 3.10 - 4.11 (95%), Linux 3.16 (95%), Linux 4.4 (95%), Linux 4.6 - 4.7 (95%), Linux 4.8 (95%), Linux 4.9 (95%), Linux 4.12 (95%), Linux 4.13 (95%), Linux 4.14 (95%), Linux 4.15 (95%)
No exact OS matches for host.

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.34 seconds

이 예시 출력에서:

  • 포트 22 가 열려 있고 OpenSSH 7.6p0 을 실행 중입니다.
  • 포트 80 이 열려 있고 Apache httpd 2.4.29 를 실행 중입니다.
  • 포트 139 및 445 가 열려 있고 Samba 를 실행 중입니다.
  • 포트 5353 이 열려 있고 Avahi mDNS/DNS-SD를 실행 중입니다.
  • Nmap 은 OS 에 대한 공격적인 추측을 했으며, 이는 버전 3.10 과 4.15 사이의 Linux 커널일 가능성이 높음을 시사합니다.

Nmap 출력을 주의 깊게 분석하면 대상 시스템의 보안 상태에 대한 귀중한 통찰력을 얻을 수 있습니다.

요약

이 랩에서는 Nmap 에서 포괄적인 스캔을 수행하여 TCP SYN 스캔 (-sS), UDP 스캔 (-sU), OS 탐지 (-O) 및 서비스 버전 탐지 (-sV) 를 결합하여 대상 IP 주소에 대한 광범위한 정보를 수집했습니다. nmap -sS -sU -O -sV 192.168.1.1 명령을 사용하여 전체 스캔을 실행하고 열린 포트, 실행 중인 서비스 및 대상의 운영 체제를 포함하는 출력을 해석하는 방법을 배웠습니다.

또한, 이 랩에서는 -sC를 사용한 스크립트 추가, -T3을 사용한 타이밍 조정, -v를 사용한 상세도 증가, 그리고 -oN을 사용한 스캔 결과 파일 저장을 다루었습니다. 이러한 기술은 상세한 네트워크 분석 및 보고를 위해 Nmap 의 기능을 향상시킵니다.