0%

nmap이란? nmap 사용방법, 윈도 포트스캔, nmap 사용법

windows

nmap이란?

nmap이란, 보안스캐너 툴의 일종으로,
컴퓨터와 서비스를 찾거나, 원격 컴퓨터들의 자세한 정보를 알아낼 수 있습니다.
자세한 정보에는 운영 체제, 장치 종류, 운영 시간, 서비스에 쓰이는 소프트웨어 제품, 그 제품의 정확한 버전, 방화벽 등을 확인할 수 있습니다.

nmap으로는 아래와 같은 기능을 수행할 수 있습니다.

  1. 호스트 탐지 - 네트워크상의 컴퓨터들을 확인한다. 예를 들어 ping 응답이나 특정 포트가 열린 컴퓨터들을 나열한다.
  2. 포트 스캔 - 하나 혹은 그 이상의 대상 컴퓨터들에 열린 포트들을 나열한다.
  3. 버전 탐지 - 응용 프로그램의 이름과 버전 번호를 확인하기 위해 원격 컴퓨터의 네트워크 서비스에 주의를 기울인다.
  4. 운영 체제 탐지 - 원격으로 운영 체제와 네트워크 장치의 하드웨어 특성을 확인한다.

참고로, nmap은 network mapper의 줄임말로 해당용어를 지었습니다.

nmap 설치하기

아래 주소에서 다운받을 수 있습니다.
https://nmap.org/download.html#windows
npcap도 같이 설치해주세요.

nmap

nmap 사용법

nmap은 아래와 같은 명령어로 사용할 수 있습니다.

1
> nmap [1.스캔유형] [2.옵션] [호스트(ip)]
  1. 스캔 유형
    -sS : TCP SYN 스캔(스텔스 스캔)
    -sT : TCP 연결을 사용한 포트스캔
    -sP : Ping을 이용한 스캔
    -sA : ACK 패킷에 대한 TTL값을 분석한다.(방화벽 규칙상태 확인시 사용)
    -sR : RPC를 이용하여 포트를 스캔한다.
    -sW : 윈도우 스캔은 ACK 스캔과 같은데 특정 장치에 대해 열린, 닫힌 포트를 구별한다.
    -sI : Idel 스캔을 가장 은밀한 스캔, 느리고 복잡하다.
    -sU : UDP 포트스캔
    -sF : FIN 패킷을 이용하여 스캔한다.
    -sX : Xmas 패킷을 이용하여 스캔한다.
    -sN : Null 패킷을 이용하여 스캔한다.

  2. 옵션
    2-1. 포트 옵션
    -p 22 : 22번 포트 스캔
    -p (service) : 서비스 명으로 포트스캔
    -p 20, 40, 80 : 20, 40, 80 포트스캔
    -p 1-1023 : 1~1023 포트스캔, 범위로 지정
    2-2 output 옵션
    -v : 출력을 자세하게
    -w : -v보다 더 자세하게
    -oN <File명> : 일반 파일 형식으로 출력
    -oX <File명> : XML 파일 형식으로 출력

2-3. 기타옵션
-O : 대상 호스트 운영체제 스캔
-PN : 호스트가 살아있는지 ping을 하지 않음으로 log 파일에 기록될 가능성을 줄인다.

2-4. 핑스캔
-sP : 핑 스캔(ICMP) 사용, 내부단은 ARP 요청이 대신함
-sL : 목록 스캔(서버가 살았는지 죽었는지 확인하는 좋은 방법)
-PS : TCP SYN 패킷을 보낸다. (SYN -> SYN, ACK -> RST)
-PA : TCP ACK 패킷을 보낸다. (위의 -PS와 비슷하지만 방화벽을 우회하기 위해 ACK를 보낸다.)
-PU : UDP핑, 빈UDP패킷을 해당 포트를 보낸다. TCP 필터링을 피해간다.
-PO : IP 프로토콜 핑, ICMP, IGMP, IP패킷을 이용한 스캔
-PR : ARP 스캔

  1. 간단 사용 예
    nmap -v 192.168.1.* : 해당 호스트의 정보를 더 자세하게 보여준다.
    nmap 192.168.1./16 : 192.168.1. 대역대 네트워크 전체를 스캔한다.
    nmap -sp 192.168.1.* : 192.168.1.*가 살아있는지 스캔한다.
    nmap -sR -p 1-20000 192.168.1.200 : 192.168.1.200의 1번부터 20000까지 RPC 포트를 찾는다.
    nmap -sU -PT 192.168.1.200/16 : 192.168.1.200 네트워크 호스트들에게 ACK 보내 응답을 기다리고 열려진 UDP 포트를 찾는다.