정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서...

35
영동대학교 스마트IT학부: 컴퓨터와 해킹 이호준 [email protected] 풋프린팅과 스캐닝

Upload: others

Post on 19-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

영동대학교 스마트IT학부: 컴퓨터와 해킹

이호준 [email protected]

풋프린팅과 스캐닝

Page 2: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

2/35

Contents

학습목표

풋프린팅(footprinting)이 무엇인지 안다.

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

다양한 스캔 기술을 이해하고 실행할 수 있다.

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

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

내용

풋프린팅(Footprinting)

스캔

운영체제의 탐지

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

Page 3: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

3/35

풋프린트(footprint)는 발자국

풋프린팅(footprinting)은 발자국을 살펴보는 것으로, 공격 대상의 정보를 모으는 방법 중 하나

풋프린팅

Page 4: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

4/35

서비스를 제공하는 서버의 존재 여부와 해당 서버가 제공하고 있는 서비스를 확인하는 것

TCP 기반 프로토콜은 기본적으로 요청(request)을 보내면 응답(response)을 전달. 스캔은 이런 원리를 기반으로, 전화를 걸었을 때 한 쪽에서 ‘여보세요’라고 말하면 다른 쪽도 ‘여보세요’라고 말하며 서로를 확인하는 것

스캔

Page 5: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

5/35

ping 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티

ICMP를 사용하며, 기본적으로 TCP/IP 네트워크에서 사용

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)를 이용한 방법

ping과 ICMP 스캔

Page 6: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

6/35

윈도우 XP 시스템에서 다른 윈도우 XP 시스템으로 ping 실행

➊ ICMP 패킷의 길이를 나타낸다. 운영체제마다 보내는 바이트 길이가 다르다.

➋ 공격 대상에서 보내온 ICMP Echo Reply 패킷의 크기다. 공격자가 보낸 패킷과 크기가 같은 패킷이 돌아온다.

➌ Echo Request 패킷을 보낸 후 Reply 패킷을 받기까지의 시간이다. 공격 대상이 같은 네트워크에 존재하여 시간이 무척 짧다.

➍ TTL(Time To Live) 값으로, 라우팅 정보가 잘못되어 패킷이 네트워크를 무한대로 돌아다니지 않도록 최초 라우터를 제외한 라우터 하나를 지날 때마다 값이 1씩 줄어든다.

➎ Request 패킷의 개수, Reply 패킷의 개수, 손실된 패킷의 개수를 보여준다.

➏ Request 패킷을 보낸 후 Reply 패킷이 오기까지의 시간에 관한 정보를 알려준다.

ping과 ICMP 스캔

Page 7: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

7/35

운영체제별 TTL 값(표 6-1)

ping과 ICMP 스캔

Page 8: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

8/35

리눅스에서의 ping 실행

ping과 ICMP 스캔

Page 9: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

9/35

라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용

• Timestamp Request는 원격지 시스템의 현재 시각을 알아보기 위한 패킷

• Timestamp Request 패킷은 송신자가 패킷을 보낸 시각(Originate Timestamp)과 수신자가 패킷을 받은 시각(Receive Timestamp), 송신자가 수신자에 전송하는 동안 걸린 시간(Transmit Timestamp)으로 공격 대상의 현재 시스템 시각을 알 수 있게 해줌

• 하지만 Timestamp Request 패킷에 Reply 패킷을 돌려보내는 시스템이 시간만 알려준다고 생각할 수는 없음. 상대 시스템의 Reply 패킷이 돌아온다는 것은 상대 시스템이 활성화되어 있음도 말하는 것

Information Request 패킷 이용

• Information Request와 Reply는 메인 프레임의 단말기처럼 부팅할 때 자신의 디스크가 없는 시스템이 스스로 IP를 설정할 수 있도록 하는 패킷으로, 자신의 네트워크를 찾기 위해 개발됨.

• 기본 목적은 RARP, Bootp, DHCP 같은 프로토콜과 같으나 다른 프로토콜을 이용한 방법에 비해 원시적이라고 할 수 있음

• Timestamp Request 패킷처럼 죽은 시스템은Reply 패킷을 보내오지 않을 것

ICMP Address Mask Request와 Reply 패킷 이용

• Information Request 패킷처럼 단말기가 부팅될 때 자신이 속한 네트워크의 서브넷 마스크를 알기 위해 보냄

• Reply 패킷이 돌아오는지 확인함으로써 상대 시스템의 활성화 여부를 확인

ping과 ICMP 스캔

Page 10: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

10/35

운영체제별 Non Echo ICMP 패킷의 작동 여부(표 6-2)

ping과 ICMP 스캔

Page 11: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

11/35

시스템 자체의 활성화 여부가 아닌 포트 스캔(port scan)을 함 포트가 열려 있으면 해당 시스템은 활성화되어 있는 것

TCP Open 스캔(1) 열린 포트에 대해 완전한 세션을 성립시킴으로써 포트의 활성화 상태를 파악하는 것

작동하리라고 예상하는 포트에 세션을 생성하기 위한 SYN 패킷을 보내면, 포트가 열린

경우 서버에서 SYN+ACK 패킷이 돌아오고 공격자는 다시ACK 패킷을 보냄. 포트가

닫혀 있는 경우에는 RST +ACK 패킷이 돌아오고 공격자는 아무 패킷도 보내지 않음

TCP와 UDP를 이용한 스캔

Page 12: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

12/35

TCP Open 스캔(2) Open 스캔 중에는 세션을 성립한 상태에서 원격지 서버에서 데몬을 실행하고 있는 프

로세스의 소유권자를 확인하기 위한 Reverse Ident라는 스캔 방법이 있음.

Reverse Ident 스캔은 세션을 성립한 후에 113번 포트를 염. 113번 포트는 사용자

인증을 위해 사용되는 포트지만, 이 서비스는 보통 중지되어 있음

TCP와 UDP를 이용한 스캔

Page 13: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

13/35

스탤스 스캔 세션을 완전히 성립하지 않고, 공격 대상 시스템의 포트 활성화 여부를 알아내기 때문에

공격 대상 시스템에 로그가 남지 않음

TCP Half Open 스캔

• SYN 패킷을 보내면, 포트가 열린 경우 서버는 SYN+ACK 패킷을 보내고 공격자는 즉시 연결을 끊는RST(Reset) 패킷을 보냄. 포트가 닫힌 경우는 RST +ACK 패킷이 돌아오고 공격자는 아무 패킷도 보내지 않음

TCP와 UDP를 이용한 스캔

Page 14: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

14/35

FIN, NULL, XMAS 스캔

• FIN(Finish) 패킷을 보내 포트가 열린 경우에는 응답이 없고, 포트가 닫힌 경우에만RST 패킷이 되돌아옴

• NULL과 XMAS 패킷을 보내도 같은 결과를 얻을 수 있음. NULL은 플래그(flag)값을 설정하지 않고 보낸 패킷, XMAS는 ACK, FIN, RST, SYN, URG 플래그 모두를 설정하여 보낸 패킷

TCP와 UDP를 이용한 스캔

Page 15: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

15/35

ASK 패킷 스캔

• ACK 패킷을 포트 하나가 아니라 모든 포트에 보내고, ACK 패킷을 받은 시스템은 이에 대한 RST 패킷을 보냄

• 공격자는 RST 패킷의 TTL 값과 윈도우 크기 분석

• 포트가 열린 경우 TTL 값이 64 이하인 RST 패킷이 돌아오고, 윈도우가 0이 아닌 임의의 값을 가진 RST 패킷이 돌아옴. 포트가 닫힌 경우에는 TTL 값이 운영체제에 따라 일정하게 큰 값이며, 윈도우의 크기가 0인 RST 패킷이 돌아옴

TCP 단편화 스캔

• 크기가 20바이트인TCP 헤더를 패킷 두 개로 나누어 보내는 것

• 첫 번째 패킷에 출발지 IP 주소와 도착지 IP 주소를, 두 번째 패킷에 스캔하고자 하는 포트 번호가 있는 부분을 보냄

• 첫 번째 패킷은 TCP 포트에 대한 정보가 없기 때문에 방화벽을 통과하고, 두 번째 패킷은 출발지 주소와 목적지 주소가 없어 방화벽을 지날 수 있음

시간차 스캔

• 아주 짧은 시간 동안 많은 패킷을 보내는 방법과 아주 긴 시간 동안 패킷을 보내는 방법이 있음

• 아주 짧은 시간 동안 많은 패킷을 보내는 방법은 방화벽과 IDS의 처리 용량의 한계를 넘김

• 긴 시간 동안에 걸쳐서 패킷을 보내는 방법은 방화벽과 IDS가 패킷 패턴에 대한 정보를 얻기 힘들기 때문에 공격자의 스캔을 확인하기 힘들게 함

TCP와 UDP를 이용한 스캔

Page 16: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

16/35

UDP 스캔 UDP 패킷이 네트워크를 통해 전달되는 동안 라우터나 방화벽에 의해 손실될 수 있기

때문에 신뢰하기 어려움

TCP와 UDP를 이용한 스캔

Page 17: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

17/35

관련 툴 설치와 사용법 익히기

1-0 관련 명령어 사용법

yum list [패키지 명칭, * 사용 가능]

yum install [패키지 명칭, * 사용 가능]

yum erase [패키지 명칭, * 사용 가능]

1-1 fping 설치 ➊ yum list fping*

➋ fping.i686 패키지 확인

➌ yum install fping.i686

실습 6-1 다양한 방법으로 스캔하기

• 공격자 시스템 : 윈도우 XP와 리눅스 페도라 12

• 공격 대상 시스템 : 윈도우 서버 2003

• 필요 프로그램 : fping, hping3, sing, nmap

실습환경

1

Page 18: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

18/35

실습 6-1 다양한 방법으로 스캔하기

1-2 sing와 nmap 설치

➊ yum list sing*

➋ yum install sing.i686

➌ yum list nmap*

➍ yum install nmap.i686

fping을 이용해 스캔하기 : fping 실행

fping -g 192.168.0.0/24

2

Page 19: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

19/35

실습 6-1 다양한 방법으로 스캔하기

sing을 이용해 스캔하기 : sing 실행

sing -c 1 -tstamp 192.168.0.100

3

Page 20: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

20/35

실습 6-1 다양한 방법으로 스캔하기

nmap 이용해 스캔하기 4-1 nmap Open 스캔 nmap -sT 192.168.0.200

4

Page 21: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

21/35

실습 6-1 다양한 방법으로 스캔하기

4-2 nmap TCP SYN 스캔 nmap -sS 192.168.0.200

Page 22: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

22/35

실습 6-1 다양한 방법으로 스캔하기

4-3 nmap FIN 스캔 nmap -sF -p 21,23 192.168.0.200

Page 23: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

23/35

실습 6-1 다양한 방법으로 스캔하기

4-4 nmap fragmentation 스캔 nmap -f -sS 192.168.0.200

Page 24: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

24/35

실습 6-1 다양한 방법으로 스캔하기

4-5 윈도우용 nmap 실행

Page 25: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

25/35

실습 6-1 다양한 방법으로 스캔하기

nmap 스캔 옵션(표 6-3)

Page 26: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

26/35

실습 6-1 다양한 방법으로 스캔하기

nmap 실행 옵션(표 6-4)

Page 27: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

27/35

운영체제별로 ping과 TCP, UDP에 대해 각각 조금씩 다른 프로토콜 특성을 보인다. 이러한 특성을 이용하여 운영체제를 탐지 가능

배너 그래빙(banner grabbing) 배너(banner)는 텔넷처럼 원격지 시스템에 로그인하면 뜨는 안내문과 비슷한 것이고

배너 그래빙은 배너를 확인하는 기술

텔넷 배너 그래빙(그림 6-19)

텔넷으로 접속한 시스템이 페도라 12, 커널 버전은 2.6.31

방화벽과 IDS에도 이러한 배너가 있으며, 21, 25, 110, 143번 포트에도 ‘telnet [공

격 대상 IP] [공격 포트 번호]’와 같이 입력하여 배너 그래빙을 할 수 있음

운영체제의 탐지

Page 28: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

28/35

TCP/IP에 대한 반응 확인 TCP/IP에 대한 반응이 운영체제마다 달라 그 반응을 살핌으로써 운영체제를 추측할 수

있음

• FIN 스캔을 이용한다. FIN 스캔은 모든 운영체제에 적용되는 것은 아니다. 적용되는 운영체

• 제는 윈도우, BSD, Cisco, IRIS 등이다.

• 세션 연결 시TCP 패킷의 시퀀스 넘버 생성을 관찰한다. - 윈도우 : 시간에 따른 시퀀스 넘버 생성

- 리눅스 : 완전한 랜덤

- FreeBSD, Digital-Unix, IRIX, 솔라리스 : 시간에 따른 랜덤한 증분

운영체제의 탐지

Page 29: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

29/35

Netcraft(넷크래프트)의 웹 사이트 이용 시스템 재부팅 주기, 시스템 갱신 주기, 현재 운영체제 버전, 웹 서비스 데몬의 종류와

버전, 마지막으로 갱신 날짜와 IP 주소, 네트워크 소유자를 보여줌

운영체제의 탐지

Page 30: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

30/35

FTP에 대해 배너 그래빙하기 1-1 FTP 포트에 대한 텔넷 telnet 192.168.0.2 21

1-2 FTP 포트 접속 ftp 192.168.0.2

실습 6-2 배너 그래빙하기

• 공격자 시스템 : 리눅스 페도라 12

• 스캔 대상 시스템 : 리눅스 페도라 12

실습환경

1

Page 31: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

31/35

실습 6-1 다양한 방법으로 스캔하기

SMTP 포트에 대해 배너 그래빙하기 2-1 SMTP 포트에 대해 배너 그래빙하기 2-2 SSH(22), POP3(110)나 IMAP4(143) 등에 대한 배너 그래빙

➊ telnet 127.0.0.1 22 ➋ telnet 127.0.0.1 110 ➌ telnet 127.0.0.1 143

2

Page 32: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

32/35

방화벽은 접속의 허용과 차단 결정. 침입 탐지 시스템(IDS)은 방화벽이 막을 수 없거나 차단에 실패한 공격을 탐지하여 관리자에게 알려줌

방화벽은 traceroute를 이용해 위치 확인 가능 방화벽이 있는 경우 traceroute 결과

traceroute를 수행할 때 VisualRoute를 이용해 패킷의 전달 경로와 서버의 위치처럼

더 많은 정보를 얻을 수 있음

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

Page 33: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

33/35

방화벽과 침입 탐지 시스템마다 포트가 달라 고유 포트를 알면 포트 스캔을 통해 종류 파악 가능

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

Page 34: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

34/35

방화벽의 ACL(Access Control List)을 알아내는 방법으로 firewalk가 있음

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

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

③ 방화벽이 패킷을 그대로 보낼 경우 패킷은 다음 라우터에서 사라지며, 라우터는

traceroute 과정처럼 ICMP Time Exceeded 메시지(Type 11)를 보낸다.

④ 공격자는 ICMP Time Exceeded 메시지의 여부를 받은 포트에 대해 열린 포트임을

추측할 수 있다.

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

Page 35: 정보보안 개론과 실습:네트워크 · 2012-11-16 · 9/35 라우터나 방화벽 등에서 ICMP Echo Request 패킷을 막는 방법 Timestamp Request 패킷 이용 •Timestamp

영동대학교 스마트IT학부: 컴퓨터와 해킹