nmap
- Network Mapper
- 네트워크 탐지 및 보안 감사 도구
nmap -h
사용법: nmap [스캔 유형] [옵션] {대상 사양}
대상 사양:
호스트 이름, 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: 핑 스캔 - 포트 스캔 비활성화
-Pn: 모든 호스트를 온라인으로 간주 -- 호스트 탐지 건너뜀
-PS/PA/PU/PY[portlist]: 주어진 포트에 대해 TCP SYN/ACK, UDP 또는 SCTP 탐지
-PE/PP/PM: ICMP 에코, 타임스탬프 및 넷마스크 요청 탐지
-PO[protocol list]: IP 프로토콜 핑
-n/-R: DNS 해석을 전혀 하지 않거나/항상 해석합니다 [기본값: 때때로]
--dns-servers <serv1[,serv2],...>: 사용자 지정 DNS 서버 지정
--system-dns: OS의 DNS 리졸버 사용
--traceroute: 각 호스트에 대한 홉 경로 추적
스캔 기술:
-sS/sT/sA/sW/sM: TCP SYN/연결()/ACK/윈도우/마이몬 스캔
-sU: UDP 스캔
-sN/sF/sX: TCP 널, FIN 및 XMAS 스캔
--scanflags <flags>: TCP 스캔 플래그 사용자 지정
-sI <zombie host[:probeport]>: idle 스캔
-sY/sZ: SCTP INIT/COOKIE-ECHO 스캔
-sO: IP 프로토콜 스캔
-b <FTP relay host>: FTP 바운스 스캔
포트 사양 및 스캔 순서:
-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>: 가장 일반적인 <number> 포트를 스캔합니다.
--port-ratio <ratio>: <ratio>보다 더 일반적인 포트를 스캔합니다.
서비스/버전 탐지:
-sV: 열린 포트를 탐지하여 서비스/버전 정보를 확인합니다.
--version-intensity <level>: 0(가벼운)부터 9(모든 프로브 시도)까지 설정합니다.
--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>: 초당 <number> 패킷보다 느리지 않게 전송
--max-rate <number>: 초당 <number> 패킷보다 빠르게 전송하지 않음
방화벽/IDS 회피 및 스푸핑:
-f; --mtu <val>: 패킷을 분할합니다(선택적으로 주어진 MTU로).
-D <decoy1,decoy2[,ME],...>: 기만자를 사용하여 스캔을 숨깁니다.
-S <IP_Address>: 출발지 주소를 스푸핑합니다.
-e <iface>: 지정된 인터페이스 사용
-g/--source-port <portnum>: 주어진 포트 번호 사용
--proxies <url1,[url2],...>: HTTP/SOCKS4 프록시를 통해 연결을 중계합니다.
--data <hex string>: 전송된 패킷에 사용자 정의 페이로드 추가
--data-string <string>: 전송된 패킷에 사용자 정의 ASCII 문자열 추가
--data-length <num>: 전송된 패킷에 랜덤 데이터 추가
--ip-options <options>: 지정된 IP 옵션으로 패킷 전송
--ttl <val>: IP 생존 시간 필드 설정
--spoof-mac <mac address/prefix/vendor name>: MAC 주소 스푸핑
--badsum: 잘못된 TCP/UDP/SCTP 체크섬으로 패킷 전송
출력:
-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>: 중단된 스캔을 재개합니다.
--noninteractive: 키보드를 통한 런타임 상호작용 비활성화
--stylesheet <path/URL>: XML 출력을 HTML로 변환하는 XSL 스타일시트
--webxml: 더 휴대성이 좋은 XML을 위해 Nmap.Org에서 스타일시트 참조
--no-stylesheet: XML 출력과 XSL 스타일시트의 연관 방지
기타:
-6: IPv6 스캔 활성화
-A: OS 탐지, 버전 탐지, 스크립트 스캔 및 트레이서우트 활성화
--datadir <dirname>: 사용자 지정 Nmap 데이터 파일 위치 지정
--send-eth/--send-ip: 원시 이더넷 프레임 또는 IP 패킷 사용하여 전송
--privileged: 사용자가 완전한 권한을 갖고 있다고 가정
특징
1. 호스트 탐지: Nmap은 네트워크에서 활성화된 호스트를 식별할 수 있다. 이는 ICMP 핑, TCP 핑, UDP 핑 등의 방법을 통해 수행된다.
2. 포트 스캐닝: 사용자가 지정한 호스트에서 열린 포트를 스캔하고, 각 포트에서 실행 중인 서비스 정보를 수집할 수 있다. Nmap은 TCP 및 UDP 포트를 스캔할 수 있는 여러 가지 방법을 제공한다.
3. 서비스 및 버전 탐지: 열린 포트에 대해 Nmap은 서비스 및 해당 버전 정보를 수집할 수 있다. 이는 보안 취약점을 평가하는 데 유용하다.
4. 운영 체제 탐지: Nmap은 호스트의 운영 체제를 식별하는 기능을 제공한다. 이는 TCP/IP 스택의 특성을 분석하여 수행된다.
5. 스크립트 엔진: Nmap은 Lua로 작성된 스크립트를 실행하여 다양한 기능을 추가할 수 있는 Nmap Scripting Engine(NSE)을 제공한다. 이를 통해 특정 서비스에 대한 공격 탐지, 정보 수집 및 자동화된 작업이 가능하다.
6. 타이밍 및 성능 조정: Nmap은 스캔 속도 및 패킷 전송 간의 지연 시간을 조정할 수 있는 다양한 옵션을 제공하여 네트워크 환경에 맞는 최적의 스캔을 수행할 수 있도록 한다.
7. 방화벽 및 IDS 회피: Nmap은 방화벽 및 침입 탐지 시스템(IDS)을 우회할 수 있는 다양한 스캔 기법을 제공하여 사용자에게 더 많은 유연성을 제공한다.
출력 내용
1. 호스트 탐지: Nmap은 네트워크에서 활성화된 호스트를 식별할 수 있다. 이는 ICMP 핑, TCP 핑, UDP 핑 등의 방법을 통해 수행된다.
2. 포트 스캐닝: 사용자가 지정한 호스트에서 열린 포트를 스캔하고, 각 포트에서 실행 중인 서비스 정보를 수집할 수 있다. Nmap은 TCP 및 UDP 포트를 스캔할 수 있는 여러 가지 방법을 제공한다.
3. 서비스 및 버전 탐지: 열린 포트에 대해 Nmap은 서비스 및 해당 버전 정보를 수집할 수 있다. 이는 보안 취약점을 평가하는 데 유용하다.
4. 운영 체제 탐지: Nmap은 호스트의 운영 체제를 식별하는 기능을 제공한다. 이는 TCP/IP 스택의 특성을 분석하여 수행된다.
5. 스크립트 엔진: Nmap은 Lua로 작성된 스크립트를 실행하여 다양한 기능을 추가할 수 있는 Nmap Scripting Engine(NSE)을 제공한다. 이를 통해 특정 서비스에 대한 공격 탐지, 정보 수집 및 자동화된 작업이 가능하다.
6. 타이밍 및 성능 조정: Nmap은 스캔 속도 및 패킷 전송 간의 지연 시간을 조정할 수 있는 다양한 옵션을 제공하여 네트워크 환경에 맞는 최적의 스캔을 수행할 수 있도록 한다.
7. 방화벽 및 IDS 회피: Nmap은 방화벽 및 침입 탐지 시스템(IDS)을 우회할 수 있는 다양한 스캔 기법을 제공하여 사용자에게 더 많은 유연성을 제공한다.
- 출력 예시
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 14:15 KST
Nmap scan report for 172.16.20.6
Host is up (0.000072s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy
9090/tcp open zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
TCP Open Scan
3-way-handshaking을 이용한 스캔
- TCP Full Open (-sT)
- 포트가 열린경우
SYN --> SYN/ACK --> ACK - 포트가 닫힌경우
SYN --> RST/ACK
- 포트가 열린경우
신뢰성 있는 결과를 얻을 수 있으나 로그를 남긴다.
9090 포트의 예시를 보면 SYN --> SYN/ACK --> ACK로 응답이 돌아오는것으로 포트가 열린것을 확인 가능하며 이외의 포트는 SYN --> RST/ACK를 전송한 것을 볼 수 있으며 이로인해 포트가 닫혀있는것을 확인 할 수 있다.
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sT
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 14:41 KST
Nmap scan report for 172.16.20.6
Host is up (0.00036s latency).
Not shown: 987 closed tcp ports (conn-refused)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy
9090/tcp open zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
- TCP Half Open (-sS)
- 포트가 열린경우
SYN --> SYN/ACK --> RST - 포트가 닫힌경우
SYN --> RST/ACK로그를 남기지 않으나 SYN패킷을 보내기에 스캐닝 사실을 완전히 숨기는것은 힘들다.
- 포트가 열린경우
143 포트의 예시를 보면 SYN --> SYN/ACK --> RST 로 응답이 돌아오는것으로 포트가 열린것을 확인 가능하며 이외의 포트는 SYN --> RST/ACK를 전송한 것을 볼 수 있으며 이로인해 포트가 닫혀있는것을 확인 할 수 있다.
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sS
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 14:45 KST
Nmap scan report for 172.16.20.6
Host is up (0.000069s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy
9090/tcp open zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds
UDP Open Scan
- UDP Scan (-sU)
- 포트가 열린경우
UDP 패킷 --> 응답 X - 포트가 닫힌경우
UDP 패킷 --> ICMP UnreachableICMP Unreachable을 통해 활성화 유무를 확인한다. 신뢰성이 낮다.
- 포트가 열린경우
닫힌 패킷의 경우 UDP 패킷을 전송 한 뒤 ICMP 패킷이 오는것을 확인 가능하다.
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sU -p 144
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:03 KST
Nmap scan report for 172.16.20.6
Host is up (0.00013s latency).
PORT STATE SERVICE
144/udp closed news
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
Srealth Scan
- ACK Scan (-sA)
포트의 오픈 여부가 아닌 방화벽 종류를 판단하는 스캔- 필터링 될때
ACK --> ICMP Unreachable/응답없음. - 필터링 되지 않을 때
ACK --> RST
- 필터링 될때
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sA
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:04 KST
Nmap scan report for 172.16.20.6
Host is up (0.00012s latency).
All 1000 scanned ports on 172.16.20.6 are in ignored states.
Not shown: 1000 unfiltered tcp ports (reset)
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds
- FIN Scan (-sF)
TCP 의 FIN 플래그를 ON으로 설정하여 송신- 열려있거나 필터링 된 경우
FIN --> 응답없음 - 닫힌경우
FIN --> RST
- 열려있거나 필터링 된 경우
- NULL Scan (-sN)
TCP의 모든 플래그를 설정하지 않고(OFF) 스캔- 열려있거나 필터링 된 경우
FIN --> 응답없음 - 닫힌경우
FIN --> RST
- 열려있거나 필터링 된 경우
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sN
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:09 KST
Nmap scan report for 172.16.20.6
Host is up (0.00010s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
25/tcp open|filtered smtp
53/tcp open|filtered domain
80/tcp open|filtered http
110/tcp open|filtered pop3
139/tcp open|filtered netbios-ssn
143/tcp open|filtered imap
443/tcp open|filtered https
445/tcp open|filtered microsoft-ds
3306/tcp open|filtered mysql
8080/tcp open|filtered http-proxy
9090/tcp open|filtered zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.41 seconds
- XMAS Scan (-sX)
TCP의 모든 플래그를 ON으로 설정하여 송신하는 패킷- 열려있거나 필터링 된 경우
FIN,PSH,URG --> 응답없음 - 닫힌경우
FIN,PSH,URG --> RST
- 열려있거나 필터링 된 경우
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -sX
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:25 KST
Nmap scan report for 172.16.20.6
Host is up (0.000074s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
25/tcp open|filtered smtp
53/tcp open|filtered domain
80/tcp open|filtered http
110/tcp open|filtered pop3
139/tcp open|filtered netbios-ssn
143/tcp open|filtered imap
443/tcp open|filtered https
445/tcp open|filtered microsoft-ds
3306/tcp open|filtered mysql
8080/tcp open|filtered http-proxy
9090/tcp open|filtered zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.57 seconds
주소 위조
- Decoy Scan (-D)
공격자의 IP주소를 위조하여 스캔
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -D 123.234.123.234
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:29 KST
Nmap scan report for 172.16.20.6
Host is up (0.00066s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy
9090/tcp open zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
- MAC Addr Spoofing Scan(--spoof-mac)
공격자의 MAC주소를 위조하여 스캔
┌──(root㉿kaya)-[~]
└─# nmap 172.16.20.6 -spoof-mac AA:AA:AA:AA:AA:AA
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 15:26 KST
Spoofing MAC address AA:AA:AA:AA:AA:AA (No registered vendor)
Nmap scan report for 172.16.20.6
Host is up (0.00013s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy
9090/tcp open zeus-admin
MAC Address: 00:50:56:2B:51:F3 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 5.70 seconds
'모의해킹 및 보안' 카테고리의 다른 글
XFF(X-Forwarded-For) (0) | 2024.10.22 |
---|---|
DVWA XSS 로그(apache/mysql) (0) | 2024.10.22 |
Infromation Gattering Tool - SMB / Route Analysis (0) | 2024.10.19 |
Infromation Gattering Tool - DNS (0) | 2024.10.19 |
Nicto / Sqlmap (0) | 2024.10.17 |