nmap 사용방법
nmap의 기본 사용형식은 아래와 같다.
nmap [스캔타입] [옵션] <대상 목적지 호스트나 네트워크>
스캔타입
-s
TCP SYN 스텔스 포트 스캔 방식으로서 완전한 tcp 세션을 만들지 않기 때문에 half-open 스캔이라고 하기도 한다. 스캔하고자 하는 목적지로 SYN 패킷을 발송한 후 목적지로부터 SYN|ACK 패킷을 받으면 포트가 리슨한다고 판단하고 RST 패킷을 받으면 리슨하지 않는다고 판단한다. 만약 SYN|ACK 패킷을 받으면 RST 패킷을 보냄으로써 스캔이 로그에 남지 않도록 한다.
-sT
TCP connect() 포트스캔으로 connect() 함수를 이용하여 connect()가 성공하면 해당 포트는 리슨 상태이고 실패하면 포트는 리슨하지 않는 것으로 판단한다. 이 방법은 가장 기본적인 tcp 스캔 형태로서, root 뿐만이 아니라 일반유저들도 사용할 수 있으며 스캔시 로그가 남게 된다.
-sU
UDP 포트 스캔방식으로서 이는 어떠한 udp 포트가 열려있는지 스캔하고자 할 때 사용된다. 이 방법은 각각의 포트에 0 byte의 udp 패킷을 보낸 후 만약 ICMP port unreachable 메시지를 수신하면 해당 포트는 닫혀 있는 것이고 그렇지 않으면 포트는 열려 있는 것이라고 판단하는 것이다. 하지만 대부분의 유닉스 호스트들은 ICMP 에러의 비율을 제한하고 있기 때문에 스캐닝 결과가 매우 느리게 된다. 이를테면 리눅스의 경우 destination unreachable message의 경우 4초당 80회로 제한하고 있다.
-sP
ping 스캔방식으로서 해당 네트워크에서 어떠한 호스트가 살아 있는지를 알고 싶을 때 사용한다. 이 옵션을 사용할 경우 nmap은 지정한 네트워
의 모든 IP 주소로 ICMP echo request packet을 발송한 후 응답이 오면 해당 네트워크에 연결되어 있다고 판단한다. 그러나 일부 사이트의 경우 안전을 위해 icmp echo request 패킷을 차단하는 경우도 있다. 이러한 경우에는 80번과 같은 특정한 포트번호로 TCP ack 패킷을 보내어 만약 RST 패킷을 받았다면 해당 시스템은 살아있다고 판단한다.
-sF, -sX, -sN
스텔스 FIN, Xmas, Null 스캔 방식으로 SYN 패킷을 차단한 방화벽을 통과하거나 스캐닝을 탐지하는 프로그램들이 인식하지 못하도록 할 수 있다. 만약 FIN 패킷을 발송하여 RST 패킷이 응답하면 해당 포트는 닫혀 있는 것이고 그렇지 않고 아무런 응답이 없으면 이 포트는 열린 것으로 판단한다.
스캔옵션
-O : TCP/IP fingerprinting을 이용하여 원격지의 운영체제를 판별한다.
-p <포트범위> : 스캔할 포트를 지정한다.
포트 범위 예) '1-1024,1080,6666,31337'
위와 같은 경우 1번부터 1024까지의 포트와 1080,6666,31337 포트를 스캔한다.
-F : /usr/local/share/nmap/nmap-services 파일에 정의되어 있는 포트만 스캔한다.
-v : 상세한 정보를 보여준다.
-P0 : ICMP echo requests를 차단한 방화벽등을 스캔할 때 사용한다.
-n/-R : DNS 질의를 하지 않는다.
-S <IP 주소>/-e <장치 이름> : 스캔시 사용할 소스주소나 네트워크 인터페이스 이름을 지정한다.
'Hacking > 정보 수집' 카테고리의 다른 글
잘못 설정된 MS SQL 서버 찾기 (0) | 2013.12.12 |
---|---|
타켓 스캐닝 - 서버 메시지 블록 스캐닝 (0) | 2013.12.12 |
고급 nmap 스캔 : TCP Idle 스캔 (0) | 2013.12.12 |
nmap 예제 (Windows XP 대상) (0) | 2013.12.12 |