Nmap 스캔 대상 지정하기

NmapBeginner
지금 연습하기

소개

이 실습에서는 Nmap(무료 및 오픈 소스 네트워크 스캐너) 에서 스캔 대상을 지정하는 방법을 배웁니다. 이 실습은 로컬호스트 (IP 주소 127.0.0.1) 스캔, IP 범위 (예: 192.168.1.1 - 10) 스캔, 서브넷 (예: 192.168.1.0/24) 스캔, Xfce 에서 대상 목록 생성 및 스캔, 특정 IP 를 스캔에서 제외, Xfce 터미널에서 결과 확인 등 다양한 스캔 시나리오를 다룹니다.

nmap 127.0.0.1 로 로컬호스트 스캔하기

이 단계에서는 Nmap 을 사용하여 자신의 컴퓨터, 즉 로컬호스트를 스캔하는 방법을 배웁니다. 로컬호스트 스캔은 네트워크 보안의 기본 단계이며, 컴퓨터에서 실행 중인 서비스와 취약점 여부를 이해하는 데 도움이 됩니다.

시작하기 전에 로컬호스트와 Nmap 에 대해 간략히 살펴보겠습니다.

  • 로컬호스트 (localhost): 현재 사용 중인 컴퓨터를 가리키는 호스트 이름입니다. IP 주소 127.0.0.1을 사용합니다. 로컬호스트를 스캔하면 사실상 자신의 컴퓨터를 스캔하는 것입니다.
  • Nmap: 무료 및 오픈 소스 네트워크 스캐너입니다. 패킷을 전송하고 응답을 분석하여 컴퓨터 네트워크에서 호스트와 서비스를 발견하는 데 사용됩니다.

Nmap 을 사용하여 로컬호스트를 스캔하려면 다음 단계를 따르세요.

  1. Xfce 터미널을 엽니다. 터미널은 Linux 운영 체제와 상호 작용하는 통로입니다.

  2. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    nmap 127.0.0.1
    

    이 명령어는 Nmap 에게 로컬호스트인 IP 주소 127.0.0.1을 스캔하도록 지시합니다.

  3. 출력을 확인합니다. Nmap 은 컴퓨터에서 열린 포트와 실행 중인 서비스 목록을 표시합니다. 출력은 다음과 유사합니다.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:10 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000096s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    

    출력은 컴퓨터의 열린 포트와 해당 포트와 연결된 서비스를 보여줍니다. 예를 들어, 포트 22 는 일반적으로 SSH, 포트 8080 은 HTTP 프록시에 사용됩니다. STATE 열은 포트가 열려 있는지, 닫혀 있는지 또는 필터링되었는지 나타냅니다.

    참고: 나열된 특정 포트와 서비스는 컴퓨터 구성에 따라 다릅니다.

nmap 으로 IP 범위 (192.168.1.1-10) 스캔하기

이 단계에서는 Nmap 을 사용하여 IP 주소 범위를 스캔하는 방법을 배웁니다. IP 범위 스캔은 네트워크 세그먼트 내의 활성 호스트를 발견하는 데 유용합니다.

진행하기 전에 IP 범위에 대해 이해해 보겠습니다.

  • IP 범위: IP 범위는 연속적인 IP 주소 집합입니다. 예를 들어, 192.168.1.1-10192.168.1.1부터 192.168.1.10까지의 IP 주소를 포함합니다.

Nmap 을 사용하여 IP 범위 192.168.1.1-10을 스캔하려면 다음 단계를 따르세요.

  1. Xfce 터미널을 엽니다.

  2. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    nmap 192.168.1.1-10
    

    이 명령어는 Nmap 에게 192.168.1.1부터 192.168.1.10까지의 모든 IP 주소를 스캔하도록 지시합니다.

  3. 출력을 확인합니다. Nmap 은 지정된 범위의 각 IP 주소에 대한 스캔 보고서를 표시합니다. 출력은 다음과 유사합니다.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:11 CST
    Nmap done: 10 IP addresses (0 hosts up) scanned in 5.04 seconds
    

    출력은 범위 내의 각 IP 주소의 상태를 보여줍니다. 이 경우 192.168.1.1-10 범위에서 호스트가 활성화되지 않았습니다. 호스트가 활성화되어 있었다면 Nmap 은 해당 호스트에서 열린 포트와 실행 중인 서비스를 표시합니다.

    참고: 나열된 특정 IP 주소, 포트 및 서비스는 네트워크 구성에 따라 다릅니다. 또한 일부 호스트는 Nmap 스캔을 차단하도록 구성되어 있을 수 있으므로 실제로 활성화되어 있더라도 다운된 것처럼 보일 수 있습니다.

nmap 으로 192.168.1.0/24 서브넷 스캔하기

이 단계에서는 Nmap 을 사용하여 전체 서브넷을 스캔하는 방법을 배웁니다. 서브넷 스캔은 네트워크 관리자 및 보안 전문가가 네트워크 내의 모든 활성 호스트를 발견하는 일반적인 작업입니다.

시작하기 전에 서브넷과 CIDR 표기법에 대해 명확히 해 보겠습니다.

  • 서브넷: 서브넷은 IP 네트워크의 논리적 하위 분할입니다. 더 큰 네트워크를 더 작고 관리하기 쉬운 조각으로 나눌 수 있습니다.
  • CIDR 표기법: CIDR(클래스리스 인터 도메인 라우팅) 표기법은 IP 주소와 관련된 라우팅 접두사를 간결하게 나타내는 방법입니다. 예시 192.168.1.0/24에서 192.168.1.0은 네트워크 주소이고 /24는 서브넷 마스크를 나타냅니다. /24 서브넷 마스크는 IP 주소의 첫 24 비트가 네트워크 주소에 사용되고 나머지 8 비트가 호스트 주소에 사용됨을 의미합니다. 이를 통해 총 256(2^8) 개의 주소가 가능하며, 192.168.1.0은 네트워크 주소이고 192.168.1.255는 브로드캐스트 주소입니다. 사용 가능한 호스트 주소는 192.168.1.1부터 192.168.1.254까지입니다.

Nmap 으로 서브넷 스캔을 보여주기 위해 더 실용적인 방법을 사용하겠습니다.

  1. Xfce 터미널을 엽니다.

  2. 먼저, 서브넷 내에 응답하는 호스트가 있는지 확인하기 위해 빠른 핑 스캔을 시도해 보겠습니다. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    nmap -sn 192.168.1.0/24
    

    -sn 옵션은 포트 스캔 없이 "핑 스캔"(호스트 발견만) 을 수행하여 훨씬 빠릅니다.

  3. 핑 스캔이 너무 오래 걸리거나 결과가 없으면 Ctrl+C로 중단하고 더 작은 범위를 시도할 수 있습니다.

    nmap -sn 192.168.1.1-20
    

    이 명령은 범위의 첫 20 개 IP 주소만 스캔하여 관리하기 더 쉽습니다.

  4. 시연을 위해 로컬호스트를 포함하는 더 작은 서브넷을 스캔해 보겠습니다. 다음 명령을 시도해 보세요.

    nmap 127.0.0.0/30
    

    이 명령은 매우 작은 서브넷 (4 개의 주소: 127.0.0.0, 127.0.0.1, 127.0.0.2, 127.0.0.3) 을 스캔하고 빠르게 완료되어야 합니다.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:11 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000096s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 4 IP addresses (1 host up) scanned in 0.15 seconds
    

    참고: 192.168.1.0/24 (256 개 주소) 와 같은 큰 서브넷을 스캔하는 데는 매우 오랜 시간이 걸릴 수 있으며 LabEx 와 같은 가상 환경의 네트워크 정책에 의해 차단될 수 있습니다. 자세한 포트 스캔을 수행하기 전에 활성 대상을 식별하기 위해 먼저 더 작은 범위를 스캔하거나 호스트 발견 옵션을 사용하는 것이 더 실용적입니다.

targets.txt 파일 사용하여 nmap -iL targets.txt 로 스캔하기

이 단계에서는 Nmap 으로 여러 호스트를 스캔하기 위해 대상 목록 파일을 사용하는 방법을 배웁니다. 미리 정의된 IP 주소 또는 호스트 이름 목록을 스캔해야 할 때 유용합니다.

다음은 미리 생성된 targets.txt 파일을 Nmap 과 함께 사용하는 방법입니다.

  1. Xfce 터미널을 엽니다.

  2. 먼저, 여러분을 위해 준비된 targets.txt 파일의 내용을 확인해 보겠습니다. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    cat ~/project/targets.txt
    

    이렇게 하면 파일 내용이 표시됩니다.

    127.0.0.1
    192.168.1.1
    192.168.1.2
    

    이 파일에는 로컬호스트 (127.0.0.1) 와 192.168.1.x 범위의 두 IP 주소를 스캔할 세 개의 IP 주소가 포함되어 있습니다.

  3. 이제 targets.txt 파일에 나열된 IP 주소를 스캔하기 위해 Nmap 을 사용합니다. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    nmap -iL ~/project/targets.txt
    

    -iL 옵션은 Nmap 에게 지정된 파일에서 대상 목록을 읽도록 지시합니다. 이 경우 ~/project/targets.txt 파일에서 IP 주소를 읽습니다.

  4. 출력을 확인합니다. Nmap 은 targets.txt 파일에 있는 각 IP 주소에 대한 스캔 보고서를 표시합니다. 출력은 다음과 유사합니다.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00011s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 3 IP addresses (1 host up) scanned in 1.25 seconds
    

    출력은 targets.txt 파일에 있는 각 IP 주소의 상태를 보여줍니다. 이 경우 로컬호스트 (127.0.0.1) 만 활성화된 것으로 나타났으며, 다른 IP 주소 (192.168.1.1 및 192.168.1.2) 는 LabEx 환경에서 연결되지 않았습니다.

nmap 으로 192.168.1.0/24 서브넷에서 192.168.1.5 제외하기

이 단계에서는 Nmap 스캔에서 특정 IP 주소를 제외하는 방법을 배웁니다. 이는 네트워크 장치나 스캔 권한이 없는 서버와 같은 특정 호스트를 건너뛰고 서브넷을 스캔해야 할 때 유용합니다.

192.168.1.0/24 서브넷 스캔에서 IP 주소 192.168.1.5를 제외하려면 다음 단계를 따르세요.

  1. Xfce 터미널을 엽니다.

  2. 다음 명령어를 입력하고 Enter 키를 누릅니다.

    nmap 192.168.1.0/24 --exclude 192.168.1.5
    

    --exclude 옵션은 Nmap 에게 지정된 IP 주소를 스캔에서 제외하도록 지시합니다. 이 경우 192.168.1.0/24 서브넷 스캔에서 192.168.1.5를 제외합니다.

  3. 출력을 확인합니다. 스캔이 시작되고 LabEx 환경의 네트워크 구성으로 인해 최소한의 출력이 표시될 수 있습니다.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
    

    스캔은 192.168.1.5를 제외한 서브넷의 모든 IP 주소를 확인하려고 시도합니다. 즉, 192.168.1.5가 제외되었으므로 Nmap 은 256 개 대신 255 개의 IP 주소를 스캔합니다.

    참고: LabEx 환경에서 스캔이 네트워크 보안 정책에 의해 중단되거나 필터링될 수 있습니다. 나열된 특정 IP 주소, 포트 및 서비스는 네트워크 구성에 따라 달라집니다. 또한 일부 호스트는 Nmap 스캔을 차단하도록 구성되어 있을 수 있으므로 실제로 활성화되어 있더라도 다운된 것처럼 보일 수 있습니다.

요약

이 실습에서는 Nmap 으로 스캔 대상을 지정하는 방법을 배웠습니다. nmap 127.0.0.1 명령어를 사용하여 로컬호스트를 스캔하여 SSH(포트 22), ccproxy-ftp(포트 2121), EtherNetIP-1(포트 2222), nessus(포트 3001), http-proxy(포트 8080) 등 여러 실행 중인 서비스를 확인했습니다. 또한 nmap 192.168.1.1-10 명령어를 사용하여 IP 범위를 스캔했지만 LabEx 환경에서는 활성 호스트가 없었습니다. 서브넷 스캔을 위해 핑 스캔 (nmap -sn) 을 사용하여 호스트를 발견하고 127.0.0.0/30와 같은 작은 서브넷을 스캔하여 더 빠른 결과를 얻는 실질적인 방법을 배웠습니다. 미리 생성된 targets.txt 파일을 사용하여 nmap -iL targets.txt 명령어로 여러 대상을 스캔했으며, 로컬호스트는 성공적으로 스캔했지만 다른 IP 주소는 연결할 수 없었습니다. 마지막으로 nmap 192.168.1.0/24 --exclude 192.168.1.5 명령어를 사용하여 서브넷 스캔에서 특정 IP 를 제외하는 방법을 배웠습니다. 이러한 연습을 통해 다양한 스캔 대상 지정 방법과 서로 다른 네트워크 환경에 적합한 스캔 기법을 사용하는 중요성을 보여주었습니다.