'네트웍'에 해당되는 글 1건

  1. 2009.09.15 호스트 컴퓨터 탐색 Host Discovery Day: Network Mapper - Day 4(1/2)
IT 이야기2009. 9. 15. 08:22
네트웍을 감독하는데 있어서 가장 먼저 실행되어야 할 것은 외부에 관심대상이 될만한 호스트를 두지 않는 것이다. 모든 아이피에 대한 모든 포트를 검색한다는 것은 무의미하다. 물론 목적에 따라서 그 관심 대상이 달라지기는 하지만, 관리자의 입장에서는 제공하는 서비스에 관심이 있을것이고 네트웍 감독자는 아이피에 해당되는 장비들에 관심이 있을 것이다. 일반적으로 관리자는 ICMP Ping을 통한 로컬 네트웍에 관심이 있겠지만 외부검시관들(external penetration tester)은 방화벽을 피할수 있는 다양한 방법에 관심이 있을 것이다.



호스트 컴퓨터 탐색의 방법은 너무 다양해서 Nmap은 사용자가 커스터마이즈 사용을 제공하고 있다. 호스트 탐색은 ping이라고도 불리기도 하지만 이것은 ICMP echo request 보다는 훨씬 높은단계의 기술을 요구한다. 사용자들은 -sL 옵션을 통해 ping을 생략할수도 있고 -PN 옵션을 통해 작동을 제한 할수도 있고, 또는 임의적인 다양한 multi-port TCP SYN/ACK, UDP, SCTP,INIT, ICMP probe등을 사용할 수도 있다. 이러한 무작위적인 서치는 해당 아이피의 호스트에 active된 장비들에 대한 응답을 받기 위해서이다. 일반적으로 IP의 일부만 사용되어지는게 대부분이고, 특히나 10.0.0.0/8과 같은 서치에서 보면 알 수 있다. 필자의 회사에서도 10.0.0.0/8은 16백만개의 아이피를 사용할 수 있지만 검색결과 천여개의 IP만 사용되어짐을 알 수 있었다. 호스트 컴퓨터 탐색은 이렇게 간혈적으로 사용되어지는 IP들 중에서 사용되어지는 호스트를 검색해준다.

만약 호스트 검색 옵션이 사용되지 않으면 Nmap은 ICMP echo request를 보내고, TCP SYN패킷을 443포트로 보내고, 포트 80번에는 TCP ACK패킷을 보내고 ICMP timestamp request를 보낸다. 이러한 명령어는 -PE, -PS443 -PA80 -pp 옵션이다. 예외적으로 ARP스캔은 로컬 이더넷 네트웍에 사용된다. 범용적 Unix shell사용자들은 기본적으로 80포트와 443포트로 SYN패킷을 보낸다. 이러한 호스트 검색은 로컬네트웍에서는 충분할지 몰라도 보안감사를 위해서라면 좀 더 포괄적인 검색이 필요하다.

-P* 옵션으로 ping 타입을 정할수 있고 다양한 TCP ports/flags와 ICMP 코드를 통해서 방화벽을 뚫을 수 있다. 또한 ARP discovery (-PR)은 기본으로 설정되어 있는데 이는 -p*옵션보다 훨씬 빠르고 효과적이다.

기본적으로 Nmap은 호스트 검색이 시행되고 그 후에 온라인으로 되어 있는 컴퓨터들에 대해 포트검색이 실행된다. -sP옵션을 통해 호스트 검색을 어떻게 하는지 알 수 있고, -PN을 통해 호스트 검색을 생략하고 바로 포트검색을 할 수 있다. 다음과 같은 옵션들은 호스트 검색에 사용되어지는 대표적인 값이다.

-sL (리스트 스캔) 해당네트웍에서 간단한 호스트 정보만을 제공하고 타켓 호스트에는 패킷을 보내지 않는다. 기본적으로 Nmap은 호스트의 이름을 알기 위해 reverse-DNS를 내보낸다. 때로는 간단하게 정리된 정보가 더 유용하게 사용되어 지기도 한다. 예를 들어 fw.chi라는 시카고에 있는 파이어월에 모든 IP의 포트에 대해 스캔할수도 있지만 해당 리스트 스캔을 통해 목표 호스트의 액티브 여부를 알 수 있다. 만약 당신이 알지 못하는 호스트 이름이 나온다면 당신은 해당 호스트에 대해 좀더 조사해볼 가치를 느낄 것이다.

리스트 스캔이 목표 호스트에 대한 간략한 정보를 나타내지만 포트스캔, OS검색과 같은 높은 레벨의 스캔은 할 수 없고 ping스캔도 함께 사용될 수 없다. 만약 ping스캔은 적용시키고 싶지 않다면 -PN 옵션에 대해 자세히 읽어보라

-sP (핑스캔) 이 옵션은 Nmap을 통해 호스트를 탐색하고 액티브한 호스트의 리스트를 출력하는 값이다. traceroute나 NSE host script와 같은 옵션들도 함께 상용 가능하지만 그 이상은 아니다. 이것은 리스트 스캔과 같이 사용되기도 하지만 리스트 스캔보다는 좀더 직관적으로 출력된다. 이것은 타겟 호스트에게 의심을 줄만한 검색은 되도록 하지 않으면서 스캔을 한다. 공격자에게는 어떠한 호스트가 살아 있는가가 중요하지 모든 호스트의 이름과 IP가 중요한 것은 아니다.

시스템 관리자들도 이 옵션을 가치있게 사용될 수 있는데 살아있는 호스트의 검색이나 서버나 네트웍의 가용성에 대해 알아볼 수도 있다. 이것은 종종 ping sweep이라 불리기도 하고 pinging the broadcast보다는 좀더 유용하게 사용될수 있는데 보통의 호스트들은 broadcast에 대해서는 응답을 하지 않기 때문이다.

-sP옵션은 ICMP echo request, 443포트를 통해 TCP SYN을 보내고 80포트를 통해 TCP ACK를 보내고, ICMP timestam request를 기본으로 보낸다. 권한이 없는 사용자가 해당 옵션을 사용할때는 SYN패킷만 타겟 포트 80과 443에 보내지게 된다. 권한이 있는 사용자가 핑스캔으로 로컬 네트웍을 스캔할때는 --send-ip를 설정하지 않는 이상 ARP request를 보내게 된다. 활용적인면에서 핑스캔은 다른 탐색옵션과 함께 사용될수 있다. 어떠한 탐색타입과 옵션이 사용된다면 기본으로 적용된 옵션에 덧붙여 출력된다. 강력한 방화벽을 사용하는 네트웍을 탐색할때는 이 옵션이 효과적이다. 그렇지 않다면 방화벽이 응답하지 않음으로 호스트들은 스캔에서 많이 누락되어질 것이다.

-PN부터는 내일 다시 ...

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