▶ 풋 프린팅 (Foot Printing)
- 신문 / 게시판 등을 통해 공격 대상의 정보를 모으는 것
- 해킹을 위한 사전 준비
※ 풋 프린팅을 통해 얻는 정보
- 목표 시스템 사용자 계정
- 계정 사용자의 이름, 전화번호 등.. (Password 유추)
- 여타 추가 정보
- Chain Rule
▶ 스캔 (Scan)
- 네트워크를 통한 정보 수집
- 서버의 작동 여부, 제공하는 서비스 확인
- 요청 보내기 → 응답의 원리 기반
- 방화벽 & IDS 우회하기 위함
※ 스캔의 종류
- ping
- 서버의 동작 여부 확인
- ICMP 사용
- ICMP 스캔
- Echo Request / Reply (Type 8 / 0)
- Timestamp R / R (Type 13 / 14)
- Information R / R (Type 15 / 16)
- ICMP Address Mask R / R (Type 17 / 18)
※ Ping
ping을 사용하면 응답되는 패킷의 TTL(Time to Live) 값을 통해 대상 OS 추정 가능
- OS 마다 사용하는 기본 TTL값이 다르다.
- But, 관리자가 직접 변경 가능 → OS 유추를 어렵게

OS에 따른 TTL 기본 값
| 운영체제 | TTL |
| 리눅스 커널 2.2~2.4 | 255 |
| Ubuntu | 128 |
| 솔라리스 | 255 |
| 윈도우 98 | 128 |
| 윈도우 XP | 128 |
| 윈도우 10 | 64 |
| ... |
※ Ping 응답 분석

- ICMP 패킷의 길이
- 공격 대상에서 보내온 ICMP Echo Reply 패킷의 크기
- Echo Request 패킷을 보낸 후 ~ Reply 패킷 받기까지의 시간
- TTL 값 (운영체제에 따라 변화, 관리자가 변경 가능)
- Request 패킷 개수, Reply 패킷 개수, 손실 패킷 개수
- Request 패킷 보낸 후, Reply 패킷 도착까지의 시간
※ ICMP Echo Request 패킷이 안될 경우 추가 방법 3가지
- Timestamp Request
- Information Request
- 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 |
| ... |
따라서,
- ICMP Echo Request를 사용
- Echo Request가 막혔다? = 방화벽을 사용 중이다.
- 다른 Request 방식을 사용한다.
- 사용되는 Request 방식에 따라 운영체제 유추 가능
▶ ICMP Timestamp 스캔
※ Timestamp Request 패킷

- 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
- 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 스캔은 "신뢰성이 낮다."

'인터넷보안' 카테고리의 다른 글
| 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 |