IT 이야기2009. 10. 21. 03:16


Nmap은 계속적으로 기능이 업그레이드 되었고 포트스캔에 대한 기능도 효율적으로 바뀌었지만 중요한 것들은 변함이 없다. 기본적인 nmap 명령어는 1660개의 TCP포트를 스캔한다. 다른 포트스캔 프로그램들은 open이나 closed로 표현되는 것에 반해 nmap은 open, closed, filtered, unfiltered, open|filtered, closed|filtered로 나뉘게 된다.

이러한 상태들은 그 자체로는 의미가 없지만 nmap에서는 타겟호스트에 대한 설명이 포함되어 있다. 예를들어 같은 네트워크에서 nmap으로 135/tcp를 스캔할 경우 open으로 나올수 있지만 인터넷에서 스캔할 경우에는 filtered로 나올 수 있다.

다음의 6가지로 nmap은 타겟호스트의 상태를 구분한다.

open : TCP나 UDP 혹은 SCTP와 같은 포트를 사용하는 프로그램을 서치하게 된다. 이러한 포트를 찾는 것이 포트스캔의 가장 주요한 목적이다. 보안에 신경을 쓰고 있는 사람이라면 이러한 포트들이 공격루트가 되는 것은 인지하고 있다. 공격의 의도를 가지고 있거나 단순한 호기심으로 접근하는 사람들은 이런 open포트에 관심을 가지게 되고 관리자들은 이러한 포트들을 적법한 사용자들에게 서비스를 제공하는 한도내에서 제한한다. 포트를 open상태로 놓는것은 네트워크 상에서 통신이 가능한 상태이므로 해당 포트를 이용하는 서비스를 제공할 수도 있다.

closed: closed는 접근가능하다라는 의미이다. (즉, 호스트가 탐색패킷을 받았고 응답했다는 뜻이기 때문이다) 하지만 어떠한 프로그램이 해당포트를 사용하는지는 알 수 없다. 이러한 포트는 해당 IP주소의 컴퓨터가 살아있음을 보여주고 OS 버전을 알려주기도 한다. closed상태에서는 외부의 접근이 가능하므로 관리자는 방화벽을 통해 이를 차단할 필요가 있고 공격자는 filtered라는 메세지를 받을 것이다.

filtered : nmap은 filtered라는 리포트를 통해서 호스트가 어떠한 상태인지 알 수 없다. 이는 패킷이 필터링되었기 때문인데 이는 방화벽에 막혔을 수도 있고 라우터의 룰에 의해 차단되었을 수 있고 혹은 호스트의 방화벽소프트워어때문일 수도 있다. 이러한 최소한의 정보도 얻지 못하는 포트들은 공격자들을 무기력하게 만든다. 때로는 ICMP에러메세지를 보내기도 하지만 대부분의 패킷들은 drop되고 무시된다. 이러한 상태에서는 nmap은 재차 탐색을 시도하는데 네트워크가 혼잡해서 일수도 있기 때문이다. 이 상태에서는 스캔의 속도가 급격히 떨어지게 된다.

unfiltered : unfiltered는 해당포트가 접근 가능하다는 뜻이다. 하지만 nmap은 이것이 open인지 closed인지 구분할 수는 없다. 다만 방화벽에서 맵핑시에 룰셋으로 사용되는 ACK스캔일때 이 상태를 알려준다. Window Scan, SYN scan, FIN scan을 통해서 해당포트가 open인지 closed인지 알아 볼 수 있다.

open|filtered : 포트가 open인지 filtered인지 알 수 없을 때 다음과 같은 상태로 표시된다. 이러한 상태는 해당포트가 응답이 없거나 중간에서 드랍되었기 때문이다. 그러므로 nmap으로는 open인지 filtered인지 알수 없다. UDP, IP protocol, FIN, NULL 그리고 Xmas스캔을 통해 자세히 알아볼수 있다.

closed|filtered : 포트가 closed인지 filtered인지 알수 없을때 다음과 같은 상태로 표시된다.

원문링크: http://nmap.org/book/man-port-scanning-basics.html
Posted by 구텐모르겐