Nmap 으로 운영체제 식별하기

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 운영 체제 (OS) 를 식별하는 방법을 배우게 됩니다. 이 랩은 기본적인 OS 스캔 실행, 추측 모드 활성화, OS 및 포트 스캔 결합, 스캔 개선, 결과 내보내기 등 OS 탐지를 위한 다양한 Nmap 명령어를 다룹니다. Xfce 터미널에서 nmap -O <target_ip>와 같은 명령어를 실행하고 출력에서 OS 세부 정보를 확인하게 됩니다.

이러한 실습 단계를 통해 Nmap 을 사용하여 대상 시스템의 운영 체제를 탐지하는 실질적인 기술을 습득할 수 있으며, Nmap 이 OS 정보를 제공하기 위해 응답을 분석하는 방법을 보여주는 예시를 통해 학습합니다.

nmap -O 192.168.1.1 로 OS 탐지 실행

이 단계에서는 Nmap 을 사용하여 대상 시스템에서 OS 탐지를 수행합니다. OS 탐지는 원격 호스트에서 실행 중인 운영 체제를 식별하는 데 사용되는 기술입니다. Nmap 은 특별히 제작된 일련의 패킷을 대상 시스템으로 전송하고 응답을 분석하여 OS 를 결정합니다.

시작하기 전에 사용할 명령의 기본 구문을 이해해 보겠습니다.

nmap -O <target_ip>
  • nmap: 이것은 우리가 사용하는 명령줄 도구입니다.
  • -O: 이 옵션은 Nmap 에게 OS 탐지를 활성화하도록 지시합니다.
  • <target_ip>: 이것은 스캔하려는 대상 시스템의 IP 주소입니다. 이 경우 192.168.1.1입니다.

이제 IP 주소가 192.168.1.1인 대상 시스템에서 OS 탐지를 수행하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력하십시오.

nmap -O 192.168.1.1

명령을 실행한 후 Nmap 은 대상 시스템으로 다양한 프로브를 전송하고 응답을 분석합니다. Nmap 이 OS 를 식별하는 데 성공하면 출력에 OS 세부 정보가 표시됩니다. 출력은 다음과 유사할 수 있습니다 (정확한 출력은 대상 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.00043s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
80/tcp open  http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

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

위의 예에서 Nmap 은 대상 시스템이 Linux 운영 체제를 실행 중인 것으로 식별했습니다. 출력은 또한 커널 버전에 대한 세부 정보를 제공합니다.

Nmap 이 정확한 OS 를 결정할 수 없는 경우 가능한 OS 후보 목록을 제공할 수 있습니다. 경우에 따라 Nmap 이 OS 를 전혀 감지하지 못할 수도 있습니다. 이는 대상 시스템이 방화벽 뒤에 있거나 OS 가 자체 식별 정보를 숨기도록 구성된 경우 발생할 수 있습니다.

nmap -O --osscan-guess 127.0.0.1 로 추측 활성화

이 단계에서는 Nmap 을 사용하여 로컬 호스트 (127.0.0.1) 에서 --osscan-guess 옵션으로 OS 탐지를 수행합니다. 이 옵션은 Nmap 이 OS 탐지를 시도할 때 더 적극적으로 작동하도록 합니다. Nmap 이 OS 에 대해 확신이 없을 때 이 옵션은 더 정확한 추측을 하는 데 도움이 될 수 있습니다.

명령을 자세히 살펴보겠습니다.

nmap -O --osscan-guess 127.0.0.1
  • nmap: 이것은 우리가 사용하는 명령줄 도구입니다.
  • -O: 이 옵션은 Nmap 에게 OS 탐지를 활성화하도록 지시합니다.
  • --osscan-guess: 이 옵션은 Nmap 에게 OS 를 더 적극적으로 추측하도록 지시합니다.
  • 127.0.0.1: 이것은 스캔하려는 대상 시스템의 IP 주소이며, 이 경우 로컬 호스트입니다.

이제 로컬 호스트에서 --osscan-guess 옵션으로 OS 탐지를 수행하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력하십시오.

nmap -O --osscan-guess 127.0.0.1

명령을 실행한 후 Nmap 은 대상 시스템으로 다양한 프로브를 전송하고 응답을 분석합니다. Nmap 이 OS 를 식별하는 데 성공하면 출력에 OS 세부 정보가 표시됩니다. 로컬 호스트를 스캔하고 있으므로 OS 탐지는 비교적 정확해야 합니다. 출력은 다음과 유사할 수 있습니다 (정확한 출력은 시스템에 따라 다릅니다).

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).
Not shown: 999 closed ports
PORT     STATE SERVICE
631/tcp  open  ipp
9929/tcp open  nping-echo

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

출력이 항상 OS 이름을 명시적으로 표시하지 않을 수 있습니다. 때로는 열린 포트 및 기타 정보만 표시됩니다. 그러나 Nmap 은 여전히 백그라운드에서 OS 탐지를 수행하며, --osscan-guess 옵션은 더 정확한 결과를 얻을 가능성을 높입니다.

nmap -O -p 1-100 192.168.1.1 로 OS 및 포트 스캔 결합

이 단계에서는 Nmap 을 사용하여 OS 탐지와 포트 스캔을 결합합니다. 이를 통해 대상 시스템의 운영 체제를 식별하고 해당 시스템에서 어떤 포트가 열려 있는지 확인할 수 있습니다. 이 두 가지 기술을 결합함으로써 대상 시스템에 대한 보다 포괄적인 이해를 얻을 수 있습니다.

명령을 자세히 살펴보겠습니다.

nmap -O -p 1-100 192.168.1.1
  • nmap: 이것은 우리가 사용하는 명령줄 도구입니다.
  • -O: 이 옵션은 Nmap 에게 OS 탐지를 활성화하도록 지시합니다.
  • -p 1-100: 이 옵션은 Nmap 에게 1 번부터 100 번까지의 포트를 스캔하도록 지시합니다.
  • 192.168.1.1: 이것은 스캔하려는 대상 시스템의 IP 주소입니다.

이제 IP 주소가 192.168.1.1인 대상 시스템에서 OS 탐지 및 포트 스캔을 수행하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력하십시오.

nmap -O -p 1-100 192.168.1.1

명령을 실행한 후 Nmap 은 대상 시스템으로 다양한 프로브를 전송하고 응답을 분석합니다. 출력에는 OS 세부 정보와 열린 포트 목록이 표시됩니다. 출력은 다음과 유사할 수 있습니다 (정확한 출력은 대상 OS 및 열린 포트에 따라 다릅니다).

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

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

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

위의 예에서 Nmap 은 대상 시스템이 Linux 운영 체제를 실행 중인 것으로 식별했으며 포트 22 (SSH) 및 80 (HTTP) 이 열려 있음을 발견했습니다.

OS 탐지와 포트 스캔을 결합하여 대상 시스템에서 실행 중인 운영 체제 및 서비스를 신속하게 식별할 수 있습니다. 이 정보는 보안 평가 및 네트워크 문제 해결에 유용할 수 있습니다.

Xfce 터미널에서 OS 상세 정보 보기

이전 단계에서 대상 시스템의 운영 체제를 탐지하기 위해 Nmap 명령을 실행했습니다. 이러한 스캔의 결과는 Xfce 터미널에 직접 표시되었습니다. 이 단계에서는 터미널 출력에 표시된 OS 세부 정보를 해석하는 방법을 이해하는 데 중점을 둡니다.

Nmap 이 운영 체제를 성공적으로 식별하면 일반적으로 OS 이름, 버전, 때로는 커널 버전과 같은 정보를 표시합니다. 또한 소프트웨어 및 하드웨어에 대한 표준화된 명명 체계인 CPE (Common Platform Enumeration) 식별자를 제공할 수도 있습니다.

이전 단계의 예제 출력을 다시 살펴보겠습니다.

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

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

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

이 예에서 OS details: Linux 3.2 - 4.9 줄은 Nmap 이 커널 버전이 3.2 에서 4.9 사이인 Linux 운영 체제를 감지했음을 나타냅니다. Device type: general purpose 줄은 장치가 표준 컴퓨터임을 나타냅니다. Running: Linux 3.X|4.X 줄은 유사한 정보를 제공합니다. OS CPE 줄은 운영 체제 및 커널에 대한 보다 구체적인 식별자를 제공합니다.

Nmap 이 정확한 OS 를 결정할 수 없는 경우 사용 가능한 정보를 기반으로 "추측"을 제공할 수 있습니다. 이러한 경우 출력에는 "OS details: Unknown" 또는 "OS details: Possibly Windows"와 같은 문구가 포함될 수 있습니다. 이전 단계에서 사용된 --osscan-guess 옵션은 이러한 추측의 정확성을 향상시키는 데 도움이 될 수 있습니다.

OS 세부 정보를 보려면 이전 단계에서 실행한 Nmap 명령의 출력을 살펴보십시오. OS 정보는 일반적으로 포트 스캔 결과 뒤에 출력 상단 근처에 표시됩니다.

OS 탐지가 항상 완벽하지 않으며 Nmap 의 결과는 주의해서 해석해야 합니다. 방화벽 및 네트워크 구성과 같은 요인이 OS 탐지를 방해할 수 있습니다.

이 단계에서는 새로운 명령을 실행할 필요가 없습니다. 이미 생성한 출력을 이해하고 해석하는 것입니다.

nmap -O --osscan-limit 192.168.1.1 로 스캔 정밀화

이 단계에서는 --osscan-limit 옵션을 사용하여 OS 탐지 스캔을 정교화합니다. 이 옵션은 Nmap 에게 최소 하나의 열린 TCP 포트와 하나의 닫힌 TCP 포트가 있는 호스트에 대해서만 OS 탐지를 시도하도록 지시합니다. 이는 특히 대규모 네트워크를 스캔할 때 스캔 속도를 크게 높이고 오탐의 가능성을 줄일 수 있습니다.

--osscan-limit 옵션은 OS 탐지가 다양한 TCP 프로브에 대한 응답을 분석하는 데 의존하기 때문에 유용합니다. 호스트에 열린 포트만 있거나 닫힌 포트만 있는 경우 Nmap 은 운영 체제를 정확하게 결정하기에 충분한 정보를 수집하지 못할 수 있습니다.

IP 주소가 192.168.1.1인 대상 시스템에서 정교화된 OS 탐지 스캔을 수행하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 입력하십시오.

nmap -O --osscan-limit 192.168.1.1

명령을 실행한 후 Nmap 은 OS 탐지를 수행하지만, 최소 하나의 열린 TCP 포트와 하나의 닫힌 TCP 포트가 있는 기준을 충족하는 호스트에 대해서만 수행합니다. Nmap 이 운영 체제를 식별할 수 있는 경우 출력에 OS 세부 정보가 표시됩니다. 출력은 다음과 유사할 수 있습니다 (정확한 출력은 대상 OS 및 열린/닫힌 포트에 따라 다릅니다).

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.00043s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

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

이 예에서 Nmap 은 대상 시스템이 Linux 운영 체제를 실행 중인 것으로 식별했습니다. "Not shown: 999 closed ports" 줄은 Nmap 이 열린 포트 (22) 만 스캔하고 해당 포트와 찾은 닫힌 포트를 기반으로 OS 를 결정했음을 나타냅니다.

--osscan-limit 옵션을 사용하면 특히 대규모 네트워크 또는 특이한 포트 구성을 가진 호스트를 처리할 때 OS 탐지 스캔을 보다 효율적이고 정확하게 만들 수 있습니다.

nmap -O -oN os.txt 127.0.0.1 로 결과 내보내기

이 단계에서는 Nmap OS 탐지 스캔의 결과를 파일로 내보내는 방법을 배우겠습니다. 이는 나중에 분석, 보고 또는 다른 도구와의 통합에 유용합니다. "일반" 형식으로 출력을 지정하는 -oN 옵션을 사용합니다.

os.txt 파일 이름은 임의적입니다. 원하는 이름을 선택할 수 있지만 설명적인 이름을 사용하는 것이 좋습니다. 출력 파일은 현재 작업 디렉토리인 ~/project에 생성됩니다.

OS 탐지 스캔의 결과를 파일로 내보내려면 Xfce 터미널을 열고 다음 명령을 입력하십시오.

nmap -O -oN os.txt 127.0.0.1

이 명령은 IP 주소가 127.0.0.1 (localhost) 인 대상 시스템에서 OS 탐지 스캔을 수행하고 결과를 일반 형식으로 ~/project 디렉토리의 os.txt 파일에 저장합니다.

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

cat os.txt

출력에는 OS 세부 정보를 포함한 Nmap 스캔 결과가 사람이 읽을 수 있는 형식으로 표시됩니다. 출력은 다음과 유사할 수 있습니다 (정확한 출력은 대상 OS 에 따라 다릅니다).

## Nmap 7.80 scan initiated Tue Oct 27 10:20:00 2023 as: nmap -O -oN os.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000043s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
OS details: Linux 3.2 - 4.9
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
## Nmap done at Tue Oct 27 10:20:05 2023 -- 1 IP address (1 host up) scanned in 5.23 seconds

nano와 같은 텍스트 편집기를 사용하여 os.txt 파일을 보거나 수정할 수도 있습니다.

nano os.txt

이렇게 하면 os.txt 파일이 nano 텍스트 편집기에서 열리고 결과를 자세히 검사할 수 있습니다.

Nmap 결과를 파일로 내보내는 것은 발견 사항을 문서화하고 다른 사람과 공유하는 데 유용한 기술입니다.

요약

이 랩에서는 참가자들이 운영 체제 탐지를 위해 Nmap 을 사용하는 방법을 배웁니다. 192.168.1.1을 예시로 사용하여 nmap -O <target_ip> 명령으로 기본적인 OS 탐지를 실행하는 것으로 시작합니다. 또한 nmap -O --osscan-guess를 사용하여 추측을 활성화하고, nmap -O -p 1-100으로 OS 및 포트 스캔을 결합하고, nmap -O --osscan-limit로 스캔을 정교화하고, nmap -O -oN os.txt로 결과를 텍스트 파일로 내보내는 방법을 배웁니다. 추가적으로, Xfce 터미널에서 OS 세부 정보를 확인합니다.