( 1 ) Nmap 설명
고든 라이온(Gordon Lyon)님께서 개발한 보안 스캐너로 오픈 소스 툴임.
네트워크나 서비스를 검색하고 보안 감사를 검사하며 네트워크 지도까지 만듬.
호스트, 호스트가 제공하는 서비스(어플리케이션 이름 및 버전), 실행 중인 운영 체제(버전까지 포함), 방화벽 유형을 검색할 수 있으며 시스템 및 네트워크 운영, 모니터링, 작업 등에 유용함.
그러나 악의적으로 정보 수집을 하기 위한 해킹 툴이기도 함.
해커들도 Nmap 툴을 기본적으로 사용하며 정보보안, IT 직종에 종사하신 분들은 업무상 반드시 숙지하길 바람.
홈페이지 :
( 2 ) Nmap 옵션 설명
Nmap 7.80 버전에서 옵션 정보를 확인함.
Nmap 7.80 ( https://nmap.org )
사용법 : nmap [Scan Type(s)] [Options] {target specification}
타켓 사양 :
호스트 이름, IP 이름, 네트워크 등을 전달할 수 있음.
예 : scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL <inputfilename>: 호스트/네트워크 목록에서 입력
-iR <num hosts>: 무작위 대상 선택
--exclude <host1[,host2][,host3],...>: 호스트/네트워크 제외
--excludefile <exclude_file>: 파일에서 목록 제외
호스트 발견 :
-sL: 목록 스캔 - 단순 스캔 대상을 나열
-sn: Ping 스캔 - 포트 스캔 비활성화
-Pn: 모든 호스트 온라인 처리 - 호스트 검색 건너뛰기
-PS/PA/PU/PY[portlist]: 주어진 포트에 대한 TCP SYN/ACK, UDP, SCTP 검색
-PE/PP/PM: ICMP 에코, 타임스탬프, 넷마스크 요청 검색 프로브(probes)
-PO[protocol list]: IP Protocol Ping
-n/-R: DNS 확인 안 함/항상 확인 (기본값 : 가끔(sometimes))
--dns-servers <serv1[,serv2],...>: 사용자 지정 DNS 서버 지정
--system-dns: OS의 DNS 리졸버(resolver) 사용
--traceroute: 각 호스트에 대한 추적 홉(hop) 경로
스캔 기술 :
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 스캔
-sU: UDP 스캔
-sN/sF/sX: TCP Null, FIN, and Xmas 스캔
--scanflags <flags>: TCP 스캔 플래그 사용자 지정
-sI <zombie host[:probeport]>: Idle 스캔
-sY/sZ: SCTP INIT/COOKIE-ECHO 스캔
-sO: IP protocol 스캔
-b <FTP relay host>: FTP bounce 스캔
포트 사양 및 스캔 순서 :
-p <port ranges>: 지정된 포트만 스캔
예: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>: 스캔에서 지정된 포트 제외
-F: 빠른 모드 - 기본 스캔보다 적은 수의 포트 스캔
-r: 연속적으로 포트 스캔 - 무작위로 사용하지 마세요
--top-ports <number>: 가장 일반적인 포트에서 지정된 갯수만큼 스캔
--port-ratio <ratio>: 비율 보다 일반적인 스캔 포트
서비스/버전 탐지 :
-sV: 열린 포트를 조사하여 서비스/버전 정보 확인
--version-intensity <level>: 0 ~ 9 설정 (모든 프로브 시도, 여기서 0은 라이트(light))
--version-light: 가능성이 가장 높은 프로브로 제한 (강도 2)
--version-all: 모든 단일 프로브 시도 (강도 9)
--version-trace: 자세한 버전 스캔 활동 표시 (디버깅용)
스크립트 스캔 :
-sC: --script=default 옵션과 동일
--script=<Lua scripts>: <Lua scripts> 는 쉼표로 구분된 디렉토리, 스크립트 파일 또는 스크립트 범주 목록임.
--script-args=<n1=v1,[n2=v2,...]>: 스크립트에 인수 제공
--script-args-file=filename: 파일에 NSE 스크립트 인수 제공
--script-trace: 주고받은 모든 데이터 표시
--script-updatedb: 스크립트 데이터베이스 업데이트
--script-help=<Lua scripts>: 스크립트 도움말 표시 (<Lua scripts> 는 쉼표로 구분된 스크립트 파일 또는 스크립트 범주 목록임.)
OS 탐지 :
-O: OS 탐지 활성화
--osscan-limit: OS 탐지를 유망한 대상으로 제한
--osscan-guess: OS 를 더 적극적으로 추측
타이밍 및 성능 :
<time>을 사용하는 옵션은 초 단위이거나 값에 'ms'(밀리초), 's'(초), 'm'(분) 또는 'h'(시간) 를 추가함. (예 : 30m)
-T<0-5>: 타이밍 템플릿 설정 (높을수록 빠름)
--min-hostgroup/max-hostgroup <size>: 병렬 호스트 스캔 그룹 크기
--min-parallelism/max-parallelism <numprobes>: 프로브 병렬화
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: 프로브 왕복 시간 지정
--max-retries <tries>: 포트 스캔 프로브 재전송 수를 제한
--host-timeout <time>: 지정된 시간 지나면 대상 포기
--scan-delay/--max-scan-delay <time>: 프로브 간 지연 조정
--min-rate <number>: 초당 지정된 숫자보다 느리지 않게 패킷 보내기
--max-rate <number>: 초당 지정된 숫자보다 빠르게 패킷 보내기
방화벽/IDS 회피 및 스푸핑 :
-f; --mtu <val>: fragment 패킷 (선택적으로 주어진 MTU 포함(optionally w/given MTU))
-D <decoy1,decoy2[,ME],...>: 미끼(decoys)로 스캔 은폐
-S <IP_Address>: 스푸핑 소스 주소
-e <iface>: 지정된 인터페이스 사용
-g/--source-port <portnum>: 주어진 포트 번호 사용
--proxies <url1,[url2],...>: HTTP/SOCKS5 프록시를 통한 릴레이 연결
--data <hex string>: 전송된 패킷에 사용자 지정 페이로드 추가
--data-string <string>: 전송된 패킷에 사용자 지정 ASCII 문자열 추가
--data-length <num>: 전송된 패킷에 임의의 데이터 추가
--ip-options <options>: 지정된 IP 옵션으로 패킷 보내기
--ttl <val>: IP TTL(Time-To-Live) 필드 설정
--spoof-mac <mac address/prefix/vendor name>: MAC 주소 스푸핑
--badsum: Send packets with a bogus TCP/UDP/SCTP checksum
결과물 :
-oN/-oX/-oS/-oG <file>: 주어진 파일 이름에 대해 각각 일반, XML, s|<rIpt kIddi3, Grepable 형식 스캔 결과물
-oA <basename>: 한번에 세 가지 주요 형식으로 출력
-v: 상세 수준을 높이기 (효과를 높이려면 -vv 사용)
-d: 디버깅 수준 높이기 (효과를 높이려면 -dd 사용)
--reason: 포트가 특정 상태에 있는 이유 표시
--open: 열려있거나 열려있을 가능성이 있는 포트만 표시
--packet-trace: 보내고 받은 모든 패킷 표시
--iflist: 호스트 인터페이스 및 경로 표시 (디버깅용)
--append-output: 지정된 결과 파일 대신에 추가
--resume <filename>: 중단된 스캔 재개
--stylesheet <path/URL>: XML 결과물을 HTML 로 변환하는 XSL 스타일 시트
--webxml: 보다 이식 가능한 XML 를 위해 Nmap.Org 의 참조 스타일 시트
--no-stylesheet: XSL 스타일 시트와 XML 결과물의 연결 방지
기타 :
-6: IPv6 스캔 활성화
-A: OS 탐지, 버전 탐지, 스크립트 스캔 및 경로 활성화
--datadir <dirname>: 사용자 지정 Nmap 데이터 파일 위치 지정
--send-eth/--send-ip: raw 이더넷 프레임 또는 IP 패킷을 아용하여 전송
--privileged: 사용자에게 완전한 권한이 있다고 가정함
--unprivileged: 사용자에게 raw 소켓 권한이 없다고 가정함
-V: 버전 번호 출력
-h: 도움말 요약 페이지 출력
예제 :
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
더 많은 옵션과 예제는 MAN 페이지를 참조하십시오.
(https://nmap.org/book/man.html)
( 3 ) Nmap 사용 예제
1. 타켓 선택
단일 IP 스캔
nmap 192.168.100.128
특정 IP 스캔
nmap 192.168.100.128 192.168.100.129
호스트 스캔
nmap www.koromoon.com
IP 범위 스캔
nmap 192.168.100.128-254
서브넷 스캔
nmap 192.168.100.0/24
텍스트 파일에서 대상 스캔
nmap -iL koromoon_ip_list.txt
2. 포트 선택
단일 포트 스캔
nmap -p 21 192.168.100.128
잘 알려진 포트 스캔
nmap -p 1-1023 192.168.100.128
100 개의 잘 알려진 빠른 포트 스캔
nmap -F 192.168.100.128
서비스 이름으로 포트 스캔
nmap -p http,https 192.168.100.128
모든 포트 스캔
nmap -p- 192.168.100.128
지정된 UDP 및 TCP 포트 스캔
nmap -p U:53,T:21-25,80 192.168.100.128
3. 스캔 유형
TCP 연결을 사용하여 스캔
nmap -sT 192.168.100.128
TCP SYN 스캔을 사용하여 스캔
nmap -sS 192.168.100.128
UDP 포트 스캔
nmap -sU -p 123,161,162 192.168.100.128
선택한 포트 검색 (검색 무시)
nmap -Pn -F 192.168.100.128
4. 서비스 및 OS 감지
OS 및 서비스 감지
nmap -A 192.168.100.128
표준 서비스 감지
nmap -sV 192.168.100.128
공격적인 서비스 감지 (범위는 0 ~ 9, 범위가 높을수록 정확성이 높아짐)
nmap -sV –version-intensity 5 192.168.100.128
5. 결과물 형식
기본 결과물을 파일에 저장
nmap -oN result.txt 192.168.100.128
결과물을 XML 로 저장
nmap -oX result.xml 192.168.100.128
형식화된 결과물로 저장 (Grepable)
nmap -oG result.txt 192.168.100.128
모든 형식으로 결과물 저장
nmap -oA result 192.168.100.128
6. 스크립팅 엔진
기본 안전 스크립트를 사용하여 스캔
nmap -sV -sC 192.168.100.128
스크립트에 대한 도움말보기
nmap --script-help http-wordpress-enum
특정 스크립트(SQL Injection)를 사용하여 스캔
nmap -p 80 -script=http-sql-injection 192.168.100.128
HTTP 관련 스크립트로만 스캔(엄청 오래 걸림)
nmap -p 80 --script=http* 192.168.100.131
UDP DDOS 반사공격 가능한 좀비 검색
nmap -sU -A -PN -n -pU:19,53,123,161 -script=ntp-monlist,dns-recursion,snmp-sysdescr 192.168.100.0/24
스크립트 데이터베이스 업데이트
nmap –script-updatedb
7. 방화벽/IDS 회피 및 스푸핑
작은 조각화된 IP 패킷 사용하는 스캔(ping 스캔 포함)
nmap -f 192.168.100.128
자신만의 오프셋 크기 설정해서 스캔
nmap --mtu 32 192.168.100.128
스푸핑된 IP 에서 스캔 보내기 (-D 옵션값들은 조작된 IP 임)
nmap -D 192.168.100.1,192.168.100.2,192.168.100.3,192.168.100.4 192.168.100.128
주어진 소스 포트 번호 사용
nmap -g 53 192.168.100.128
HTTP/SOCKS4 프록시를 통한 릴레이 연결
nmap --proxies http://www.koromoon.com:8080, http://www.koromoon2.com:8080 192.168.100.128
전송된 패킷에 임의의 데이터를 추가하는 스캔
nmap --data-length 200 192.168.100.128
고도화된 IDS 회피 스캔
nmap -f -t 0 -n -Pn –data-length 200 -D 192.168.100.1,192.168.100.2,192.168.100.3,192.168.100.4 192.168.100.128
============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.
댓글 없음:
댓글 쓰기