기본 콘텐츠로 건너뛰기

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


이 블로그의 인기 게시물

진실만을 전달하라

오직 진실만을 전달하라 개인생활과 직장생활에서 사람들이 자기 생각을 솔직하게 있는 그대로 말했으면 좋겠다고 생각했던 적이 있는가? 그들이 솔직하지 않았을 때, 그들에 대한 신뢰는 어땠는가? 그들이 솔직했을 때, 그들에 대한 신뢰는 어떻게 되었는가? '솔직하게 말하라'는 정직성을 행동으로 보이는 것이다. 이는 성실성, 정직성, 솔직성의 원칙에 기초를 두고 있으며 진실을 말하고 말 뜻을 제대로 전달하는 것을 의미한다. 간혹 진실을 말하고도 말 뜻을 잘못 전달할 수도 있다. 말 뜻을 제대로 전달한다는 것은 오해가 없도록 분명하게 말하는 것을 의미 한다. 워렌 버핏 역시 솔직하게 말하는 타입이다. 그는 매년 회사의 연례 보고서에 첨부되는 경영자 편지에 사실을 있는 그대로 설명한다. 예를 들면 이런식이다. 나는 몇 번 이런 거래를 했습니다. 그리고 내 행동은 결국 회사에 손해를 불러왔습니다. 나는 지난해 그 일을 성공하지 못했습니다. 우리가 이미 확보한 수익원 외에 새로 굵직한 수익원을 추가하기 위해 수십억 달러 규모의 기업을 여러 개 인수하려 했지만 실패하고 말았습니다. 그 사업을 매각하고자 했지만 상황에 정면 대응하지 못해 몇 년을 그냥 흘려보내고 말았습니다. 이처럼 지체된 것은 내 잘못입니다. 솔직함과 반대로 거짓말을 하거나 속이는 행동은 즉시, 혹은 나중에 거짓임이 드러났을 때 부정적인 엄청난 결과를 만들어낸다. 사람들은 대개 노골적으로 거짓말을 하진 않는다. 최소한 뻔뻔하지는 않다는 애기다. 대신 솔직히 말하는 척 가짜 행동을 한다. 가짜 행동에는 에둘러 말하기, 정보 숨기기, 한 입으로 두 말하기, 아첨, 선전, 시늉만 하기 등이 포함된다. 그중 으뜸은 다른 사람의 생각, 감정, 행동을 조작 및 왜곡하는 것이다. 또 다른 가짜 행동은 진실을 말하되 말뜻을 잘못 전달하는 것이다. 겉으로 점잔을 빼면서 쓸데없이 자세히 말하는 것이 여기에 해당한다. 이 모든 행동은 늘 신뢰를 떨어뜨린다. 가정에서 솔직하게 말하기 솔직하게 말하는 것은 조직은 물론 개...

샤다바르(Shad'havâr)

샤다바르는 중세 이슬람 즉 페르시아와 아라비아 민속에서 나오는 유니콘을 닮은 전설적인 동물입니다. 샤다바르 또는 아라스로 불렸습니다. 샤다바르는 로마의 가장 먼 지역에서 살고 있었는데, 아마 이 지역은 비잔틴 제국의 지역 즉 현대의 튀르키예 지역을 의미한다고 말할 수 있습니다. 어두운 숲과 일반 숲, 또는 정글과 사막에 거주한다고 합니다. 머리에 큰 뿔이 있으며 뿔 사이에 가지들이 약 42개가 있는데, 모두 속이 비었다고 합니다. 외형은 사슴과 동물인 가젤과 비슷하다고 합니다. 샤다바르의 큰 뿔은 큰 가치가 있었을 때 때로 왕에게 선물로 바쳤으며, 바람을 통과해 음악을 만들었습니다. 나팔을 한쪽으로 치면 선율이 즐겁고 흥겨웠으며, 반대 방향으로 쓰면 사람을 눈물짓게 만드는 애절한 음악을 연주할 수 있었습니다. 사납고 난폭한 칼카단(Karkadann)과 불행히도 서식지가 같아 경쟁하였고, 이에 따라 개체수가 많이 줄어들었습니다. 샤다바르의 그림을 보면 순한 생물의 모습을 하고 있지만, 유혈과 살인을 즐기는 잔인한 짐승입니다. 바람이 가지의 구멍을 통과하면 기분 좋은 소리가 난다고 합니다. 이 소리가 날 때면, 주변의 모든 동물이 이 기분 좋은 소리를 듣기 위해 샤다바르 주위에 모여 열심히 듣는다고 합니다. 이 기이한 뿔은 고유한 마법의 힘을 지닌 탓에 이 기분 좋은 소리를 듣고 주위에 모이고, 충분히 생물들이 모일 때, 음악은 더욱 공격적인 멜로디로 전환되어 내부 군중은 마법에 걸리게 되고 분노와 화로 가득하게 되어 전쟁 감정으로 진화해 서로 치열한 죽음의 전투로 몰아넣습니다. 군중 내부에서 살육전이 벌어지면, 샤다바르는 폭력적인 군중에게 보이지 않게 하는 다른 음악을 재생하기 때문에 공격받지 않습니다. 충분한 사상자가 발생하면, 대학살 후의 희생자의 살을 먹고 즐깁니다. 샤다바르가 스스로 싸우기에 너무 약하기 때문에 이러한 방법을 통해 다른 생물들이 서로 싸우고 죽이는 방법으로 자기 먹이를 구합니다.

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

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