37
네네네네 네네네 네네 part 4 네네네네 네네 김 김 김 12 김 김김김

part 4 네트워크 해킹

Embed Size (px)

DESCRIPTION

part 4 네트워크 해킹. 12 장 스푸핑. 김 미 진. Contents. 1. 스푸핑 공격이란. 2. 필수 라이브러리. 3. ARP 스푸핑. 4. IP 스푸핑. 5. DNS 스푸핑. 1. 스푸핑 공격. 스푸핑 (Spoofing) 이란 ‘ 속이다 ’ 라는 의미다 . IP 주소 , 호스트 이름 , MAC 주소 등 여러 가지를 속일 수 있으며 , 스푸핑은 이런 속임을 이용한 공격을 총칭한다 . - PowerPoint PPT Presentation

Citation preview

Page 1: part 4 네트워크 해킹

네트워크 해킹과 보안

part 4

네트워크 해킹

김 미 진

12 장 스푸핑

Page 2: part 4 네트워크 해킹

네트워크

해킹 &보안

Contents

네트워크 해킹과 보안 2

스푸핑 공격이란1

필수 라이브러리2

ARP 스푸핑3

IP 스푸핑4

DNS 스푸핑5

Page 3: part 4 네트워크 해킹

네트워크

해킹 &보안

1. 스푸핑 공격

스푸핑 (Spoofing) 이란 ‘속이다’라는 의미다 .

IP 주소 , 호스트 이름 , MAC 주소 등 여러 가지를 속일 수 있으며 , 스푸핑은 이런 속임을 이용한 공격을 총칭한다 .

인 터 넷 이 나 로 컬 에 서 존 재 하 는 모 든 연 결 에 스 푸 핑 이 가능하며 , 정보를 얻어내는 것 외에도 시스템을 마비시키는 것도 가능하다 .

흔 히 일 어 나 는 , IP 충 돌 문 제 역 시 고 의 가 아 닌 IP

스푸핑이라고 생각할 수 있다 .

3네트워크 해킹과 보안

Page 4: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – 네트워크에 존재하는 시스템의

MAC 테이블 확보하기

IP 로 인한 충돌 및 스푸핑 공격에 대비하여 관리하는 네트워크의 MAC 주소 테이블을 만들어두면 유용하게 쓸 수 있다 .

Root# arp -a

Root# ping –b 192.168.1.255

4네트워크 해킹과 보안

Page 5: part 4 네트워크 해킹

네트워크

해킹 &보안

2. 필수 라이브러리여러 가지 해킹 툴을 리눅스와 윈도우에 사용하기 위해서는 몇 가지 라이브러리의 설치가 필요하다 .

리눅스에서 필요한 라이브러리 중 Libnet /Libpcap / DB Library

/Libnids /OpenSSL 이렇게 5 개의 라이브러리는 거의 필수라도 생각해도 무방할 정도로 자주 쓰인다 . 그리고 배포판에 따라 일부는 이미 설치되어 있기도 하다 . 윈도우에서는 WinPCAP

라이브러리와 스니핑을 위한 라이브러리가 툴에 따라 별도로 설치되기도 한다 .

시스템으로 유입되는 모든 패킷들이 거치는 과정

네트워크 카드에 유입된 패킷은 수신 버퍼에 일시적으로 저장되었다가 , 이에 대한 시스템 인터럽트 (interrupt) 가 발생하여 I/O(input/ouput) 버스 라인을 통해 데이터가 시스템으로 전송된다 .

각종 라이브러리 드라이버는 이렇게 전송된 데이터를 수집하고 축약한다 . 각각의 응용 프로그램은 라이브러리 드라이버가 수집한 데이터를 분석하고 일정한 형태로 출력해준다 .

5네트워크 해킹과 보안

Page 6: part 4 네트워크 해킹

네트워크

해킹 &보안

2-1. Libnet (Library Network)

Libnet 은 응용 프로그램이 패킷을 생성하여 보낼 수 있게 해주는 라이브러리로 , 직접 패킷을 생성하는 것보다 훨씬 간단하게 패킷을 생성하여 보낼 수 있으며 , 보통 다음에 다룰 Libpcap 과 함께 쓰인다 . 이 두 라이브러리를 이용하면 ping 과 traceroute 같은 프로그램을 손쉽게 작성할 수 있다 .

패킷은 생성 시에 다음과 같은 과정을 거친다 .

1. 네트워크의 초기화

2. 메모리의 초기화

3. 패킷의 생성

4. 패킷의 체크섬 (Check Sum) 생성

5. 패킷의 투입

6네트워크 해킹과 보안

Page 7: part 4 네트워크 해킹

네트워크

해킹 &보안Libnet 이 지원하는 함수

1. 메모리의 패킷 관리 함수

2. 주소 확인 함수

3. 패킷 구조 생성 함수

4. 패킷 생성 함수

5. 기타 지원 함수

Libnet 이 지원하는 프로토콜

2 계층 : ARP 와 이더넷

3 계층 : ICMP, IGMP, IPv4

4 계층 : TCP, UDP

7 계층 : RIP, OSPF, DNS

7네트워크 해킹과 보안

Page 8: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – Libnet 설치하기

Root# ./configure

Root# make

Root# make test

Root# make install

8네트워크 해킹과 보안

Page 9: part 4 네트워크 해킹

네트워크

해킹 &보안

2-2. Libpcap(Library Packet Capture)

보통 Libnet 과 같이 쓰인다 . 라이브러리의 명칭에서 알 수 있듯이 ,

스니핑 프로그램에 필요한 라이브러리다 . Libpcap 라이브러리는 네트워크 카드에 유입된 정보를 응용 프로그램이 읽을 수 있는 형태로 전환해준다 .

운영체제 라이브러리 리눅스 Raw socket & LSF(Linux Socket

Filter)

솔라리스 4.x NIT(Network Interface Tap)

솔라리스 DLPI(Data Link Provider Interface)

BSD 계열 BPF(Berkely Packet Filter) 의 PCAP(Packet Capture : libpcap)

윈도우 Winpcap 라이브러리

9네트워크 해킹과 보안

Page 10: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – Libpcap 설치하기

Root# ./configure

Root# make

Root# make install

10네트워크 해킹과 보안

Page 11: part 4 네트워크 해킹

네트워크

해킹 &보안

2-3. DB(Berkeley Database)

버 클 리 DB 는 오 픈 소 스 DB 로 서 , 리 눅 스 에 웹 서 버 등 을 정상적으로 설치했다면 , 기본적으로 설치되는 라이브러리다 .

왜냐하면 아파치 웹 서버 , Sendmail 등이 기본적으로 버클리 DB 를 사용하고 있기 때문이다 .

버 클 리 DB 는 C, C++, 자 바 (Java), 펄 (Perl), Tcl, 파 이 썬(Python) 과 PHP 를 모 두 지 원 하 며 , 멀 티 스 레 드 (thread) 와 locking, transaction logging, 공유 버퍼 관리 , 메모리 관리 등을 수행한다 .

버클리 DB 는 무척 가볍게 설계된 라이브러리이지만 , 역시나 다른 라이브러리에 비해 무척이나 방대하다 .

Dsniff 와 같은 툴 설치 시 필요하다 .

11네트워크 해킹과 보안

Page 12: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – Berkeley DB 설치하기

Root# cd build_unix

Root# ../dist/confiugure --enable-compat185

Root# make

Root# make install

12네트워크 해킹과 보안

Page 13: part 4 네트워크 해킹

네트워크

해킹 &보안

2-4. Libnids(Library Network IDS)

BSD packet filter(BPF) 에 기반하고 있으며 , 스니퍼나 네트워크 분석 프로그램을 작성할 때 유용한 라이브러리다 .

현재 Libnids 는 다음의 세 가지 기능이 있으며 , 각각의 함수는 다음과 같다 .

1. IP 패킷의 재조합 (Defragmentation)

2. TCP 흐름 재조합

3. 기타

- UDP 콜백 함수

- TCP 세션 강제 종료 함수

13네트워크 해킹과 보안

Page 14: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – Libnids 설치하기

Root# ./configure

Root# make

Root# make install

14네트워크 해킹과 보안

Page 15: part 4 네트워크 해킹

네트워크

해킹 &보안

2-5. OpenSSL(Secure Socket Layer)

OpenSSL 은 telnet 이나 rlogin 이 암호화되지 않은 채 데이터를 전송하기 때문에 보안상 문제가 있어 운영체제는 SSH(Secure Shell) 프로토콜을 지원한다 . SSH 는 SSH 1 과 SSH 2 가 있으며 , SSH 1 은 다시 크게 1.3 과 1.5 로 나뉘어지며 , 두 버전 모두 OpenSSH 가 지원한다 . 두 프로토콜은 모두 RSA 에 의해서 키 교환을 하며 , 데이터는 3DES 와 Blowfish, IDEA 로 암호화한다 .

SSH 2 프로토콜은 DSA 와 DH 알고리즘을 쓰며 , SSH 1 의 CRC 문제를 HMAC 알고리즘으로 해결하고 있다 . 하지만 OpenSSL 을 설치하는 이유는 보안을 위해서만은 아니다 .

OpenSSL 로 통신하는 계정과 패스워드 등을 스니핑하기 위해서이기도 하다 .

15네트워크 해킹과 보안

Page 16: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – OpenSSL 설치하기

Root# ./config

Root# make

Root# make test

Root# make install

16네트워크 해킹과 보안

Page 17: part 4 네트워크 해킹

네트워크

해킹 &보안

3. ARP 스푸핑

ARP : IP 주소 값으로 MAC 주소 값을 알아내는 프로토콜

RARP : MAC 주소 값으로 IP 주소 값을 알아내는 프로토콜

ARP 스푸핑은 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주소에 대한 2 계층 MAC 주소를 공격자의 MAC 주소로 속 여 클 라 이 언 트 가 서 버 로 가 는 패 킷 이 나 서 버 에 서 클라이언트로 가는 패킷을 중간에서 가로채는 공격이다 .

공격자는 이 패킷을 읽고 확인한 후 정상적인 목적지로 향하도록 다시 돌려보내 연결이 끊어지지 않고 연결되도록 유지한다 .

17네트워크 해킹과 보안

Page 18: part 4 네트워크 해킹

네트워크

해킹 &보안

1. 명호는 먼저 10.0.0.2 에 해당된 가짜 MAC 주소를 CC 로 10.0.0.3 에 해당하는 가짜 MAC 주소를 CC 로 알렸다 .

2. 명호는 철수와 영희 컴퓨터로부터 패킷을 받는다 .

3. 각자에게 받은 패킷을 읽은 후 철수가 영희에게 보내고자 하던 패킷을 정상적으로 영희에게 보내주고 , 영희가 철수에게 보내고자 했던 패킷을 철수에게 보내준다 .

ARP 스푸핑 공격 예

18네트워크 해킹과 보안

Page 19: part 4 네트워크 해킹

네트워크

해킹 &보안

ARP 스푸핑 공격 전과 후의 패킷의 흐름

19네트워크 해킹과 보안

Page 20: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 – ARP 스푸핑

공격 전 툴 설치

1. ARP 스푸핑 툴 (fake 버전 1.1.2, rpm)

Root# rpm -Uvh fake-1.1.2-1.i386.rpm

2. 패킷  Relay 툴 (fragrouter 버전 1.6)

Root# ./configure

Root# make

공격 전 ARP 테이블

Root# arp -a

20네트워크 해킹과 보안

Page 21: part 4 네트워크 해킹

네트워크

해킹 &보안공격전 패킷 릴레이 기능 설정

Root# fragrouter –B1

ARP 스푸핑 공격 실시

Root# send_arp 172.16.0.3 00:06:5B:89:D0:CC 172.16.0.4 00:C0:26:5D:25:AA

21네트워크 해킹과 보안

Page 22: part 4 네트워크 해킹

네트워크

해킹 &보안공격 후 ARP 테이블

Root# arp -a

공격 중 Fragrouter

22네트워크 해킹과 보안

Page 23: part 4 네트워크 해킹

네트워크

해킹 &보안공격 중 TCPDump : 클라이언트가 ls 입력 시

23네트워크 해킹과 보안

Page 24: part 4 네트워크 해킹

네트워크

해킹 &보안

ARP 스푸핑의 보안 대책 : MAC 주소의 static 한 설정

① arp -a 를 입력하고 엔터 키를 입력하기 바란다 . 현재 MAC 테이블을 볼 수 있다 .

② static 으로 설정하고자 하는 IP 주소와 MAC 주소를 확인한 뒤 arp -s

<IP 주소 > <MAC 주소 > 로 명령을 내린다 .

명령 예 ) arp -s 192.168.1.142 00:06:5B:89:D0:CC

③ 다 시 arp -a 로 MAC 테 이 블 을 확 인 해 보 면 뒷 부 분 에 PERM(Permanent) 옵션이 붙어있는 것을 확인할 수 있다 . 이렇게 설정된

IP 와 MAC 주소 값은 ARP 스푸핑 공격이 들어와도 값이 변하지 않는다 .

24네트워크 해킹과 보안

Page 25: part 4 네트워크 해킹

네트워크

해킹 &보안

4. IP 스푸핑

IP 스푸핑은 시스템간의 트러스트 관계를 이용한 것이다 .

트러스트 관계가 설정된 상태에서 클라이언트 시스템은 서버에 접속할 때 자신의 IP 주소로 인증을 하고 별도의 패스워드 없이 로그인이 가능하도록 만든 것이다 .

원격지 접속 서비스 중 r 로 시작하는 rsh, rcp 등의 명령이 주로 IP 주소를 기반으로 인증하는 서비스다 .

리눅스 / 유닉스에서 트러스트관계를 형성하는데 사용되는 파일

         ■ /etc/hosts.equiv

         ■ $HOME/.rhost

25네트워크 해킹과 보안

Page 26: part 4 네트워크 해킹

네트워크

해킹 &보안트러스트 관계를 형성하기 위한 레코드 형식

.rhost 레코드 형식 내 용 host_name host_name 에서의 접근을 허락한다 .

host_name user_name

host_name 의 user_name 에 대한 접근을 허락한다 .

+ 모든 시스템에서의 접근을 허락한다 .

+ user_name 모든 시스템의 user_name 에 대한 접근을 허락한다 .

-host_name host_name 에서의 접근을 막는다 .

host_name -user_name

host_name 의 user_name 에 대한 접근을 막는다 .

+ @netgroup 모든 시스템의 netgroup 에 대한 접근을 허락한다 .

26네트워크 해킹과 보안

Page 27: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 : IP 스푸핑 공격하기

27네트워크 해킹과 보안

Page 28: part 4 네트워크 해킹

네트워크

해킹 &보안

5. DNS 스푸핑

DNS(Domain Name System) 스푸핑은 웹 스푸핑과 비슷한 의미로 이해되기도 한다 .

인터넷을 이용하는 도중 주소 창에 가고자하는 사이트 이름을 적어놓고는 엔터 키를 눌렀더니 엉뚱한 사이트로 연결되는 경우를 경험해본 적이 있을 것이다 . 예를 들면 ‘www.cwd.go.kr( 우리나라 대통령이 사시는 곳이다 )’란 주소를 주소 창에 넣었더니만 무슨 쇼핑몰이나 포르노 사이트가 뜨는 경우다 . 이런 경우가 DNS 서버의 오류로 인해 생길 수도 있지만 , DNS 스푸핑과 같은 공격으로도 이루어진다 .

28네트워크 해킹과 보안

Page 29: part 4 네트워크 해킹

네트워크

해킹 &보안

정상적인 DNS 서비스

1. 클라이언트는 접속하고자 하 는 www.wishfree.com 과 같은 도메인 이름에 해당하는 IP 주소를 이미 설정된 DNS

서 버 에 게 물어 본 다 . 이 때 보 내 는 패 킷 이 DNS query

패킷이다 .

2. DNS 서 버 는 해당하 는 도 메 인 이 름 에 대 한 IP

주 소 를 클 라 이 언 트 에 게 보내준다 .

3. 클 라 이 언 트 는 받은 IP

주소를 바탕으로 웹 서버를 찾아간다 . 29네트워크 해킹과 보안

Page 30: part 4 네트워크 해킹

네트워크

해킹 &보안

DNS 스푸핑

1. 클라이언트가 DNS 서버로 DNS query 패킷을 보내는 것을 확인한다 . 스위칭 환경일 경우에는 클라이언트가 DNS query

패킷을 보내면 이를 받아야 하므로 arp 스푸핑과 같은 선행 작업이 필요하다 .

만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 자연스럽게 클라이언트가 DNS query

패킷을 보낼 경우 이를 확인할 수 있다 .

30네트워크 해킹과 보안

Page 31: part 4 네트워크 해킹

네트워크

해킹 &보안

DNS 스푸핑

2. 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가까운 위치에 있다 . 따라서 DNS 서버가 올바른 DNS response

패킷을 보내주기 전에 클라이언트에게 위조된 DNS

response 패킷을 보낼 수 있다 .

31네트워크 해킹과 보안

Page 32: part 4 네트워크 해킹

네트워크

해킹 &보안

DNS 스푸핑

3. 클라이언트는 공격자가 보낸 DNS response 패킷을 올바른 패킷으로 인식하고 ,

웹에 접속한다 . 지리적으로 멀리 떨어져 있는 DNS

서버가 보낸 DNS response

패킷은 버린다 .

32네트워크 해킹과 보안

Page 33: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 : DNS 스푸핑 공격하기

윈도우용 arp 스푸핑 툴인 winarp_sk 를 이용하여 클라이언트(192.168.1.144) 로 하여금 게이트웨이인 192.168.1.1 로 향하는 패킷이 공격자로 오게 설정한다 .

C:\> winarp_sk -m 2 -d 192.168.1.144 -s 192.168.1.1

33네트워크 해킹과 보안

Page 34: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 : DNS 스푸핑 공격하기

win_dnsspoof 툴로 www.google.co.kr 에 대한 DNS query 패킷에 대해 위조된 웹 서버인 192.168.1.143 으로 이름이 해석되도록 설정한다 .

C:\> win_dnsspoof -n www.google.co.kr -i 192.168.1.143 -g

00:04:76:6E:FB:E4

34네트워크 해킹과 보안

Page 35: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 : DNS 스푸핑 공격하기

공격당한 클라이언트에서 www.google.co.kr 에 ping 을 날리자 192.168.1.143 에 대해 ping 을 날리는 것을 확인할 수 있다 .

C:\> ping www.google.co.kr

35네트워크 해킹과 보안

Page 36: part 4 네트워크 해킹

네트워크

해킹 &보안

실습 : DNS 스푸핑 공격하기

공격 후 클라이언트에서 www.google.co.kr 에 접속하자 . 처음 위조를 위해 만들었던 웹 서버에 접속됨을 확인할 수 있다 .

36네트워크 해킹과 보안

Page 37: part 4 네트워크 해킹

네트워크 해킹과 보안