Nmap 기반 네트워크 인프라 진단 및 보안 감사 방법론

Nmap 도구의 핵심 기능과 활용 전략

Nmap(Network Mapper) 은 오픈 소스 기반의 네트워크 탐지 및 보안 감사 전문 유틸리티입니다. 대용량 네트워크 환경을 신속하게 마핑하고 개별 호스트의 세부 정보를 분석하는 데 주로 사용됩니다. 원시 IP 패킷을 통해 목표 시스템의 존재 여부, 서비스 포트 상태, 운영체제 버전, 방화벽 구성 등을 식별할 수 있는 기능을 제공합니다. 시스템 관리자나 보안 전문가가 자산을 인벤토리하거나 취약점을 사전에 파악하는 데 필수적인 도구로 활용됩니다.

주요 스캔 옵션 및 플래그 설정

Nmap 의 명령어 구조는 기본적으로 [스캔 타입] [옵션] {타겟} 형태로 구성됩니다. 각 상황에 맞는 파라미터를 선택하여 효율성을 높일 수 있습니다.

옵션 기능 설명
-sn 호스트 발견 전용 모드 (Ping Sweep). 포트로 진행하지 않고 살아있는 장비만 식별합니다.
-p {port} 특정 포트만 대상 지정. 예: -p 22,80. 지정 시 기본값인 1000 개 주요 포트를 넘어서 모든 포트(1~65535) 를 확인할 수 있습니다.
-iL {file} 파일 내 IP 목록을 읽어서 순차적으로 스캔 수행합니다. 여러 대의 장비를 한꺼번에 처리할 때 유용합니다.
-Pn 호스트가 응답하지 않아도(PING 실패) 강제 스캔 진행. 방화벽으로 ICMP 가 차단된 환경에 유용합니다.
-sU UDP 프로토콜 기반 스캔. TCP 보다 느리지만 DNS, DHCP 등 UDP 서비스를 확인时需 필요합니다.
-F 빠른 속도 스캔. 가장 일반적으로 사용되는 약 100 개의 포트만 대상으로 합니다.
-T{0-5} 타임아웃 템플릿 설정. T0(Timid) 부터 T5(Insane) 까지 속도를 조절하며, 숫자가 클수록 공격적이나 정확도가 다소 떨어질 수 있습니다.
-A 자동화된 고급 스캔. OS 판별, 버전 감지, 스크립트 스캔, traceroute 를 모두 포함합니다.
--script {name} NSE(Nmap Scripting Engine) 스크립트 실행. 취약점 점검 또는 정보 수집을 위해 커스터마이징 가능합니다.

포트 스캔 유형별 동작 원리

TCP 통신 방식은 포트 상태 확인 방식에 따라 몇 가지 하위 유형으로 나뉩니다.

  • TCP SYN 스캔 (-sS): 가장 일반적인 방법입니다. 연결 요청(SYN) 만 보내고 응답을 기다립니다. 연결이 완료되지 않기 때문에 로그 남김 위험이 적으며 'Half-open' 스캔으로 불립니다.
  • TCP Connect 스캔 (-sT): 완전한 3-way handshaking 을 수행합니다. 권한이 낮은 사용자도 사용 가능하지만, 상대방 서버에 연결 기록이 남습니다.
  • TCP FIN/NULL/Xmas 스캔 (-sF, -sN, -sX): 특정 TCP Flag 만 켜거나 끄는 방식으로, 일부 방화벽을 우회할 수 있습니다. 하지만 Windows 기반에서는 정확도가 낮아 Unix 계열 대상에 권장됩니다.

실전 적용 사례

1. 네트워크 세그먼트 전체 탐지

자신들의 서브넷 내에 온라인 된 장비를 찾아내는 작업입니다.

$ nmap -sn 10.10.10.0/24
Starting Nmap 7.92 at Wed Oct 25 10:00 EDT
Nmap scan report for 10.10.10.1 (Gateway)
Host is up (0.00012s latency).
MAC Address: AA:BB:CC:DD:EE:FF

2. 특정 서비스 포트 집중 조사

전체 포트를 돌기보다 웹 서버와 SSH 관리를 위한 포트를 중심으로 확인합니다.

$ nmap -sS -p 22,80,443 192.168.10.50
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  ssl/http

3. 서비스 버전 및 OS 판별 (Aggressive Scan)

여러 검출기를 조합하여 해당 장비의 상세 정보를 최대한 확보하는 시나리오입니다.

$ nmap -A -T4 192.168.10.50
Host is up (0.00040s latency).
PORT     STATE  SERVICE VERSION
80/tcp   open   http    Apache httpd 2.4.41 ((Ubuntu))
443/tcp  open   ssl/http OpenSSL/1.1.1f
Device type: general purpose
Running: Linux 3.X|4.X

4. 스크립트 엔진을 활용한 취약점 탐색

안전한 스크립트 집합을 사용하여 웹 애플리케이션 관련 메타데이터를 추출합니다.

$ nmap --script=http-title,ssl-cert 10.20.30.40 -p 80,443
| http-title: Company Intranet Portal
| ssl-cert: Subject: commonName=internal.corp.local
|_ Not valid before: 2022-01-01

5. 방화벽 우회를 위한 타이밍 조절

방어 메커니즘에 탐지되지 않도록 패킷 발사 속도를 제한하거나 조정하는 경우입니다.

$ nmap --min-rate 5000 -v 10.20.30.40
Initiating SYN Stealth Scan at 09:15
Completed SYN Stealth Scan at 09:16
Nmap done: 1 IP address scanned in 60.0 seconds

결과 상태 코드 해석

스캔 결과에서 포트 상태는 다음과 같이 분류됩니다.

  • open: 애플리케이션이 해당 포트에서 수신 대기 중임을 의미합니다.
  • closed: 포트는 열려있으나 아무런 서비스가 듣지 않는 상태입니다.
  • filtered: 파이어월이나 필터링 장치로 인해 스캔 패킷이 차단되었습니다.
  • open|filtered: 응답이 없어서 정확한 상태를 판단할 수 없으며, UDP 스캔에서 자주 나타납니다.

효율적인 네트워킹 관리를 위해서는 스캔 목적에 맞춰 옵션을 조합해야 하며, 특히 production 환경에서는 스캔 속도와 부하를 고려하여 신중하게 실행해야 합니다.

태그: Nmap cybersecurity network-scanning Pentesting linux-administration

7월 30일 13:20에 게시됨