Project/Program

[tryhackme] Nmap Live Host Discovery

choideu 2023. 11. 7. 18:30

Nmap

  • 어떤 시스템이 작동 중인지?
  • 해당 시스템에서는 어떤 서비스가 실행되는지?

 
1. Scan in LAN/WAN

  • 같은 네트워크에 속한 경우: ARP 쿼리를 이용해 live host discovery 진행

 
위와 같은 환경에서 computer1이 computer3로 arp request를 보내면 arp response가 오지만, computer4로 arp request를 보내면 같은 LAN 대역이 아니기 때문에 무시됨
 
2. Live Host Discovery
- ARP의 목적: 특정 IP 주소를 가진 컴퓨터에 MAC 주소를 응답하도록 요청하는 것
- ICMP: 8(echo), 0(reply)
*arp table에 내용이 없다는 전제하에 ICMP를 수행하기 위해서는 ARP가 먼저 수행되어야 함(= 동일한 서브넷에 있는 시스템을 ping하려면 ARP쿼리가 ICMP echo보다 먼저 이루어져야함
 
3. Nmap Host Discovery with ARP

  • 권한이 있는 사용자(root)가 로컬 네트워크(이더넷)에서 대상 스캔 시, Nmap은 ARP 요청을 사용함
  • 권한이 있는 사용자(root)가 로컬 네트워크 외부의 대상 스캔 시, Nmap은 ICMP echo, TCP ACK,TCP SYN 및 ICMP 타임스탬프 요청을 사용함
  • 권한이 없는 사용자가 로컬 네트워크 외부의 대상 스캔 시, Nmap은 SYN 패킷을 전송해 TCP 3way hand-shake를 사용함

Nmap을 사용해 Live System의 port scan을 진행하지 않고 온라인 호스트 검색: nmap -sn <host>
Nmap을 사용해 port scan 진행 없이 ARP 스캔만 수행: nmap -PR -sn <host>

 
*arp-scan: ARP 쿼리를 기반으로 구축된 스캐너
 
4. Nmap Host Discovery with ICMP

  • 대상 네트워크의 모든 IP 주소에 대해 ping을 수행하고 ping response(reply 0)으로 확인 가능함
  • 가장 Simple한 방법이지만, 많은 F·W에서 ICMP echo를 차단함
    • 기본적으로 MS Windows는 ICMP 에코 요청을 차단하는 호스트 방화벽으로 구성됨
    • 대상이 동일한 서브넷에 위치하는 경우 ARP 쿼리가 ICMP 요청보다 우선됨

ICMP 에코 요청을 사용한 라이브 호스트 검색: nmap -PE -sn <host>

  • ICMP echo 요청은 차단되는 경우가 많으므로, ICMP timestamp 요청/응답을 사용할 수 있음: nmap -PP -sn <host>
    •  ICMP 질의메세지가 두 시스템간에 왕복하는데 소요된 시간 또는 시간차를 파악
  • ICMP Address Mask 요청/응답도 사용 가능함: namp -PM -sn <host>
    • 저장 매체가 없는 호스트가 서브넷 마스크 값을 알기 위해 요청

 
5. Live Host Discovery with TCP / UDP

  • TCP SYN: -PS를 사용해 포트 번호 지정 가능
    • -PS80, 443, 8080
  • TCP ACK: 
    • 권한이 있는 사용자로 nmap을 실행해야함, 권한 없는 사용자로 시도시 nmap은 그냥 3way hand-shake 시도함
  • UDP 
    • TCP SYN과 달리 열린 포트로 UDP 패킷 전송 시 응답이 없음

 
6. DNS 조회
- IP 주소를 domain 이름으로 바꾸어 가시성을 높이기 위함

  • -R
  • --dns-servers DNS_SERVER: 특정 DNS 서버 사용시

* -sn포트 검색 없이 호스트 검색에만 관심이 있는 경우 추가하기, 생략하면 -snNmap이 기본적으로 라이브 호스트의 포트 스캔을 수행함