NMAP 정보 수집 종류
일반적으로 NMAP을 사용하여 다음과 같은 정보를 수집하는 것이 가능하다.
1. 네트워크에 연결된 활성화된 장비의 IP 주소 목록
2. 특정 Host에 활성화 된 장비의 IP 목록
3. 서비스하고 있는 소프트웨어 정보
4. 운영체제 종류
많이 사용되는 NMAP 옵션은 다음과 같다.
nmap -sV -O [Target IP 주소] -p 1-1023: Target IP 주소에 1~1023 포트 중 어떤 포트가 열려 있는지 확인한다.
nmap 사용 예시
해당 장비(운영체제)와 어떤 프로토콜이 열려 있는지 확인할 수 있다.
2. NMAP 종류
명령어 |
스캐닝 종류 |
설명 |
-sT |
TCP CONNECT 스캐닝 |
connect()함수를 사용해서 포트 하나하나에 접속해서 Scan하는 방법이다. |
-sS |
SYN Stealth 스캐닝 |
3way-Handshake가 완료되기 이전에 RST로 접속을 끊어버려서 로그를 남기지 않는 방법이다. |
-sF |
FIN 스캐닝 |
방화벽의 정책이 SYN을 필터링하도 설정된 경우 우회하기 위해 FIN Flag를 이용하는 scan 방법이며 Linux에서만 사용 가능하다. |
-sN |
NULL 스캐닝 |
TCP Flag에 아무런 셋팅도 하지않고 응답을 기다리는 방법이다. |
-sX |
X-MAS 스캐닝 |
TCP Flag에 FIN, PSH, URG등 여러 bit를 셋팅 후 전송해서 응답 을 기다리는 방법이다. |
-sU |
UDP 스캐닝 |
UDP의 비 신뢰성,비 연결성인 특성상 Packet 자체의 손실을 책 임지지 않기 때문에 Scanning이 까다롭다. 닫혀있는 UDP port에서 Port Unreachable 메세지를 보내는것을 이용해 활성화 비활성화 여부를 scanning하는 방법이다. |
-sP |
Active Hosting 스캐닝 |
호스트가 살아있는지 죽어있는지만 ping을 통해 체크하는 방법 이다. |
-sO |
Protocol 스캐닝 |
해당 시스템이 사용하는 프로토콜을 검색한다. |
3. NMAP 옵션
명령어 |
설명 |
-f |
SYN 스캔이나 FIN 스캔을 할 때 조각난 패킷을 사용한다. |
-P0 |
scan 시도 전 ping을 시도 하지 않는다. icmp echo request를 허용하지 않는 호 스트에 대한 scan을 시도할때 설정해야한다. |
-PT |
ping의 대용으로 icmp echo request를 보내는 것이 아니라 tcp packet을 보내서 해당 호스트가 작동중인지 검사한다. |
-PS |
TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있 는 호스티이다. 이를 이용해서 호스트가 살아있는지, 죽어 있는지를 검사한다 |
-PI |
TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있는 호스트이다. |
-PB |
TCP ping과 ICMP ping을 둘 다 사용해서 호스트가 죽어있는지, 살아있는지를 검사한다. |
-f |
SYN 스캔이나 FIN 스캔을 할 때 조각난 패킷을 사용한다. |
-PT |
ping의 대용으로 icmp echo request를 보내는 것이 아니라 tcp packet을 보내서 해당 호스트가 작동중인지 검사한다. |
-PS |
TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있 는 호스티이다. 이를 이용해서 호스트가 살아있는지, 죽어 있는지를 검사한다 |
-PB |
TCP ping과 ICMP ping을 둘 다 사용해서 호스트가 죽어있는지, 살아있는지를 검사한다. |
-f |
SN 스캔이나 FIN 스캔을 할 때 조각난 패킷을 사용한다. |
-P0 |
scan 시도 전 ping을 시도 하지 않는다. icmp echo request를 허용하지 않는 호 스트에 대한 scan을 시도할때 설정해야한다. |
-PT |
ping의 대용으로 icmp echo request를 보내는 것이 아니라 tcp packet을 보내서 해당 호스트가 작동중인지 검사한다. |
-PS |
TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있 는 호스티이다. 이를 이용해서 호스트가 살아있는지, 죽어 있는지를 검사한다 |
-PI |
TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있 는 호스티이다. 이를 이용해서 호스트가 살아있는지, 죽어 있는지를 검사한다. |
-PB |
TCP ping과 ICMP ping을 둘 다 사용해서 호스트가 죽어있는지, 살아있는지를 검사한다. |
-O |
TCP/IP fingerprinting을 사용해 호스트이 OS를 주청한다. |
-I |
RFC 1413에 정의되어있는 ident프로토콜을 사용해 열려있는 포크가 어떤 사용 자에의해 열려있는지 검사한다. |
-n |
DNS lookup을 하지 않는다. |
-R |
DNS lookup을 한다. |
-o <logfilename> |
스캔한 결과를 로그 파일에 남긴다. (사람이 읽기 편한 포맷) |
-m <logfilename> |
스캔한 결과를 로그 파일에 남긴다. (컴퓨터가 일기 편한 포맷) |
-i <inputfile> |
스캔할 호스트 리스트를 파일로부터 입력받는다. |
-p <port ranges> |
스캔할 포크 리스트를 명시한다. 초기값은 1부터 1024까지의 포트와 services 로 명시되어있는 포트이다. |
-F |
services에 명시되어 있는 포트만 스캔한다. |
-S <ip address> |
패킷의 source 주소를 지정한다. |
-g < portnumber> |
패킷의 source 포트넘버를 지정한다. |
'Hacking & Security > Kali Linux' 카테고리의 다른 글
[Kali Linux] HSRP 공격 및 방어 (0) | 2019.11.12 |
---|---|
[Kali Linux] CDP(Cisco Device Protocol) 공격 및 방어 (0) | 2019.11.12 |
[Kali Linux] Dos(Denial of Service) 공격 및 방어 (0) | 2019.11.11 |
[Kali Linux] IP Spoofing 공격과 방어(2/2) (0) | 2019.11.11 |
[Kali Linux] IP Spoofing 공격과 방어(1/2) (0) | 2019.11.08 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊