nmap이란?
nmap이란, 보안스캐너 툴의 일종으로,
컴퓨터와 서비스를 찾거나, 원격 컴퓨터들의 자세한 정보를 알아낼 수 있습니다.
자세한 정보에는 운영 체제, 장치 종류, 운영 시간, 서비스에 쓰이는 소프트웨어 제품, 그 제품의 정확한 버전, 방화벽 등을 확인할 수 있습니다.
nmap으로는 아래와 같은 기능을 수행할 수 있습니다.
- 호스트 탐지 - 네트워크상의 컴퓨터들을 확인한다. 예를 들어 ping 응답이나 특정 포트가 열린 컴퓨터들을 나열한다.
- 포트 스캔 - 하나 혹은 그 이상의 대상 컴퓨터들에 열린 포트들을 나열한다.
- 버전 탐지 - 응용 프로그램의 이름과 버전 번호를 확인하기 위해 원격 컴퓨터의 네트워크 서비스에 주의를 기울인다.
- 운영 체제 탐지 - 원격으로 운영 체제와 네트워크 장치의 하드웨어 특성을 확인한다.
참고로, nmap은 network mapper의 줄임말로 해당용어를 지었습니다.
nmap 설치하기
아래 주소에서 다운받을 수 있습니다.
https://nmap.org/download.html#windows
npcap도 같이 설치해주세요.
nmap 사용법
nmap은 아래와 같은 명령어로 사용할 수 있습니다.
1 | > nmap [1.스캔유형] [2.옵션] [호스트(ip)] |
스캔 유형
-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-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 스캔
- 간단 사용 예
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 포트를 찾는다.