RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'NMAP'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. Nmap의 개요
Nmap은 Network Mapper의 약자로 네트워크상에서 포트(Port)를 스캔(Scan)하는 도구이다. 작동중인
서비스 포트를 스캔하는 네트워크 보안 도구로 널리 사용된다. 이 도구는 또한 크래커들이 크랙 대상
을 검색할 때도 많이 사용한다. Nmap을 이용하여 자신의 서버에 불필요하게 작동하고 있는 서비스
포트를 확인할 수 있다.


2. Nmap 설치하기
(1) 설명: 요즘 나오는 리눅스에서는 대부분 기본 설치되어 있다. 만약 설치가 되어 않으면
          http://www.insecure.org/nmap에서 다운받아 설치할 수 있다. 현재 소스파일과 rpm패키지
          모두 제공되므로 둘 중 하나를 선택하여 설치하면 된다.
(2) 설치
   1) rpm패키지로 설치하기
    ㄱ. nmap-3.00-1.i386.rpm을 다운받는다.
    ㄴ. rpm -Uvh  nmap-3.00-1.i386.rpm 을 실행하여 설치한다.
   2) 소스로 설치하기
    ㄱ. 소스파일(nmap-3.00.tgz)을 다운 받는다.
    ㄴ. 압축을 푼다.
       tar zxvf  nmap-3.00.tgz
    ㄷ. 압축이 풀리면 nmap-3.00이라는 디렉토리가 생성되는 데 이 디렉토리로 이동한다.
    ㄹ. 환경설정을 한다.
       ./configure --prefix=/usr/local/nmap
    ㅁ. 컴파일한다.
       make
    ㅂ. 설치한다.
       make install
   3) 참고 : nmapfe
    ㄱ. 설명: nmap frontend는 X-Window System(GTK+)용으로 그래픽한 환경하에서 사용할 수 있는
             nmap이다.
    ㄴ. 설치
       rpm -Uvh nmap-frontend-3.00-1.i386.rpm

3. Nmap 사용하기
(1) 사용법
   nmap [options] 호스트 또는 네트워크_주소
(2) options
   -v : 자세한 정보를 보여준다.
   -p 포트범위: 점검하고자 하는 포트번호를 지정한다. 만약 23번 포트를 점검하려면 '-p 23'라고
               하면 된다. 연속된 포트는 '-'를 사용할 수 있고, 연속되지 않는 포트는 콤머(,)를
               사용할 수 있다.
   -sT : TCP connect() scan이라고 하며 가장 기초적인 형태의 스캔이다. connect()함수를 사용해서
        모든 포트에 대해 스캔하는 방식이다. 만약 포트가 listen상태라면 connect()는 성공할 것이
        고, 그렇지 않으면 도착하지 않는다.
   -sS : TCP SYN scan이라고 하며 이 옵션을 사용하면 full TCP 접속을 하지 않고 스캔한다. TCP에
        서는 하나의 SYN패킷을 보내어 SYN|ACK 패킷의 응답이 오면 그 포트는 listne상태임을 나타
        내고 RST응답이 오면 non-listner임을 나타낸다. 이 옵션은 하나의 패킷을 보내어 SYN|ACK
        응답을 받으면 그 즉시 RST 패킷을 보내서 접속을 끊어버린다. 이렇게 하면 접속이 이루어지
        지 않은 상태에서 접속을 끊었기 때문에 로그를 남기지 않는 경우가 대부분이다. 그래서 이
        옵션을 사용한 스캔을 half-open 스캐닝이라고 한다. custom SYN packet을 만들기 위해서는
        루트권한으로 해야 한다.
   -sP : Ping scan이라고 하며 호스트가 살아있는지 알고 싶을 때 사용한다. 이 옵션을 사용하면
        ICMP echo request packet을 보내는데 up이면 살아있는 것이고, down이면 죽어있는 것이다.
        일부사이트는 echo request packet에 응답하지 않는 경우가 있는데 up|dwon대신에  RST back
        을 받았다면 이 호스트 또한 살아있는 것이다.
   -sU : UDP scan이라고 하며 호스트의 open되어진 UDP 포트를 찾아준다. 이 옵션을 사용하면 각 포
        트에 0바이트의 udp패킷을 보낸다. 만일 ICMP port unreachable메시지를 받았다면 이 포트는
        closed 상태이며, 다른 경우이면 open이다. 루트권한으로만 실행가능하지만 큰 의미는 없다.
   -sA : ACK scan이라고 하며 방화벽의 상태를 보여준다. 단순히 들어오는 SYN 패킷을 차단하는 패
        킷필터인지를 점검하는데 도움이 된다. 포트에 ACK 패킷을 보내어 RST 응답을 받으면 그 포
        트는 'unfilter'이며, 아무런 응답이 없으면 'filtered'이다. 화면에는 'filtered'만 표시
        된다.
   -sW : Window scan 이라고 하며 TCP window 크기의 변칙 때문에 filtered/nonfiltered뿐만아니라
        open포트도 스캔할 수 있다는 점을 제외하며 ACK scan과 거의 같다.
   -sR : RPC scan이라고 하며 이 옵션을 사용하면 TCP/UDP포트에 대해 그들이 RPC포트인지를 검사
        하고 서비스를 제공하는 프로그램은 무엇이며 버전은 무엇인지 등을 확인하기 위해 SunRPC
        program NULL commands를 계속 보내게 된다. 따라서 호스트의 portmapper가 방화벽(또는
        TCP wrapper)안에 있다 하더라도 'rpcinfo -p'와 유사한 정보를 얻을 수 있다.
   -sF, -sX, -sN : 각각 Stealth FIN, Xmas Tree, Null scan이라고 한다. 이들은 SYN패킷을 막아놓
                  은 방화벽이나 패킷 필터 또는 Synlogger와 Courtney같은 스캔을 탐지하는 프로그
                  램들을 무사히 통과할 수 있다. open포트로 FIN패킷을 보내면 이 패킷을 무시하고
                  closed포트로 보내면 RST패킷이 온다. 이들 스캔은 주로 유닉스계열OS만 사용가능
                  하며 루트권한이 필요하다.
   -b : FTP bounce scan 이라고 하며 익명 FTP서버를 이용해 그 FTP서버를 경유해서 호스트를 스캔
       한다.
   -P0 : 방화벽에 의해 ICMP echo requests(or responses)를 막아놓은 네트워크의 스캔을 가능하게
        한다. ping을 막아놓은 호스트를 스캔하기 위해서는 -P0나 -PT80을 사용해야 한다.
   -PT : 일반적으로 특정한 호스트가 살아있는지를 검사할 때 ping을 사용하는데 이것은 ICMP echo
        request패킷을 보내고 응답을 기다린다. 이 옵션을 사용하면 TCP ACK를 보내어 응답이 오기
        를 기다린다. RST응답이 오면 호스트가 살아 있는 것으로 본다. ping패킷을 차단하는 네트워
        크나 호스트를 스캔할 때 이용한다. 보통 -PT 포트번호이고, 디폴트는 80이다.
   -O : 호스트의 운영체제를 점검해 준다. 루트권한으로 실행해야 한다.
   -I : ident프로토콜을 사용하여 open된 포트가 어떤 사용자에 의해 열려 있는지를 검사한다. 사용
       시에 기본적으로 -sT옵션과 같이 사용하여야 한다. 그러나, 현재는 이 옵션을 사용해도 잘
       검색되지 않는다.
(3) 사용예
   1) [root@www root]# nmap 203.247.xxx.xxx

      Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
      Interesting ports on  (203.247.xxx.xxx):
      (The 1593 ports scanned but not shown below are in state: closed)
      Port       State       Service
      21/tcp     open        ftp
      22/tcp     open        ssh
      23/tcp     open        telnet
      53/tcp     open        domain
      80/tcp     open        http
      111/tcp    open        sunrpc
      3306/tcp   open        mysql
      6000/tcp   open        X11

      Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
   2) [root@www root]# nmap -v 203.247.xxx.xxx
       => 좀 더 자세하게 정보를 보여준다.
   3) [root@www193 root]# nmap 203.xxx.50.0/24
       => 203.xxx.50.0 네트워크 전체를 스캔한다.
   4) [root@www root]# nmap 192.168.1.100-150
       => 연속되어 있는 여러개의 호스트를 검색할 때는 대쉬(-)를 사용하면 된다. 즉 192.168.1.1
         00부터 192.168.1.150까지 스캔한다.
   5) [root@www root]# nmap 192.168.0.5, 192.168.3.7
       => 연속되어 있는 않은 여러 개의 호스트를 검색할 때는 콤마(,)를 사용하면 된다.
   6) [root@www root]# nmap  -p 1-30,110,62000- 203.xxx.xxx.11
       => 203.xxx.xxx.11 호스트의 1-30번 포트, 110번포트, 62000번 이상의 포트를 스캔한다.
   7) [root@www root]# nmap -O 203.247.xxx.xxx
       => 해당 호스트의 포트스캔과 운영체제를 보여준다.
   8) [root@www root]# nmap -sP 203.247.xxx.xxx
       => 해당 호스트가 살아있는지를 검사한다.
   9) [root@www root]# nmap -sR -p 1-40000 192.168.10.100
       => 해당 호스트의 1~40000 포트에서 RPC포트를 찾아 보여준다.
   10)[root@www root]# nmap -sU -PT 192.168.10.0/24
       => 192.168.10.0 네트워크의 호스트들을 TCP ACK패킷을 보내어 응답을 기다리고 열려진 UDP
         포트를 보여준다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31