본문 바로가기
네트워크

포트 스캐닝 (Port Scanning)

by 공대냥이 2018. 11. 1.
반응형

포트 스캐닝이란?

 

대상의 어떤 포트가 열려 있는지 확인하는 작업으로 침입 전 취약점을 분석하기 위한 사전 작업.

 

스캐닝을 통해 대상의 네트워크 보안장비 사용 현황, 우회 가능 네트워크 구조, 해당 네트워크 내의 시스템 플랫폼 형태, 시스템 운영체제의 커널 버전, 제공하는 서비스 등에 대한 정보를 알 수 있다.

 

 

포트 스캔 유형

 

1. Sweep

    • 특정 네트워크에 대하여 해당 네트워크에 속해있는 시스템의 유무를 판단할 수 있는 기법으로, 이를 통해 목표 대상 기관에서 사용하거나 소유하고 있는 IP 주소와 네트워크 범위를 알아낼 수 있다.
    • 요청에 의한 응답을 수행하는 클라이언트/서버 구조를 기반으로 하고 있으며, 동작은 요청에 대한 응답 여부를 판단하는 방법을 사용한다.
    • Sweep의 종류에는 사용하는 프로토콜에 따라 ICMP Sweep, TCP Sweep, UDP Sweep의 세 가지 종류가 있다.

2. TCP Connect (Open) 스캔

    • connect() 함수를 사용해서 각 포트별로 접속하여 스캔하는 방식
    • 포트가 열려있는 경우 대상 시스템으로부터 SYN+ACK 패킷을 수신하면 그에 대한 ACK패킷을 전송함으로써 연결을 완료하는 방식
      • 3-way handshake 과정이라고도 한다
    • 포트가 닫혀있을 경우에는 대상 시스템이 연결 요청을 받아들이지 못하므로 타겟으로부터 RST+ACK 응답이 온다.
    • 완전한 TCP 연결을 맺어 신뢰성 있는 결과를 얻을 수 있으나, 속도가 느리고 로그가 남는다.
tcp open scan
tcp open scan
    • 해당포트가 방화벽에 의해 필터링되고 있다면 상대방으로부터 아무런 응답 메시지를 받지 못하거나 ICMP 메시지(Destination Unreachable)를 받을 수 있다. 일반적으로 보안상의 이유로 방화벽은 ICMP 응답을 주지 않도록 설정한다.

 

3. TCP Half-Open(SYN) 스캔

    • 세션에 대한 로그가 남는 TCP Open 스캔의 단점을 보완하기 위해 나온 기법으로 로그를 남기지 않아 추적이 불가능한 기법이다.
    • 기본적으로 관리자 권한을 가지고 있어야 SYN 스캔이 가능하다
      • raw소켓에 접근해서 TCP 프로토콜 헤더의 제어비트를 설정해야 하기 때문이다.
tcp half open scan
tcp half open scan
    • 포트가 열린 상태면 타겟으로부터 SYN+ACK 응답이 오고 ACK가 아닌 RST플래그를 설정한 TCP 패킷을 전송하여 연결을 강제로 종료한다.
    • 포트가 닫힌 상태면 타겟으로부터 RST+ACK 응답이 온다.
    • 연결 설정을 완료하지 않기 때문에 시스템 로그에 남지 않는다.

 

4. TCP FIN/NULL/Xmas 스캔

    • 스텔스 스캔으로 TCP Header의 제어비트(Control Bit)를 비정상적으로 설정하여 스캔하는 방식
    • TCP 표준(RFC 793)의 미묘한 허점을 이용.
      • RFC 793에서는 "포트 상태가 Closed라면 요청 세그먼트에 대한 응답으로 RST를 보내게 한다"라고 명시되어 있다.
    • TCP FIN 스캔
    • TCP Null 스캔

 

 

 

 

 

tcp null scan

 

 

 

 

 

    • TCP Xmas 스캔
      • 연결되어 있지 않은 포트에 일부 제어비트(FIN, PSH, URG) 또는 전체 제어비트를 설정한 탐지패킷을 전송
      • Xmas라고 이름 붙인 이유는 크리스마스 트리처럼 제어비트를 반짝거리게 설정했다는 의미


5. UDP 스캔

    • ICMP Unreachable 메시지를 이용하여 UDP 포트의 Open 여부를 판단하기 위한 스캐닝 방식
    • 열린포트 : UDP응답이 오거나 응답 없음
    • 닫힌포트 : ICMP 메시지(Type 3 : Destination Unreachable, Code 3: Port Unreachable) 응답
    • UDP를 이용한 포트 스캔은 신뢰하기 어렵다. UDP 패킷이 네트워크를 통해 전달 되는 동안 라우터나 방화벽에 의해 손실될 수 있기 때문이다.

반응형