'host discovery'에 해당되는 글 1건

  1. 2009.09.16 호스트 컴퓨터 탐색 Host Discovery: Network Mapper - Day 4(2/2)
IT 이야기2009. 9. 16. 08:48
-PN (No Ping) 이 옵션은 Nmap의 탐색기능을 실행시키지 않는다. 일반적으로 Nmap은 액티브한 호스트를 찾기 위해 과중한 탐색명령을 수행하곤 한다. 기본적으로 port scans, version detection, 또는 OS 탐색과 같은 부하가 많이 걸리는 작업이 실행되고 -PN옵션을 이용해서 이러한 과부하를 줄여주면 지정된 타겟 호스트만을 검색하게 된다. 그래서 만약 클래스B의 네트웍(/16)을 스캔할시에 65,536개의 호스트가 액티브하다는 가정하에 스캔해야 하지만 위 옵션으로 리스트 스캔에서와 같은 결과물은 생략되어질 것이다. 이더넷 네트웍에서는 --send-ip가 설정되어있지 않다면 ARP스캔이 사용되어질 것이다.왜냐하면 Nmap은 Mac어드레스를 통해 좀더 자세히 호스트를 탐색하기 때문이다. 원래 이 옵션은 P0(숫자)로 사용되어졌지만 PO(문자)와 혼동되어서 PN으로 변경되었다.



-PS (TCP SYN Ping) 이 옵션은 Syn flag set의 빈 TCP패킷을 보낸다. 타겟 포트는 80이고 (nmap.h에서 DEFAULT_TCP_PROBE_PORT_SPEC에서 수정가능하다). 명령문은 -P와 같긴 하지만 T와 같은 포트타입의 규정과 같은 명령어는 사용되지 않는다. 예를 들어 -PS22, _ps25,80,113,1050,35000과 같이 사용될 수 있다. -PS와 포트번호사이에는 여백이 있지 않다는 것을 알아야 한다. 만약 다른 여러개의 탐색이 이루어 진다면 이는 병렬로 탐색되어진다.

SYN flag는 당신이 목표 호스트에 연결을 시도하는 것으로 보이게 되고 대부분의 목표 포트는 닫혀있고 RST(리셋) 패킷이 돌아온다. 만약 포트가 열려 있다면 SYN/ACK의 응답으로 두번째 단계인 TCP three-way-handshake가 이루어진다. Nmap을 실행하고 있는 컴퓨터에서는 ACK를 보내는 것이 아니라 RST를 보내고 이 RST패킷은 Nmap자체에서가 아닌 Nmap이 돌고 있는 시스템에서 SYN/ACK로 응답하게 한다.

Nmap은 포트가 열려 있건 그렇지 않건 상관하지 않고 RST이건 SYN/AcK이건 호스트가 응답한다는 것을 보는게 더 중요하다.

Unix에서는 오직 제한적인 관리자만이 raw TCP 패킷을 보낼 수 있다. 만약 연결이 성공적으로 이루어 졌거나 Econnrefused실패가 될 경우에는 TCP스택은 SYN/ACK나 RST를 받았음에 분명하고 호스트는 액티브하다고 검색되어진다. 만일 연결이 이루어지지 않고 타임아웃까지 시간이 지연될 경우에는 호스트는 다운으로 검색되어진다. 이것은 IPv6에서도 사용되어지지만 raw IPv6는 적용가능하지 않다.

-PA (TCP ACK Ping) TCP ACK ping은 SYN ping과 상당히 유사하지만 차이점은 SYN flag대신에 TCP ACK flag를 보낸다는 것이다. ACK 패킷은 TCP 연결이 이루어진 상태에서 정보를 알아보기 위한 것이어서 상대 호스트는 RST패킷으로 반응하고 프로새스에 대한 정보를 노출하게 된다.

-PA옵션은 SYN 탐색(80)과 같게 사용되어 지고 목표 포트에 대한 리스트도 같은 형태로 나타난다. 만약 권한이 없는 사용자일 경우나 IPv6일 경우는 위와 같은 차선책으로 탐색된다. 이 방법은 ACK를 보내는것이 아니라 SYN을 보내므로 완벽한 방법은 아니다.

SYN과 ACK를 동시에 보내는 이유는 방화벽을 통과할수 있는 방법을 최대한 알아보기 위해서이다. 많은 관리자들은 라우터와 방화벽에 기본적은 사용을 제외하고는 SYN 패킷을 막아놓는다. 이것은 외부에서의 연결시도를 저지하고 내부사용자들의 외부연결은 자유롭게 해놓았을 것이다. 이러한 상황에서 SYN ping 탐사(-PS)는 막히겠지만 ACK 탐사는 이러한 룰을 뚫을수 있을 것이다.

또 다른 형태로 호스트가 알지 못하는 패킷은 막는 시스템으로 예전에는 최신기술이었지만 지금은 대부분의 장비에 적용되는 기술이다. 리눅스의 Netfilter/iptables은 --state옵션으로 이 기능을 지원한다. 이러한 시스템에서는 SYN패킷은 차단되고 예기치못한 ACK패킷도 차단되므로 -PS와 -PA를 동시에 사용하는 것이 좋다.

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