기본 콘텐츠로 건너뛰기

Nmap 어플리케이션 소개



Nmap은 네트워크 탐색 및 보안 감사를 위한 오픈 소스 유틸리티입니다. 단일 호스트에 잘 작동하지만,  대규모 네트워크를 빠르게 스캔하도록 설계되었습니다Nmap은 일반적으로 보안 감사과 네트워크 스캔에 사용되지만 많은 시스템 및 네트워크 관리자는 네트워크 인벤토리, 서비스 업그레이드 일정 관리, 호스트 또는 서비스 가동 시간 모니터링과 같은 일상적인 작업에 유익합니다. 저의 경우는 네트워크의 포트를 스캔하는 목적으로 자주 사용합니다.

Nmap의 특징은 아래와 같습니다.

  • Free - 무료입니다..
  • Many Function - 네트워크 점검, OS검색, Version 점검 등의 기능을 포함합니다.
  • Powerful - 네트워크에 HOST가 많아도 고속으로 Scan이 가능합니다.
  • Flexible - 대부분의 OS에서 사용 가능합니다. (Windows, macOS, Linux (RPM), Etc)
  • Easy - 그래픽 유저 인터페이스가 간편하고 사용자 친화적입니다.
  • Popular - 많은 사용자들이 이미 사용하고 있습니다.

아래의 링크를 클릭하여 Nmap을 설치할 수 있습니다. 자신의 OS를 확인 후 설치하세요.

Nmap 설치

nmap은 옵션에 따라 스캔된 호스트의 추가 정보를 출력합니다. 스캔된 포트번호, 프로토콜, 서비스이름, 상태(state)를 출력합니다. 

State에는 Open, Filtered, Closed, Unfiltered가 있습니다. 스캔 결과 출력 시 하나의 상태가 아닌 조합된 값(open|filtered, closed|filtered)을 출력할 수도 있습니다.

  • open: 스캔된 포트가 listen 상태이며, 포트가 열려있다는 의미입니다.
  • filtered: 방화벽이나 필터에 막혀 해당 포트의 open, close 여부를 알 수 없습니다.
  • closed: 포트스캔을 한 시점에는 listen 상태가 아님 즉 포트가 닫혀있다는 의미입니다.
  • unfiltered: nmap의 스캔에 응답은 하지만 해당 포트의 open, close 여부는 알 수 없습니다.
Nmap 예시 및 설명

단일 대상

명령어예시설명
nmap 192.168.1.1단일 IP 스캔
nmap 192.168.1.1 192.168.2.1특정 IP 스캔
 nmap 192.168.1.1-254범위 스캔
 nmap scanme.nmap.org도메인 스캔
 nmap 192.168.1.0/24CIDR 표기법을 사용하여 스캔
-iLnmap -iL target.txt파일에서 대상 스캔
-iRnmap -iR 100100개의 임의 호스트 스캔
-excludenmap –exclude 192.168.1.1나열된 호스트 제외

 스캔 기술

명령어예시설명
-sSnmap 192.168.1.1 -sSTCP SYN 포트 스캔(기본값)
-sTnmap 192.168.1.1 -sTTCP 연결 포트 스캔(루트 권한이 없는 기본값)
-sUnmap 192.168.1.1 -SUUDP 포트 스캔
-sAnmap 192.168.1.1 -sATCP ACK 포트 스캔
-sWnmap 192.168.1.1 -sWTCP 윈도우 포트 스캔
-sMnmap 192.168.1.1 -sMTCP 마이몬 포트 스캔

 호스트 검색

명령어예시설명
-SLnmap 192.168.1.1-3 -sL스캔하지 않습니다. 대상만 나열
-snnmap 192.168.1.1/24 -sn포트 스캔을 비활성화합니다. 호스트 검색 전용.
-Pnnmap 192.168.1.1-5 -Pn호스트 검색을 비활성화합니다. 포트 스캔 전용.
-PSnmap 192.168.1.1-5 -PS22-25,80포트 x에서 TCP SYN 검색.
기본적으로 포트 80
-PAnmap 192.168.1.1-5 -PA22-25,80포트 x에서 TCP ACK 검색.
기본적으로 포트 80
-PUnmap 192.168.1.1-5 -PU53포트 x에서 UDP 검색.
기본적으로 포트 40125
-PRnmap 192.168.1.1-1/24 -PR로컬 네트워크에서 ARP 검색
-Nnmap 192.168.1.1 -n절대 DNS 확인 하지마세요

 포트 대상

명령어예시설명
-pnmap 192.168.1.1 -p 21포트 x에 대한 포트 스캔
-pnmap 192.168.1.1 -p 21-100포트 범위
-pnmap 192.168.1.1 -p U:53,T:21-25,80포트 스캔 여러 TCP 및 UDP 포트
-p-nmap 192.168.1.1 -p-포트 스캔 모든 포트
-pnmap 192.168.1.1 -p http,https서비스 이름에서 포트 스캔
-Fnmap 192.168.1.1 -F빠른 포트 스캔(100개 포트)
–top-portsnmap 192.168.1.1 –top-ports 2000포트 스캔 상위 x 포트
-p-65535nmap 192.168.1.1 -p-65535범위의 초기 포트를 생략하면 포트 1에서 스캔이 시작됩니다.
-p0-nmap 192.168.1.1 -p0-범위의 끝 포트를 벗어나면 스캔이 포트 6553까지 합니다.

 서비스 및 버전 감지

명령어예시설명
-sVnmap 192.168.1.1 -sV포트에서 실행 중인 서비스 버전 확인 시도
-sV –version-intensitynmap 192.168.1.1 -sV –version-intensity 8Intensity 레벨 0 ~ 9. 숫자가 높을수록 정확도가 높아집니다.
-sV –version-lightnmap 192.168.1.1 -sV –version-light조명 모드를 활성화합니다. 정확성의 가능성이 낮습니다. 더 빠르게
-sV -version-allnmap 192.168.1.1 -sV –version-all강도 레벨 9를 활성화합니다. 정확성의 가능성이 더 높습니다. 느리게
-Anmap 192.168.1.1 -AOS 감지, 버전 감지, 스크립트 스캔 및 경로 추적 가능

 OS 감지

명령어예시설명
-Onmap 192.168.1.1 -OTCP/IP 스택 핑거프린팅을 사용한 원격 OS 감지
-O -osscan-limitnmap 192.168.1.1 -O -osscan-limit하나 이상의 열린 TCP 포트와 하나의 닫힌 TCP 포트가 없으면 호스트에 대해 OS 감지를 시도하지 않습니다.
-O -osscan-guessnmap 192.168.1.1-O -osscan-guessNmap이 더 적극적으로 추측하도록 합니다.
-O –max-os-triesnmap 192.168.1.1 -O –max-os-tries 1대상에 대한 OS 감지 시도의 최대 x 수 설정
-Anmap 192.168.1.1 -AOS 감지, 버전 감지, 스크립트 스캔 및 경로 추적 가능

 타이밍 및 성능

명령어     예시설명
-T0 

nmap 192.168.1.1 -T0편집증 (0) 침입 탐지 시스템 회피
-T1nmap 192.168.1.1 -T1교활한 (1) 침입 탐지 시스템 회피
-T2nmap 192.168.1.1 -T2폴라이트(2)는 더 적은 대역폭을 사용하고 더 적은 대상 시스템 리소스를 사용하도록 스캔 속도를 늦춥니다.
-T3nmap 192.168.1.1 -T3기본 속도인 일반(3)
-T4nmap 192.168.1.1 -T4공격적(4) 스캔 속도를 높입니다. 합리적으로 빠르고 안정적인 네트워크에 있다고 가정합니다.
-T5nmap 192.168.1.1 -T5미친 (5) 스캔 속도; 매우 빠른 네트워크에 있다고 가정합니다.
명령어예시 입력설명
–host-timeout <time>1초; 4m; 2h이 시간이 지나면 목표물을 포기하십시오.
–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>1초; 4m; 2h프로브 왕복 시간 지정
–min-hostgroup/max-hostgroup <size<size>50; 1024병렬 호스트 스캔 그룹 크기
–min-parallelism/max-parallelism <numprobes>10; 1프로브 병렬화
–scan-delay/–max-scan-delay <time>20ms; 2초; 4m; 5h프로브 간 지연 조정
–max-retries <tries>3최대 포트 스캔 프로브 재전송 횟수 지정
–min-rate <number>100초당 <numberr>보다 느리지 않은 패킷 전송
–max-rate <number>100초당 <숫자>보다 빠르지 않은 패킷 전송

 방화벽 / IDS 회피 및 스푸핑

명령어예시설명
-fnmap 192.168.1.1 -f요청된 스캔(ping 스캔 포함)은 작은 조각난 IP 패킷을 사용합니다. 패킷 필터의 경우 더 어렵습니다.
-mtunmap 192.168.1.1 –mtu 32나만의 오프셋 크기 설정
-Dnmap -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1스푸핑된 IP에서 스캔 보내기
-Dnmap -D decoy-ip1, decoy-ip2, your-own-ip, decoy-ip3, decoy-ip4 remote-host-ip위의 예 설명
-Snmap -S www.microsoft.com www.facebook.comMicrosoft에서 Facebook 스캔(-e eth0 -Pn이 필요할 수 있음)
-gnmap -g 53 192.168.1.1주어진 소스 포트 번호 사용
-proxiesnmap -proxies http://192.168.1.1:8080, http://192.168.1.2:8080 192.168.1.1HTTP/SOCKS4 프록시를 통한 릴레이 연결
-data-lengthnmap -data-length 200 192.168.1.1전송된 패킷에 임의의 데이터 추가

IDS 회피 명령의 예제

nmap -f -t 0 -n -Pn - 데이터 길이 200 -D
192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1

 산출

스위치예시설명
-oNnmap 192.168.1.1 -on normal.filenormal.file 파일에 대한 일반 출력
-oXnmap 192.168.1.1 -oX xml.filexml.file 파일에 대한 XML 출력
-oGnmap 192.168.1.1 -oG grep.filegrep.file 파일에 대한 Grepable 출력
-oAnmap 192.168.1.1 -oA results한 번에 3가지 주요 형식으로 출력
-oG -nmap 192.168.1.1 -oG -화면에 Grepable 출력. -oN -, -oX - 사용 가능
-append-outputnmap 192.168.1.1 -on file.file -append-output이전 스캔 파일에 스캔 추가
-Vnmap 192.168.1.1 -v자세한 수준을 높입니다(효과를 높이려면 -vv 이상 사용).
-dnmap 192.168.1.1 -d디버깅 수준을 높입니다(효과를 높이려면 -dd 이상 사용).
-reasonnmap 192.168.1.1 -reason-vv와 동일한 출력으로 포트가 특정 상태에 있는 이유를 표시합니다.
-opennmap 192.168.1.1 -open열려 있는(또는 열려 있는) 포트만 표시
-packet-tracenmap 192.168.1.1 -T4-packet-trace전송 및 수신된 모든 패킷 표시
-iflistnmap -iflist호스트 인터페이스 및 경로 표시
-resumenmap –resume result.file스캔 재개

유용한 Nmap 출력 예제

명령설명
nmap -p80 -sV -oG – –open 192.168.1.1/24 | grep open웹 서버를 검색하고 웹 서버를 실행 중인 IP를 표시하기 위해 grep
nmap -iR 10 -n -oX out.xml | grep "Nmap" | 컷 -d " " -f5 > live-host.txt라이브 호스트의 IP 목록 생성
nmap -iR 10 -n -oX out2.xml | grep "Nmap" | 컷 -d " " -f5 >> live-hosts.txt라이브 호스트 목록에 IP 추가
ndiff scanl.xml scan2.xmlndif를 사용하여 nmap의 출력 비교
xsltproc nmap.xml -o nmap.htmlnmap xml 파일을 html 파일로 변환
grep "open" results.nmap | sed -r 's/ +/ /g' | sort | uniq -c | sort -rn | less포트가 나타나는 빈도의 역순 목록

 기타 옵션

스위치예시설명
-6nmap -6 2607:f0d0:1002:51::4IPv6 스캔 활성화
-hnmap -hnmap 도움말 화면

 기타 유용한 Nmap 명령

명령설명
nmap -iR 10 -PS22-25,80,113,1050,35000 -v -sn포트 x에서만 검색, 포트 스캔 없음
nmap 192.168.1.1-1/24 -PR -sn -vv로컬 네트워크에서만 Arp 검색, 포트 스캔 없음
nmap -iR 10 -sn -추적 경로임의의 대상으로 추적, 포트 스캔 없음
nmap 192.168.1.1-50 -sL -dns-server 192.168.1.1호스트에 대한 내부 DNS 쿼리, 대상만 나열

참조 자료: StationX


이 블로그의 인기 게시물

논어 학이편: 꾀고리의 울음 소리

어느 이른 봄날 아침이었다. 공자는 아들 공이를 데리고 뜰안을 거닐고 있었다. 이는 잉어를 뜻하는 글자로, 노나라의 왕이 공자에게 아들을 낳은 것을 축하하는 선물로 잉어를 보내 주었기 때문에 지은 이름이었다. 어디서 꾀꼬리의 울음소리가 들려 왔다. 아름다운 소리야. 공자는 혼자서 중얼거렸다. 봄이라 해도 아직 쌀쌀한 날씨였다. 또 꾀꼬리의 울음소리가 들려왔다. 꾀꼴, 꾀꼴 무척 아름다운 소리로, 아기 꾀꼬리의 울음소리였다.  모든 게 저렇게 점점 성숙해 가는 것이야. 공자는 빙그레 미소를 지으며 나직한 소리를 말하였다. 공자의 뒤를 따라가던 이는 귀를 기울였지만, 아버지가 혼자말로 조용히 말했기 때문에 무슨 말을 하는지 잘 알아들을 수 없었다. 공이 공자는 아들을 부르며 돌아보았다. 올해 열두 살이 되었지? 네 공이는 아버지가 왜 갑자기 나이를 물으시는지 궁금했지만 물어 보지 못했다. 그래 그렇지 공자는 다시 걷기 시작했다. 연못가에 이르자 연못 속을 들여다보며 말했다. 저것 봐라. 연못 속에 잉어가 있구나 아직 물이 찬 연못 속에는 잉어가 몇 마리 조용히 헤엄치고 있었다. 잉어는 대단히 귀한 물고기야. 서로 싸우지도 않고 함부로 움직이지도 않아. 물고기의 왕이지 공자는 공이의 얼굴을 보고 빙그레 웃어 보였다. 그 때, 또 꾀꼬리의 울음소리가 들려 왔다. 꾀꼬리가 울고 있구나 아버지가 이렇게 말하자. 공이는 그제야 비로소 꾀꼬리의 울음소리를 들을 수 있었다. 네 네 귀에는 저 꾀꼬리의 울음소리가 어떻게 들리느냐? ........ 저 소리가 모두 똑같이 들리느냐? 네! 이는 꾀꼬리의 울음소리는 모두 똑같다고 생각했다. 그러나 대답을 하고 보니. 자기의 대답이 틀렸다는 생각이 들었다. 음. 같지 않아 공자는 잠시 멈춰 서서 꾀꼬리가 다시 울기를 기다리는 듯 하다가 다시 걷기 시작했다. 아기 꾀꼬리와 아빠 꾀꼬리는 울음소리가 달라. 그 때, 또 꾀꼬리가 울었다.  저건, 아빠 꾀꼬리야. 목 깊은 곳에서 맑은 소리가 나오지 아침의 맑고 부드러운 공기가...

판타지: 포세그리멘(Fossegrimmen)

포세그리멘은 스칸디나비아지역(노딕 신화)에 알려진 수중-요괴입니다. 노르웨이어로는 Grim 또는 스웨덴어로는 Strömkarlen으로 불리며 민속 전래 동화에는 물의 정령 또는 트롤로 취급됩니다. 폭포 아래에 아름다운 젊은이가 알몸으로 앉아 바이올린을 연주한다고 합니다. 스칸디나비아 전설에 따르면 포세그리멘은 음악을 연주해, 나무와 물의 소리를 만들어냅니다. 매우 재능있는 바이올린 연주자이며, 바이올린 연주를 아주 잘 가르치는 요괴라고 이야기합니다. 포세그리멘이 연주와 노래를 하게 되면, 너무 감미로워 여성들과 아이들이 호수나 개울로 빠져 익사 한다고 합니다, 하지만 그의 행동이 악의를 품은 것은 아니라고 합니다. 주민들은 목요일 저녁에 이웃집에서 훈제한 양고기를 훔쳐, 포세그리멘에게 은밀히 제물로 바치면 바이올린을 연주하는 방법과 즐겁게 노는 방법을 가르쳐 준다고 합니다.  만약 제물이 만족스럽다면 주민의 오른손을 잡고 현을 따라 모든 손가락에 피가 날 때까지 가르치며, 이후 가르침을 받은 주민은 훌륭한 바이올린 연주자가 됩니다. 제물이 만족스럽지 않다면 바이올린을 조정하는 방법만 가르친다고 합니다.