Chapter 06

41
Chapter 06 풋풋풋풋풋 풋풋 20022173 풋풋풋

description

Chapter 06. 풋프린팅과 스캔. 200 22173 류재민. 학습 목표. 풋프린팅 (footprinting) 을 이해한다 . 포트와 서비스의 관계를 이해한다 . 여러 가지 스캔 기술을 이해하고 실행할 수 있다 . 방화벽과 IDS 를 탐지할 수 있다 . 운영체제를 탐지할 수 있다. Section 01. 풋프린팅. 해킹에서 공격 대상의 정보를 모으는 방법 매우 다양한 기법이 있으며 , 매우 넓은 의미가 포함 사회 공학 (Social Engineering) - PowerPoint PPT Presentation

Transcript of Chapter 06

Page 1: Chapter 06

Chapter 06

풋프린팅과 스캔

20022173 류재민

Page 2: Chapter 06

학습 목표

풋프린팅 (footprinting) 을 이해한다 .

포트와 서비스의 관계를 이해한다 .

여러 가지 스캔 기술을 이해하고 실행할 수 있다 .

방화벽과 IDS 를 탐지할 수 있다 .

운영체제를 탐지할 수 있다 .

Page 3: Chapter 06

Section 01. 풋프린팅

해킹에서 공격 대상의 정보를 모으는 방법

매우 다양한 기법이 있으며 , 매우 넓은 의미가 포함

사회 공학 (Social Engineering)

기술적인 방법이 아닌 , 개인적인 인간 관계 , 업무적 관계 등을 이용하는 방법에서부터 어깨 넘어 훔쳐보기 등정보를 획득하는데 이용 가능한 비 기술적인 경로를 이용해서 정보를 모으는 방법

Page 4: Chapter 06

Section 02. 포트

시스템에는 65535 개의 포트가 있으며 , 0 번부터 1023 번까지의 1024 개의 포트를 Well Known 포트라고 부른다 . Well Known 포트는 일상적으로 잘 알려진 서비스를 위해 고유의 용도가 있다 .

보통 0 번 포트는 쓰지 않으며 , 1024 번 포트부터 65534 포트는 임의의 사용 용도를 위해서 , 또는 클라이언트가 서버에 접속 시에 할당 받는 포트의 범위 이다 .

Page 5: Chapter 06

Well Known 포트 (1/2)

포트 번호 서비스 서비스 내용21

(TCP)FTP File Transfer Protocol

FTP 연결 시 인증과 컨트롤을 위한 포트

23(TCP)

Telnet

Telnet 서비스로서 원격지의 서버의 실행 창을 얻어낸다 .

25(TCP)

SMTP Simple Message Transfer Protocol 메일을 보낼 때 사용하는 서비스

53(UDP)

DNS Domain Name Service 이름을 해석하는 데 사용하는 서비스

69 (UDP)

TFTP Trivial File Transfer Protocol 인증이 존재하지 않는 단순한 파일 전송에 사용되는 서비스

80 (TCP)

HTTP Hyper Text Transfer Protocol 웹 서비스

Page 6: Chapter 06

Well Known 포트 (2/2)

포트 번호 서비스 서비스 내용

110 POP3  Post Office Protocol 메일 서버로 전송된 메일을 읽을 때 사용하는 서비스

111 RPC

Sun 의 Remote Procedure Call 원격에서 서버의 프로세스를 실행할 수 있게 한 서비스

138 NetBIOS

Network Basic Input Output Service 윈도우에서 파일을 공유하기 위한 서비스

143 IMAP Internet Message Access Protocol. POP3와 기본적으로 같으나 ,   메일을 읽고 난 후에도 메일은 서버에 남는 것이 다르다 .

161 SNMP Simple Network Management Protocol 네트워크 관리와 모니터링을 위한 서비스

Page 7: Chapter 06

데몬 (daemon)

시스템의 사용자 인터페이스에는 나타나지 않지만 , 서비스가 요청되었을 때 이에 반응할 수 있도록 항상 실행되는 프로그램

따라서 웹 서비스에 대한 데몬과 FTP 서비스를 위한 데몬이 별도로 존재한다 . 각각의 데몬을 실행해야만 포트가 열리며 , 해당포트에서 적절한 서비스를 제공받을 수 있다 .

각각의 데몬은 하나의 프로그램이기 때문에 취약점이 존재할 수 있는데 , 이러한 점을 이용하여 해커는 공격 대상 시스템에 침투한다 .

Page 8: Chapter 06

Section 03. 스캔

스캔은 서비스를 제공하는 서버의 작동 여부와 제공하고 있는 서비스를 확인하기 위한 것이다 . TCP 기반의 프로토콜은 기본적으로 질의 (Request) 를 보내면 응답(Response) 을 보낸다 .

스캐닝은 이러한 기본적인 메커니즘에 기본 하는 것으로 , 열려있는 포트 , 제공하는 서비스 , 동작중인 데몬의 버전 , 운영체제의 버전 , 취약점 등 다양한 정보를 얻어내는 것이 가능하다 .

Page 9: Chapter 06

Ping / ICMP

Ping

네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티로 개발되었다 . ICMP 를 사용한다 .

ICMP(Internet Control Messaging Protocol)

호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 알려주고 오류를 알려주는 프로그램

Page 10: Chapter 06

ICMP 스캔

ICMP 를 이용한 스캔 방법에는 다음의 네 가지가 있다 .

- Echo Request(Type 8) 와 Echo Reply(Type 0) 을 이용한 방법

- Timestamp Request(Type 13) 와 Timestamp Reply(Type 14) 을 이용하는 방법

- Information Request(Type 15) 와 Information Reply(Type 16) 을 이용하는 방법

- ICMP Address Mask Request(Type 17) 와 ICMP Address Mask Reply(Type 18) 을 이용하는 방법

Page 11: Chapter 06

Echo Request(Type 8), Echo Reply(Type 0)

Page 12: Chapter 06

Timestamp Request(Type 13), Timestamp Reply(Type 14)

Timestamp Request 는 원격지 시스템의 현재 시간을 알아보기 위한 패킷이다 . Timestamp 패킷은 송신자의 패킷 전송시간(Originate Timestamp) 과 수신자가 패킷을 받은 시간 (Receive

Timestamp), 수신자가 송신자에게 응답 할 때의 시간 (Transmit

Timestamp) 으로 공격대상의 현재 시스템 시간을 알 수 있다 .

하지만 , Timestamp Request 패킷에 Reply 패킷을 돌려보내오는 시스템이 시간만 알려준다고 생각할 수는 없다 .

상대 시스템이 Reply 패킷이 돌아온다는 것은 상대 시스템이 활성화되어 있음을 말하는 것이다 .

Page 13: Chapter 06

Information Request(Type 15), Information Reply(Type 16)

Information Request 와 Reply 패킷은 메인 프레임의 터미널과 같이 부팅할 때 자신의 디스크가 없는 시스템에 스스로 설정할 수 있도록 하는 패킷으로 , 자신의 네트워크를 찾기 위해 개발되었다 . 기본적인 목적은 RARP, Bootp, DHCP 와 같은 프로토콜과 같으나 다른 프로토콜을 이용한 방법에 비해 원시적이라고 할 수 있다 . 이 방법 역시 Timestamp 패킷과 마찬가지로 죽어있는 시스템이 Reply 패킷을 보내오지는 않을 것이다 .

Page 14: Chapter 06

ICMP Address Mask Request(Type 17), ICMP Address Mask Reply(Type 18)

ICMP Address Mask Request 와 Reply 패킷은 Information Request 패킷과 같이 터미널이 부팅될 때 자신이 속해 있는 네트워크의 서브넷 마스크를 알기 위해서 보내는 프로토콜이다 . 위의 두 가지 방법과 마찬가지로 Reply 패킷을 돌려보내오는지 확인함으로써 , 상대 시스템의 활성화 여부를 확인한다 .

Page 15: Chapter 06

UDP 스캔

포트가 열려있을 경우 , 아무런 응답이 없으며 , 포트가 닫혀 있을 경우에는 ICMP Unreachable 패킷을 받게 된다 .

Page 16: Chapter 06

TCP Open 스캔

포트가 열려있는 경우 , 세션이 성립되며 , 포트가 닫혀 있을 경우에는 RST+ACK 패킷을 받게 된다 .

Page 17: Chapter 06

Reverse Ident 스캔

세션이 성립한 상태에서 원격지 서버에서 데몬을 실행하고 있는 프로세스의 소유권자를 확인하기 위한것

세션이 성립한 뒤에 113 번 포트를 연다 . 113 번 포트는 사용자 인증을 위해 사용되는 포트지만 , 보통의 경우 이 서비스는 중지되어 있다 .

Page 18: Chapter 06

Stealth 스캔

Open 스캔처럼 세션을 완전히 성립하지 않고 , 공격 대상 시스템의 포트의 활성화 여부를 알아내기 때문에 로그 정보가 남지 않는다 . 공격 대상의 시스템 관리자는 어떤 IP 를 가진 공격자가 자신의 시스템을 스캔했는지 확인할 수 없다 .

스텔스 스캔은 이처럼 단순히 로그를 남기지 않는 것만이 아니라 , 공격 대상을 속이고 자신의 위치를 숨기는 스캔 모두를 통칭한다 .

Page 19: Chapter 06

Stealth 스캔 : TCP Half Open 스캔

포트가 열려있을 경우 , 서버로부터 SYN+ACK 패킷을 받은 후 , RST(Reset) 패킷을 보내어 연결을 끊는다 . 포트가 닫혀있을 경우에는 Open 스캔의 경우와 같다 .

Page 20: Chapter 06

Stealth 스캔 : FIN, Xmas, Null 스캔

포트가 열려있을 경우에는 응답이 없고 , 포트가 닫혀 있는 경우에만 RST 패킷이 되돌아온다 .

Page 21: Chapter 06

기타 스캔 방법 (1/2)

ACK 패킷을 이용하는 방법

공격자로부터 받은 RST 패킷을 분석하여 상대 시스템의 활성화 여부 확인

TCP 를 패킷을 이용한 스캔 방법

SYN 패킷을 이용한 스캔 방법은 세션을 성립하기 위한 정당한 패킷과 구별 불가능

Stealth : TCP 단편화 방법

20바이트의 TCP 헤더를 두개의 패킷으로 나누어 보냄으로서 방화벽을 통과함

Page 22: Chapter 06

기타 스캔 방법 (2/2)

시간차를 이용한 스캔 Paranoid : 5 ~ 10분 간격으로 패킷을 보냄 Sneaky : WAN=15, LAN=5초 단위로 패킷을 보냄 Polite : 0.4초 단위로 패킷을 보냄 Normal : 정상적인 경우 Aggressive : 호스트에 대한 최대 타임아웃은 5 분이며 , 패킷당

1.25초까지 응답을 기다림 Insane : 호스트에 대한 최대 타임아웃은 75초이며 , 패킷당 0.3초까지 응답을 기다림 ( 방화벽과 IDS 의 네트워크 카드가 100Mbps 이상이 아니면 탐지 불가

FTP 바운스 (bounce) 스캔 취약한 FTP 서버에서는 Port명령을 통해 다른 포트에 대한

활성화 여부 확인 , 방화벽 내에 취약한 FTP 서버 존재시 사용

Page 23: Chapter 06

Fping 을 이용한 스캔

Fping 을 이용하여 특정 네트워크에서 활성화된 시스템 확인

Page 24: Chapter 06

Sing 을 이용한 스캔 (1/2)

Page 25: Chapter 06

Sing 을 이용한 스캔 (2/2)

Page 26: Chapter 06

NMAP 을 이용한 스캔(1/3)

Page 27: Chapter 06

NMAP 을 이용한 스캔(2/3)

Page 28: Chapter 06

NMAP 을 이용한 스캔(3/3)

Page 29: Chapter 06

NMAP 을 이용하여 가능한 스캔

스캔 옵션 내 용

-sT connect( ) 함수를 이용한 Open 스캔

-sS 세션을 성립시키지 않는 TCP syn 스캔

-sF Fin 패킷을 이용한 스캔

-sN Null 패킷을 이용한 스캔

-sX XMas 패킷을 이용한 스캔

-sU UDP 포트 스캔

-sP Ping 을 이용한 호스트 활성화 여부 확인

Page 30: Chapter 06

Section 04. 운영체제의 탐지

배너 그래핑 (Banner Grabbing) Banner Grabbing 은 Telnet 과 같이 원격지의 시스템에

로그인을 시도하면 나타나는 안내문과 같은 것이다 .

23 번 포트에 탤넷 접속을 시도한 위의 화면에서는 운영체제의 버전과 커널 버전을 확인할 수 있다 . 이러한 배너 그래빙은 23번 포트 외에도 21,25,110,143 포트에서도 가능하다 .

Page 31: Chapter 06

TCP/IP 프로토콜에 대한 반응

Fin 스캔을 이용한다 . Fin 스캔은 모든 운영체제에 적용되는 것은 아니다 . 적용되는 운영체제는 윈도우 , BSD, Cisco, Iris 등으로 , Fin 스캔의 가능 여부에 따라 운영체제를 판별할 수 있다 .

세션 연결 시 TCP 패킷의 시퀀스 넘버 생성을 관찰- 윈도우 : 시간에 따른 시퀀스 넘버 생성 - 리눅스 : 완전한 랜덤 - FreeBSD, Digital-Unix, IRIX, Solaris : 시간에 따른 랜덤한 증분

Page 32: Chapter 06

넷크래프트 이용

Page 33: Chapter 06

Section 05. 방화벽과 침입 탐지 시스템의 탐지

방화벽은 침입자를 차단하는 일차적은 방어선이다 . 모든 클라이언트가 접속을 시도하면 , 그 연결은 모두 방화벽을 거치는 것이 원칙이다 . 또한 방화벽은 이 모든 접속들에 대한 허용과 차단을 결정한다 .

침입 탐지 시스템 (IDS, Intrusion Detection System) 은 방화벽이 막을 수 없거나 차단에 실패한 공격에 대한 탐지를 하여 관리자에게 알려주는 역할을 한다 .

Page 34: Chapter 06

Traceroute / Tracert 을 이용한 방법(1/3)

Traceroute 의 원리 UDP 와 ICMP, 그리고 IP 의 TTL 값을 이용 a.a.a.a 에서 b.b.b.b 까지 traceroute 할 경우의 동작순서

1. Traceroute 프로그램은 TTL 밧을 1로 설정하고 포트 번호를 33435 번으로 하여 UDP 패킷을 한 번에 세 개씩 보낸다 .

2. 첫 번째 라우터는 1로 설정된 TTL 값을 0 으로 줄이고 , 출발지 주소로 ICMP Time Exceed 메시지 (Type 11) 를 보낸다 .

3. a.a.a.a 에서 이 패킷을 보고 , 첫 번째 라우터까지의 시간을 알아낼 수 있다 .

4. 다시 두 번째 라우터까지는 TTL 값을 2 로 설정하여 보내고 , 첫 번째 라우터와 같은 과정을 두번째 라우터가 하게 된다 .

5. 이 과정을 반복하여 목적지 시스템에 도달하게 되면 ICMP Port Unreachable(Type 3) 패킷이 돌아오게 되고 모든 과정이 끝난다 .

Page 35: Chapter 06

Traceroute / Tracert 을 이용한 방법(2/3)

목표 IP 에 대해 traceroute 를 시도할 경우 , ICMP Time Exceed Message 가 돌아오지 않고 , * 로 표시된 부분에 방화벽이 존재할 수 있다 .

Page 36: Chapter 06

Traceroute / Tracert 을 이용한 방법(3/3)

Page 37: Chapter 06

Sam Spade 를 이용한 traceroute

Page 38: Chapter 06

Port 스캔을 이용하는 방법(1/2)

각각의 방화벽과 IDS 는 운영을 위해 특정한 포트를 활성화시키고 있다 . 특정 포트에 대한 탐지를 통해 방화벽과 IDS 의 종류까지 알아낼 수 있다 .

방화벽 활성화된 포트

Check Point : Firewall - I

256, 257, 258

M.S. Proxy 1080, 1745

M.S ISA 1078, 1080, 1745

어울림 Secure Works 3346, 2890

화랑 486, 285

Cisco PIX 530, 540

수호신 764, 765

Astaro 1235, 1236

IP Chain 1334

Inter Guard 1680

[ 방화벽에서 열린 포트 ]

Page 39: Chapter 06

Port 스캔을 이용하는 방법(1/2)

IDS 활성화된 포트

Check Point : VPN Swite

300, 301

M.S. ISA 1078, 1080, 1745

어울림 Secure IDS 1033

Cisco PIX IDS 550

수호신 Network Solution 764, 765

인젠 Neowatcher 1887

정보보호원 TSN 1900

Snort 2350

하지만 일반적인 스캔 방법으로 포트를 확인할 수 있는 것은 아니다 . 이 포트들을 찾아내려면 집중적인 스캔 방법이 필요하다 .

[IDS 에서 열린 포트 ]

Page 40: Chapter 06

방화벽의 ACL(Access Control List)를 알아내는 방법 (1/2)

1. 방화벽이 탐지되면 방화벽까지의 TTL 보다 1만큼 더 큰 TTL 값을 생성하여 보낸다 .

2. 방화벽이 패킷을 차단할 경우 아무런 패킷도 돌아오지 않는다 .

Page 41: Chapter 06

방화벽의 ACL(Access Control List)를

알아내는 방법 (2/2)

3. 방화벽이 패킷을 그대로 보낼 경우 , 패킷은 다음 라우터에서 사라지며 , 라우터는 ICMP Time Exceed Message(Type 11) 을 보낸다 .

4. 공격자는 ICMP Time Exceed Message 의 여부를 확인하고 , ACL 을 예측할 수 있다 .