헛찌의 정보 모음집
Nmap(Network mapper) 대하여... 본문
Nmap이란?
-> 네트워크 검색 및 보안 검사를 위한 무료 오픈 소스 유틸리티 툴이다.
-> 서비스 업데이트 일정관리, 네트워크 목록 탐색, 서비스 가동시간 모니터링 등등 네트워크의 일상적인 모습을 탐색하기에 유리한 툴이다.
-> 변형되지 않은 원시 IP 패킷을 사용하여 네트워크에서 사용할 수 있는 호스트, 해당 호스트가 제공하는 서비스, 실행중인 운영체제(OS 버전), 패킷필터와 방화벽 유형, 동작 상태 등을 확인할 수 있다.
여기서 Network mapper(네트워크 매퍼)란?
-> 매핑(mapping)이라는 것은 프로그래밍 용어에선 키(key) 역할을 하는 데이터와 값(value) 역할을 하는 데이터를 짝을 지어 저장한다 라는 뜻이다. 네트워크 상에 있는 기기들과 대상들이 가지고 있는 데이터를 묶어 표시 해주는 것을 도와주는 소프트웨어이다.
Nmap의 장점
1. 유연하다
-> IP필터, 방화벽, 라우터 등 장애물로 가득한 네트워크를 매핑 하기 위한 다양한 기술들을 지원한다. (ex : 포트스캐닝, OS감지, 버전감지, 핑 스윕 등)
2. 강력하다
-> 지정하는 대상에 따라 달라지겠지만 제공하는 기술은 수십만대의 시스템으로 구성된 네트워크를 검색
할 수 있다. 그야말로 강력하다.
3. 휴대용
-> 어떤 운영체제에서든 호환이 가능하다. Linux, widows, macOs 등 대부분의 운영체제에서 설치 및 운용이 가능하다.
4. 쉽다
-> 다양하면서 강력하게 사용할 수 있는 고급기능들을 제공하지만 'nmap -v -A'와 같이 간단하게 사용이 가능하다.
5. 무료다
-> 제공되는 모든 기술들은 무료로 사용이 가능하다.
6. 문서화가 잘 되어있다
-> Nmap 공식 홈페이지 내에 튜토리얼부터 시작하여 최신 매뉴얼 페이지, 업데이트 사항 등이 다양한 언어의 문서 또는 책으로 잘 정리되어 있다.
7. 테스트할 대상이 있다
-> Nmap 개발사에서 테스트 목적으로 제공하는 호스트(scanme.nmap.org)가 존재한다. (홈페이지 내에서는 하루 12번 이상은 하지 말라고 경고하긴 한다.)
Nmap 사용법
기본적인 사용법
=> nmap [ 스캔유형 ] [ 옵션 ] { 대상 사양 }
주요 옵션 정리
1. 대상 사양(대상 정보)
- 기본 사용법에 대상을 지정하는 방법
- -> 호스트 이름, IP 주소, 네트워크 범위 등 스캔할 대상의 IP주소나 호스트 이름을 지정한다. (Ex : scanme.nmap.org 또는 8.8.8.8/24 또는 192.168.0.1-255 등등)
- 관련된 옵션
- -iL <input filename> : 스캔할 호스트 / 네트워크를 파일 목록에서 지정한다.
- -iR <num Host> : 무작위로 대상을 선택한다.
- --exclude <host1 [host2],[host3]> : 스캔에서 제외할 호스트 / 네트워크 대상 지정
- --exclude <exclude_file> : 스캔에서 제외할 호스트 / 네트워크를 파일 목록에서 제외한다.
2. 호스트 검색 옵션
- 호스트에 대해서 어떤 스캔을 진행할지 정한다.
- 관련된 옵션
- -sL : 검색할 대상만 나열한다. (결과값이 정말 검색한 대상만 나온다.)
- -sn : Ping 검색만 하겠다. 포트 검색은 비활성화 한다.
- -Pn : 모든 호스트를 온라인으로 처리한 상태로 검색을 마무리하겠다.
- -PS / PA / PU / PY [프로토콜] : 지정한 포트에 대한 TCP SYN/ACK, UDP 또는 SCTP 검색을 한다.
- -n : 역방향 DNS 주소 확인을 수행하지 않는다. (스캔시간을 단축 시킬 수 있다.)
- -R : DNS 주소 확인을 필수로 하겠다.
3. 포트 사양 및 검색 순서 지정
- -p <포트 범위> : 지정된 포트만 검색하겠다.
- --exclude-ports : 지정된 포트를 스캔 목록에서 제외하겠다.
- -F : 고속모드, 기본 검사 보다 적은 수의 포트를 검사하겠다.
4. 서비스 버전 감지
- -sV : 서비스 버전 정보를 확인하기 위해 열린 포트를 조사한다.
- --version-intensity <level> : 0-9까지 조사의 강도를 정한다.
- --version-light : 가장 가능성이 높은 조사 방향으로 정한다.
- --version-all : 모든 조사를 시도합니다.
- --version-trace : 검색 활동을 자세한 버전으로 표시한다.
5. 운영체제 OS 감지
- -O : OS(운영체제) 감지 시스템을 활성화한다.
- --osscan-guess : OS를 보다 적극적으로 추측한다.(감지가 안 될 경우 높은 확률의 os를 출력한다.
6. OUTPUT(출력값)
- -v : 스캔한 정보를 자세하게 출력한다.(효과를 더 높이려면 -vv를 사용한다.)
- --reason : 포트가 특정상태에 있는 이유를 표시한다.
- --open : 열려 있는(또는 열려 있을 수도 있는) 포트만 표시한다.
- --packet-trace : 보내고 받은 모든 패킷을 표시한다.