IT 이야기2009. 10. 23. 15:41


초보자의 입장에서 차를 고친다면, 기본적인 툴로만 작업하기에 그 수리는 수시간이 걸릴것이다. 또한 수리하기를 포기하고 정비사에게 그 차를 가져갔을때 정비사는 힘들이지 않고 손쉽게 차를 고치는 것을 우리는 종종 겪는다. 포트스캐닝의 기술 또한 이와 같다. 전문가는 다양한 포트스캔의 기술을 알고 있고 적절한 작업에 적절한 조합을 이용할 것이다. 하지만 비전문적인 사용자들은 기본적인 SYN 스캔만을 해댈것이다. Nmap이 무료인 관계로 포트스캔을 마스터하기 위한 것은 지식만이 필요할 뿐이다. 당신이 풀수 없는 문제라면 그것은 수천달라에 해당하는 자동차 부품을 교체하는 비용과 맞먹을 것이다.

대부분의 스캔형태는 privileged사용자에게 제한되어 있다. 이유는 Unix시스템에서는 raw패킷은 루트사용자만이 접근가능하기 때문이다. winpcap이 깔려있는 윈도우에서는 일반사용자도 접근이 가능하긴 하지만 가급적 윈도우를 사용한다면 관리자모드이기를 권한다. 1997년에 root 권한을 가지고 있는 사람들만이 접근할 수 있다는 제한은 많은 일반 사용자들에게는 제한이 되었다. 하지만 이제 세상은 변하고 컴퓨터는 싸졌고 일반 사람들도 가정용 Unix시스템(리눅스)을 사용할 수 있다. 윈도우 버전의 nmap이 사용가능하고 데스크탑에서 실행 가능하다. 이러한 이유로 privileged 사용자로 사용하지 않을 이유가 없고 nmap도 이런 관리자 모드일때 더욱 강력하고 유연하게 사용가능하다.

기억해야 할 것은 nmap은 항상 타겟호스트(혹은 방화벽)에게서 받은 정보를 기초로 해서 우리에게 보여준다는 것이다. 타겟호스트가 믿을만한 사이트가 아닐수 있고 거짓 정보를 흘릴수 있지만 일반적으로 non-RFC-compliant 호스트들이 응답하지 않는 경우가 대부분이다. FIN, NULL, Xmas스캔등은 이 문제에 대해 해결을 제시해준다. 이 같은 문제는 앞으로 나열될 특정 스캔타입의 설명에서 다루게 된다.

이 장은 Nmap에서 다뤄지는 기술에 대해 나열하였다. UDP스캔(-sU)와 SCTP스캔(-sY, -sZ)들은 TCP스캔 타입과 혼용될 수 있지만 일반적으로는 한가지의 스캔방법은 한번씩밖에 이루어지지 않는다. 권한이 없어서 연결스캔을 보내지 않는이상 nmap은 SYN스캔을 기본으로 보내게 된다. 다음의 나열된 스캔방법중 FTP bounce 스캔만이 관리자 권한이 없어도 사용가능한 것이다.

-sS (TCP SYN 스캔) : SYN스캔은 기본스캔으로써 수천개의 포트를 몇초안에 처리할 정도로 빠르고 방화벽의 네트워크에 영향을 미치지 않는정도로 스캔한다. SYN스캔은 TCP연결을 완전히 맺지 않음으로 타겟호스트가 눈치채지 않게 스캔한다. 또한 FIN/NULL/Xmas와는 다르게 다른 명령어와 혼용해서 사용가능하다. 이것은 upen, closed 그리고 filtered의 상태로 표현된다.

-sT (TCP Connection 스캔) : 이 명령어 또한 기본스캔으로 SYN스캔이 이루어지지 않았을 경우 실행된다. 이것은 사용자가 관리자모드가 아니거나 IPv6네트워크를 스캔할때 사용된다. 다른 스캔처럼 원본패킷을 보내는것이 아니라 connection을 맺음으로써 타겟호스트의 OS등을 알아낼 수 있다. 이는 웹브라우저, p2p 클라이언트, 그리고 다른 많은 네트워크 어플리케이션을 구동할 수 있는 정도의 높은 권한을 요구한다. Berkeley sockets API라 불리는 이 명령어는 원본패킷을 보내기 보다는 API를 보냄으로써 각각의 연결시도를 통해 상태정보를 얻을 수 있다.
만약 SYN스캔이 가능할 경우는 이것이 가장 적절한 방법이 될 수 있다. nmap은 권한이 적을수록 덜 효과적인 스캔이 이루어진다. SYN과 같이 연결중간에 정지하는 것이 아니라 타겟호스트와의 완벽한 연결을 맺는다. 이는 스캔시간이 더 걸릴뿐만 아니라 타겟호스트에 로그를 남기게 된다. 최근의 IDS시스템은 이러한 스캔을 탐지하겠지만 보통의 시스템들은 이러한 침입에 대한 시스템이 되어 있지 않다. 연결을 맺은후에 데이터를 전송하지 않으므로 Unix시스템은 syslog에 기록을 남길 것이고 때로는 암호화된 에러메세지를 남기기도 한다. 혹 매우 취약한 시스템에서는 드믈지만 충돌이 생기기도 한다. 관리자는 그의 로그에 많은 연결상태 (connection status)가 남아있다면 이것이 connect스캔인지 알아야 한다.

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