본문 바로가기

인터넷보안

스캔 (Scan)

▶ 풋 프린팅 (Foot Printing

  • 신문 / 게시판 등을 통해 공격 대상의 정보를 모으는 것
  • 해킹을 위한 사전 준비

 

※ 풋 프린팅을 통해 얻는 정보

  • 목표 시스템 사용자 계정
  • 계정 사용자의 이름, 전화번호 등.. (Password 유추)
  • 여타 추가 정보
  • Chain Rule

 

▶ 스캔 (Scan) 

  • 네트워크를 통한 정보 수집
  • 서버의 작동 여부, 제공하는 서비스 확인
  • 요청 보내기 → 응답의 원리 기반
  • 방화벽 & IDS 우회하기 위함

 

※ 스캔의 종류

  • ping
    • 서버의 동작 여부 확인
    • ICMP 사용
  • ICMP 스캔
    1. Echo Request / Reply (Type 8 / 0)
    2. Timestamp R / R (Type 13 / 14)
    3. Information R / R (Type 15 / 16)
    4. ICMP Address Mask R / R (Type 17 / 18)

 

※ Ping

ping을 사용하면 응답되는 패킷의 TTL(Time to Live) 값을 통해 대상 OS 추정 가능

  • OS 마다 사용하는 기본 TTL값이 다르다.
  • But, 관리자가 직접 변경 가능 → OS 유추를 어렵게

cmd에서 ping 결과

 

OS에 따른 TTL 기본 값

운영체제 TTL
리눅스 커널 2.2~2.4 255
Ubuntu 128
솔라리스 255
윈도우 98 128
윈도우 XP 128
윈도우 10 64
...  

 

※ Ping 응답 분석

  1. ICMP 패킷의 길이
  2. 공격 대상에서 보내온 ICMP Echo Reply 패킷의 크기
  3. Echo Request 패킷을 보낸 후 ~ Reply 패킷 받기까지의 시간
  4. TTL 값 (운영체제에 따라 변화, 관리자가 변경 가능)
  5. Request 패킷 개수, Reply 패킷 개수, 손실 패킷 개수
  6. Request 패킷 보낸 후, Reply 패킷 도착까지의 시간

 

 

※ ICMP Echo Request 패킷이 안될 경우 추가 방법 3가지

  1. Timestamp Request
  2. Information Request
  3. ICMP Address Mask Request / Reply

 

운영체제 별로 ICMP 패킷의 사용 가능 여부가 다르다.

ICMP Echo Request를 제외한 다른 패킷의 작동 가능 여부는 다음과 같다.

 

운영체제 Information Timestamp Address Mask
리눅스 커널 2.2~2.6 X O X
솔라리스 X O O
윈도우 98 X O O
윈도우 2000 이상 X O X
FreeBSD X O X
...      

 

따라서,

  1. ICMP Echo Request를 사용
  2. Echo Request가 막혔다? = 방화벽을 사용 중이다.
  3. 다른 Request 방식을 사용한다.
    - 사용되는 Request 방식에 따라 운영체제 유추 가능

 


 

▶ ICMP Timestamp 스캔 

※ Timestamp Request 패킷

ICMP Timestamp

  • Original / Receive / Transmit 타임스탬프는 32bit 길이
  • 각 필드에 "세계 표준시"에 대한 시간 값이 저장

Original Timestamp : 송신자가 패킷을 보냈을 때 시간

Receive Timestamp : 수신자가 패킷을 받았을 때 시간

Transmit Timestamp : 수신자가 Reply 메세지를 다시 보낼 때 시간

도착 시간 : 수신자의 Reply 메세지를 받은 시간

 

이 4가지 시간을 통해  Round-Trip-Time RTT를 계산.

 

예시)

Original : 19시 30분 30초

Receive : 19시 30분 40초

Transmit : 19시 30분 41초

도착 시간 : 19시 30분 43초

 

송신시간 = (수신측)19시 30분 40초 - (송신측) 19시 30분 30초 = 10s

수신시간 = (송신측)19시 30분 43초 - (수신측) 19시 30분 41초 = 2s

왕복시간 = 송신시간 + 수신시간 = 10 + 2 = 12s

 

상대가 Reply 패킷이 돌아왔다?

→ 상대 시스템이 활성화가 되어있다는 정보 획득

 


 

▶ TCP/UDP 스캔 

※TCP Open 스캔

  • 열린 Port에 대해 "완전한 세션을 성립"시킴으로써 활성화 상태 파악

TCP의 3-Way 핸드셰이크를 통해 세션을 성립시키는 것.

(a)와 같은 Open 스캔은 상대 시스템에 로그가 남는다.

(b)와 같은 닫힌 포트는 공격자가 다시 ACK 패킷을 보내지 않는다.

  • 로그에 남아 쉽게 탐지될 수 있는 가장 기본적인 스캔 방식

 

※ Reverse Ident 스캔

  • 세션을 성립한 상태에서 서버의 Daemon을 실행중인 대상을 확인하는 방법

  • 그림과 같이 이미 TCP 3-way 핸드셰이크로 세션이 성립된 이후
  • 113번 Port를 통해 Daemon 실행 중인 대상에 대한 정보를 획득

 

※ 스텔스(Stealth) 스캔 (Half-open Scan)

  • 공격 대상 시스템에 로그 생성 X
    • 현재는 방어 기법의 발달로 로그가 생성된다.
  • 공격 대상을 속여 자신의 위치를 숨기는 스캔 모두 통칭
  • 예) TCP Half Open 스캔

일반적인 TCP Open 스캔과 동일해보이지만,

(a) Open 포트에서 3-way 핸드셰이크 과정 중,

ACK 메세지가 아닌 RST 메세지를 보냄으로써

세션을 성립 X , ACK 메세지를 통한 로그 생성도 방지한다.

 

 

※ ACK 스캔

  • ACK 패킷을 받은 시스템은 RST 패킷은 반환
  • 공격자는 RST 패킷의 TTL값 & Window 크기를 통해 분석
    • Port가 닫혀 있는 경우?
      운영체제에 따른 큰 값 or Window 크기 0인 RST 패킷이 리턴
    • TTL 값이 64 이하 & Window 크기가 0이 아니다?
      열린 Port

예시)

1: host 192.168.0.12  port 20: F:RST -> ttl: 64 win : 0
2: host 192.168.0.12  port 21: F:RST -> ttl: 64 win : 0
3: host 192.168.0.12  port 22: F:RST -> ttl: 64 win : 512
4: host 192.168.0.12  port 23: F:RST -> ttl: 64 win : 0

위의 예시에서 1, 2, 4번의 시도는 Window 크기가 0

즉, 닫힌 Port 이지만

 

2번의 경우 Window 크기가 512로 0이 아니며,

TTL 값이 64이므로 64 이하에 포함.

= 열린 Port이다.

 

 

※ UDP 스캔

  • Port 닫힘 → 공격 대상이 ICMP Unreachable 패킷 전송
  • Port 열림 → 공격 대상이 "응답 X"
  • UDP의 특성 상 네트워크상에서 Router / 방화벽에 의해 손실될 가능성이 높다.
    따라서, UDP 스캔은 "신뢰성이 낮다."

UDP 스캔

'인터넷보안' 카테고리의 다른 글

SNMP  (0) 2025.04.08
OS / 방화벽 탐지  (0) 2025.04.08
IP 추적  (0) 2025.04.05
Whois & DNS  (0) 2025.04.03
정보보호기초  (0) 2025.04.02