733. 포트 스캐닝 도구 메커니즘 (NMAP 스텔스 스캔)

핵심 인사이트: 해커는 남의 서버에 쳐들어갈 때 정문(웹 80번 포트)으로만 가지 않는다. 뒷문(SSH 22번 포트), 창문(FTP 21번 포트) 등 서버에 뚫려있는 65,535개의 구멍 중 어디가 열려있는지 은밀하게 찔러보는 것이 해킹의 0순위 정찰 작업이다. Nmap은 이 구멍들을 빛의 속도로 찔러보는 전 세계 해커와 보안 전문가들의 필수 스캐닝 도구다.

Ⅰ. Nmap (Network Mapper) 개요

  • 전 세계에서 가장 널리 사용되는 오픈소스 네트워크 탐색 및 포트 스캐닝 도구입니다.
  • 목적: 특정 서버나 네트워크 대역에 살아있는 호스트(IP)가 몇 개인지, 각각의 서버에 어떤 포트가 열려있고, 심지어 어떤 운영체제(OS)와 프로그램(버전)이 돌아가고 있는지를 엑스레이 찍듯 완벽하게 스캔해 냅니다.

Ⅱ. Nmap의 4대 핵심 스캐닝 기법 (옵션 분석) 🌟

앞서 725번 문서에서 배운 개념을 Nmap의 실제 구동 명령어로 구체화합니다.

1. TCP Connect Scan (-sT 옵션) - "시끄러운 풀 스캔"

  • 원리: 가장 무식한 방법입니다. [SYN] -> [SYN+ACK] -> [ACK]라는 정상적인 3-way 핸드셰이크를 끝까지 완벽하게 맺어 포트 개방 여부를 확인합니다.
  • 특징: root(관리자) 권한이 없는 일반 사용자도 쓸 수 있지만, 타겟 서버의 로그 장부에 내 IP와 접속 기록이 100% 뚜렷하게 남기 때문에 해커들은 절대 쓰지 않습니다.

2. TCP SYN Scan (-sS 옵션) - "은밀한 스텔스 스캔" 🌟

  • 원리: 보안 전문가들이 가장 애용하는 빠르고 은밀한 스캔(Half-Open)입니다.
    • 열린 포트: [SYN]을 쏘고 서버가 [SYN+ACK]를 주면, 포트가 열렸음을 확인하고 돌연 [RST]를 날려 연결을 취소해 버립니다.
    • 닫힌 포트: [SYN]을 쏘면 서버가 포트 닫혔다며 튕겨내는 [RST]를 보냅니다.
  • 특징: 연결을 끝까지 맺지 않았으므로 타겟 서버의 일반 시스템 접속 로그에 아무런 기록이 남지 않는 완벽한 닌자 기술입니다. (단, 요즘 고급 방화벽이나 IPS는 이 반쪽짜리 스캔도 다 눈치채고 방어합니다.)

3. TCP FIN Scan (-sF 옵션) - "비정상 플래그 꼼수"

  • 원리: 연결도 안 했는데 뜬금없이 "연결 끊자!"라는 [FIN] 패킷을 던집니다.
    • 닫힌 포트: RFC 표준에 따라 "너 누군데 갑자기 끊자고 해?"라며 튕겨내는 [RST] 패킷을 보냅니다.
    • 열린 포트: 표준에 따르면 정상 연결 상태가 아니면 이 패킷을 무시(아무 응답 없음)하도록 되어 있습니다. (※ 윈도우 OS는 이 표준을 따르지 않아 윈도우 스캔 시엔 잘 안 먹힙니다.)
  • 특징: SYN 스캔을 잡아내는 방화벽을 우회하기 위해 깃발(플래그)을 이상하게 비틀어 던지는 변태적 스캔 방식입니다. (이 외에도 모든 깃발을 다 끄는 NULL Scan -sN, 다 켜는 X-MAS Scan -sX가 있습니다.)

4. UDP Scan (-sU 옵션) - "어렵고 느린 스캔"

  • 원리: 인사 과정이 없는 UDP 포트(예: DNS 53번)를 스캔합니다. UDP 패킷을 던져서 아무 응답이 없으면 '열린 것'으로 짐작하고, ICMP Port Unreachable 에러가 날아오면 '닫힌 것'으로 확정합니다.
  • 특징: 핑퐁이 없어서 타임아웃을 길게 기다려야 하므로 스캔 속도가 엄청나게 느리고 결과가 부정확합니다.

Ⅲ. 스캐닝 탐지와 방어

  • 서버 방화벽이나 NIDS(스노트 등)는 동일한 IP에서 1초에 수백 개의 포트로 무작위 SYN 패킷이 들어오면 "포트 스캐닝이다!"라고 판단하고 그 IP를 수 시간 동안 영구 차단(Blacklist)해 버립니다.
  • 이에 맞서 해커들은 Nmap 옵션을 조절해 시간 간격을 10초에 한 개씩 아주 느리게 찔러보거나(Decoy), 좀비 PC 여러 대의 IP로 분산시켜 스캔하는 창과 방패의 싸움을 이어갑니다.

📢 섹션 요약 비유: Nmap은 해커의 '만능 열쇠 꾸러미'입니다. -sT(Connect 스캔)는 호텔 복도를 걸어가며 101호부터 500호까지 문을 철컥 열어보고 "계십니까? 죄송합니다~" 하고 닫는 짓입니다. 복도 CCTV(서버 로그)에 내 얼굴이 100% 찍힙니다. -sS(SYN 스텔스 스캔)는 문고리만 아주 살짝 1mm 돌려보고 열리는 감각만 확인한 뒤 지문도 안 남기고(RST) 잽싸게 도망치는 은밀한 도둑의 스킬입니다.