Nmap 공격적인 종합 탐색 모드(-A)의 4가지 핵심 기능과 작동 원리

network

4 분 읽기

nmap - 종합 탐색 모드 (-A)

공격적인 종합 탐색 모드 -A

1. 작동 원리

-A (Aggressive Scan) 옵션은 여러 주요 정보 수집 기능들을 하나로 묶어 실행하는 종합 탐색 모드다. -A 옵션을 지정하면 다음 4가지 핵심 기능이 동시에 활성화된다.

  1. OS 탐지 (-O): 대상 시스템의 운영체제 종류와 버전을 추정한다.
  2. 서비스/버전 탐지 (-sV): 열려 있는 포트에서 동작 중인 서비스 이름과 상세 버전을 식별한다.
  3. 기본 스크립트 탐지 (-sC): Nmap Scripting Engine(NSE)의 기본 스크립트(default category)를 실행하여 추가 서비스나 설정 정보에서 추가적인 정보를 수집한다.
  4. 경로 추적 (–traceroute): 대상 호스트까지의 네트워크 경로(Hop)를 분석한다.
1
2
3
4
5
              -A (Aggressive Scan)
        ┌──────────┼──────────┬──────────┐
        ↓          ↓          ↓          ↓
       -O         -sV        -sC     --traceroute
       (OS)     (Service)   (NSE)     (Traceroute)


2. OS 탐지 정확성

Nmap은 대상 시스템으로 특수하게 구성된 TCP/UDP 패킷을 전송한 뒤, 응답으로 돌아오는 패킷의 TCP/IP 스택 특성(TTL, Window Size, TCP Option 순서 등)을 고유한 핑거프린트 DB와 비교하여 OS를 판별한다.

“A typical Nmap scan is shown in Example 15.1. The only Nmap arguments used in this example are -A, to enable OS and version detection, script scanning, and traceroute; -T4 for faster execution; and then the hostname.”
Nmap 공식 문서 (nmap.org/book/man.html)

단순 포트 개방 여부만 확인할 때와 달리, -A 옵션을 사용하면 OS 핑거프린팅, 서비스 버저닝, NSE 스크립트 결과가 상호 보완되어 대상 시스템에 대한 수집 정보의 정확도가 크게 향상된다.


3. 처음부터 -A 를 사용하면 안되나?

처음부터 -A옵션을 사용할 수는 있지만, 실무 및 실제 보안 점검 환경에서는 보통은 추천하지 않는다. -A 옵션은 다양한 탐색방법을 조회한 종합 탐색으로, 많은 정보를 반환하다. 반대로 말하면 이러한 풍부한 정보를 수집하기 위해 다양한 탐색방법을 모두 실행해야하므로 작업량이 많은 것이다.

  • 네트워크 부하 및 속도 저하 : 다양한 탐색 패킷을 다량 전송하므로 스캔 완료까지 상당한 시간이 소요되며, 대상 시스템과 네트워크에 부담을 준다.

  • 보안 장비 탐지 및 차단 (IDS/IPS) : NSE 스크립트와 공격성 높은 패킷이 다량 발생하여 IDS/IPS, WAF 등 보안 솔루션에 쉽게 탐지되고 IP가 차단될 수 있다.

  • 불필요한 리소스 낭비 : 발견된 서비스/호스트에 추가 탐지를 수행하므로 비용 증가한다. 즉, 무거운 탐색 작업이 실행된다.

따라서 기본적으로는 호스트 확인 -> 단순 포트 탐색 -> 필요한 포트 확인 -> 상세 조사 와 같은 순서에 따라 효율적인 작업을 수행하는 것을 권장한다.


4. 명령어 프랙티스

4.1. 기본 종합 탐색

단일 대상 IP 또는 도메인을 지정하여 종합 스캔을 수행한다.

1
nmap -A 192.168.1.100

4.2. 실행 속도 최적화 옵션과 함께 사용

스캔 속도를 높이기 위해(probe 간격, timeout, 재전송 등의 timing 정책을 좀 더 공격적으로 설정) 실행 타이밍 옵션(-T4)을 조합하여 자주 사용한다.

1
nmap -A -T4 scanme.nmap.org

4.3. 특정 포트 지정 종합 탐색

전체 포트 대신 확인이 필요한 특정 포트(예: 80, 443, 8080)만 지정하여 스캔 시간과 네트워크 부하를 줄인다.

1
nmap -A -p 80,443,8080 192.168.1.100

4.4 서비스 스캔이 오래 지연되거나 비정상적으로 종료될 때

-A 옵션으로 nmap을 실행할 때, 서비스 스캔 도중에 출력 없이 실행이 종료되는 경우가 있다. 이번 실습에서 경험한 바로는 서비스 버전 탐지 중에 특정 포트에서 응답을 기다리고 있는 상태에서 시간이 굉장히 오래 걸리다가, 아무런 출력 없이 nmap이 종료되는 경험을 했다.

이럴 때에는 어떤 포트(서비스)가 문제인지 확인하고, 해당 포트는 탐색 대상에서 제외하는 방식으로 탐색 대상을 좁혀가는 게 바람직해 보인다. 아래와 같은 명령어를 실행하면, 일부 Error 메시지나 Timeout 메시지를 볼 수 있으며, 해당 포트(서비스)들은 (필수가 아니라면) 탐색 대상에서 제외하고 탐색을 계속해나가면 된다.

1
nmap -sV --version-trace -p [포트1],[포트2],... 192.168.1.100


5. 실습

1
nmap -A -Pn -p 22,80,443,8080 192.168.1.100
  • -A 옵션 : 이번 실습의 핵심으로, 종합 탐색 옵션
  • -Pn 옵션 : 핑 거부 설정을 피하기 위해 사용
  • -p 옵션 : 탐색 대상 서버를 미리 탐색한 뒤, 종합 옵션을 실행시킬만한 포트만 선정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nmap scan report for 192.168.1.100
Host is up (0.34s latency).

PORT     STATE  SERVICE    VERSION
22/tcp   open   ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.16 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   ...
|_  ...
80/tcp   closed http
443/tcp  closed https
8080/tcp closed http-proxy
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

그 전에는 탐지되지 않았던 운영체제 탐지에 성공했다.

nmap 결과를 하나씩 살펴보면 아래와 같다.


6. Nmap 스캔 결과 상세 분석

(1) 호스트 상태 확인 (Host is up)

대상 IP(192.168.1.100)가 현재 작동 중(Up)임을 나타내며, 응답 속도(Latency)는 0.34s로 측정되었다. -Pn 옵션을 사용했기 때문에 핑(Ping) 거부 설정과 관계없이 대상이 활성 상태라고 가정하고 다음 탐색을 진행했다.

(2) 포트 및 서비스 상세 상태 (PORT, STATE, SERVICE, VERSION)

22/tcp (open / ssh): 탐색한 포트 중 SSH 서비스 포트만 유일하게 열려(open) 있다. -A 옵션(종합 탐색) 덕분에 단순 포트 개방 여부뿐만 아니라, 해당 포트에서 OpenSSH 8.9p1 Ubuntu 3ubuntu0.16 버전이 동작 중이라는 구체적인 정보까지 알아냈다. 하단의 ssh-hostkey 스크립트 결과는 SSH 암호화 키 정보를 탐지했음을 보여준다.

(3) 80/tcp, 443/tcp, 8080/tcp (closed)

웹 서비스와 관련된 포트들은 모두 닫혀(closed) 있다. 사전 탐색을 통해 지정한(-p) 포트들이지만, 현재 해당 대상 서버에서 웹 서버(HTTP/HTTPS)나 프록시 서비스는 활성화되어 있지 않음을 알 수 있다.

(4) 운영체제 추정 (Service Info)

OS: Linux; CPE: cpe:/o:linux:linux_kernel: SSH 버전 정보(Ubuntu Linux)와 -A 옵션의 종합 분석 기능을 통해 대상 서버의 운영체제가 리눅스(Ubuntu) 기반일 것으로 추정했다.

(5) 스캔 완료 요약 (Nmap done)

총 1개의 IP 주소에 대해 지정한 주요 포트 탐색 및 종합 진단이 완료되었으며, 전체 소요 시간은 3.25초였다.

요약: 이번 스캔을 통해 대상 서버(192.168.1.100)는 우분투 리눅스(Ubuntu Linux) 로 추정되는 환경에서 작동 중이며, 탐지 대상 포트 중 외부로 열려 있는 창구는 22번 SSH 포트가 유일하다는 점을 파악할 수 있음


Reference

https://nmap.org/book/man.html

// reading compass

이 글과 이어지는 경로

시리즈, 카테고리, 태그 겹침, 최신도를 점수화해 가까운 글일수록 중심에 배치합니다.

hover nodes or cards · click a node to pin
Next reads 0

    댓글 남기기