소개
이 실습에서는 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 을 사용하여 로컬호스트를 스캔하려면 다음 단계를 따르세요.
Xfce 터미널을 엽니다. 터미널은 Linux 운영 체제와 상호 작용하는 통로입니다.
다음 명령어를 입력하고 Enter 키를 누릅니다.
nmap 127.0.0.1이 명령어는 Nmap 에게 로컬호스트인 IP 주소
127.0.0.1을 스캔하도록 지시합니다.출력을 확인합니다. 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-10은192.168.1.1부터192.168.1.10까지의 IP 주소를 포함합니다.
Nmap 을 사용하여 IP 범위 192.168.1.1-10을 스캔하려면 다음 단계를 따르세요.
Xfce 터미널을 엽니다.
다음 명령어를 입력하고 Enter 키를 누릅니다.
nmap 192.168.1.1-10이 명령어는 Nmap 에게
192.168.1.1부터192.168.1.10까지의 모든 IP 주소를 스캔하도록 지시합니다.출력을 확인합니다. 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 으로 서브넷 스캔을 보여주기 위해 더 실용적인 방법을 사용하겠습니다.
Xfce 터미널을 엽니다.
먼저, 서브넷 내에 응답하는 호스트가 있는지 확인하기 위해 빠른 핑 스캔을 시도해 보겠습니다. 다음 명령어를 입력하고 Enter 키를 누릅니다.
nmap -sn 192.168.1.0/24-sn옵션은 포트 스캔 없이 "핑 스캔"(호스트 발견만) 을 수행하여 훨씬 빠릅니다.핑 스캔이 너무 오래 걸리거나 결과가 없으면
Ctrl+C로 중단하고 더 작은 범위를 시도할 수 있습니다.nmap -sn 192.168.1.1-20이 명령은 범위의 첫 20 개 IP 주소만 스캔하여 관리하기 더 쉽습니다.
시연을 위해 로컬호스트를 포함하는 더 작은 서브넷을 스캔해 보겠습니다. 다음 명령을 시도해 보세요.
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 과 함께 사용하는 방법입니다.
Xfce 터미널을 엽니다.
먼저, 여러분을 위해 준비된
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 주소가 포함되어 있습니다.
이제
targets.txt파일에 나열된 IP 주소를 스캔하기 위해 Nmap 을 사용합니다. 다음 명령어를 입력하고 Enter 키를 누릅니다.nmap -iL ~/project/targets.txt-iL옵션은 Nmap 에게 지정된 파일에서 대상 목록을 읽도록 지시합니다. 이 경우~/project/targets.txt파일에서 IP 주소를 읽습니다.출력을 확인합니다. 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를 제외하려면 다음 단계를 따르세요.
Xfce 터미널을 엽니다.
다음 명령어를 입력하고 Enter 키를 누릅니다.
nmap 192.168.1.0/24 --exclude 192.168.1.5--exclude옵션은 Nmap 에게 지정된 IP 주소를 스캔에서 제외하도록 지시합니다. 이 경우192.168.1.0/24서브넷 스캔에서192.168.1.5를 제외합니다.출력을 확인합니다. 스캔이 시작되고 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 를 제외하는 방법을 배웠습니다. 이러한 연습을 통해 다양한 스캔 대상 지정 방법과 서로 다른 네트워크 환경에 적합한 스캔 기법을 사용하는 중요성을 보여주었습니다.



