제11장 해킹기술(3)
Download
Report
Transcript 제11장 해킹기술(3)
정보 보호 응용
11. 해킹기술 (3)
- hacking & security -
충북대 네트워크 보안 연구실
[ jinmun @ gmail.com ]
1. 스푸핑 공격
스푸핑(Spoofing)이란 ‘속이다’라는 의미다.
스푸핑은 IP 주소, 호스트 이름, MAC 주소 등 속여서 공격하는 행
위를 총칭한다.
인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑이 가능
정보회득 및 시스템파괴 가능.
IP 충돌 문제
2007-01 정보보호응용
2
1. 스푸핑 공격
네트워크 시스템의 MAC 테이블 확보하기
IP로 인한 충돌 및 스푸핑 공격에 대비하여 관리하는 네트워크의
MAC 주소 테이블을 만들어두면 유용하게 쓸 수 있다.
Root# ping –b 192.168.1.255
Root# arp -a
2007-01 정보보호응용
3
1. 스푸핑 공격
필수 라이브러리
해킹 툴을 사용하기 위한 몇 가지 라이브러리의 설치.
리눅스에서 필요한 라이브러리
Libnet/Libpcap/DB Library/Libnids/OpenS니
배포판에 따라 일부는 이미 설치되어 있기도 하다.
윈도우에서 필요한 라이브러리
WinPCAP 라이브러리와 스니핑을 위한 라이브러리
각종 라이브러리 드라이버는 전송된 데이터를 수집하고 축약한다.
2007-01 정보보호응용
4
1. 스푸핑 공격
1) Libnet (Library Network)
패킷은 생성 시에 다음과 같은 과정을 거친다.
1. 네트워크의 초기화
2. 메모리의 초기화
3. 패킷의 생성
4. 패킷의 체크섬(Check Sum) 생성
5. 패킷의 투입
Libnet이 지원하는 프로토콜
2계층 :
3계층 :
4계층 :
7계층 :
ARP와 이더넷
ICMP, IGMP, IPv4
TCP, UDP
RIP, OSPF, DNS
2007-01 정보보호응용
5
1. 스푸핑 공격
2) Libpcap(Library Packet Capture)
Libpcap 라이브러리는 네트워크 카드에 유입된 정보를 응용 프로그램
이 읽을 수 있는 형태로 전환해준다.
운영체제
리눅스
솔라리스 4.x
라이브러리
Raw socket & LSF(Linux Socket Filter)
NIT(Network Interface Tap)
솔라리스
DLPI(Data Link Provider Interface)
BSD 계열
BPF(Berkely Packet Filter)의 PCAP(Packet
Capture : libpcap)
윈도우
Winpcap 라이브러리
2007-01 정보보호응용
6
1. 스푸핑 공격
3) DB(Berkeley Database)
버클리 DB는 오픈 소스 DB로서, 웹 서버, Sendmail 등이 버클리
DB를 사용하고 있다.
버클리 DB는 C, C++, 자바(Java), 펄(Perl), Tcl, 파이썬(Python)
과 PHP를 모두 지원하며, 멀티스레드(thread)와 locking,
transaction logging, 공유 버퍼 관리, 메모리 관리 등을 수행한다.
버클리 DB는 다른 라이브러리에 비해 무척이나 방대하다.
Dsniff 와 같은 툴 설치 시 필요하다.
2007-01 정보보호응용
7
1. 스푸핑 공격
4) Libnids(Library Network IDS)
BSD packet filter(BPF)에 기반하고 있으며, 스니퍼나 네트워크 분
석 프로그램을 작성할 때 유용한 라이브러리다.
Libnids 기능.
1. IP 패킷의 재조합(Defragmentation)
2. TCP 흐름 재조합
3. 기타
- UDP 콜백 함수
- TCP 세션 강제 종료 함수
2007-01 정보보호응용
8
1. 스푸핑 공격
5) OpenSSL(Secure Socket Layer)
OpenSSL은 보안상 문제가 있어 운영체제는 SSH(Secure Shell)
프로토콜을 지원한다.
SSH는 OpenSSL를 지원한다. 두 프로토콜은 모두 RSA에 의해서
키 교환을 하며, 데이터는 3DES와 Blowfish, IDEA로 암호화한다.
OpenSSL은 또한 계정과 패스워드 등을 스니핑하기 위해 이용
2007-01 정보보호응용
9
1.1 ARP 스푸핑
ARP : IP 주소 값으로 MAC 주소 값을 알아내는 프로토콜
RARP : MAC 주소 값으로 IP 주소 값을 알아내는 프로토콜
ARP 스푸핑은 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주
소에 대한 2계층 MAC 주소를 공격자의 MAC 주소로 속여 패킷을
중간에서 가로채는 공격이다.
공격자는 이 패킷을 다시 돌려보내 연결이 끊어지지 않고 연결되
도록 한다.
2007-01 정보보호응용
10
1.1 ARP 스푸핑
ARP 스푸핑 공격 전과 후의 패킷의 흐름
2007-01 정보보호응용
11
1.1 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
2007-01 정보보호응용
12
1.1 ARP 스푸핑
공격전 패킷 릴레이 기능 설정
Root# fragrouter –B1
ARP 스푸핑 공격 실시
Root#
send_arp
00:C0:26:5D:25:AA
172.16.0.3
00:06:5B:89:D0:CC
2007-01 정보보호응용
172.16.0.4
13
1.1 ARP 스푸핑
공격 후 ARP 테이블
Root# arp -a
공격 중 Fragrouter
2007-01 정보보호응용
14
1.1 ARP 스푸핑
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
③ MAC 테이블을 확인해보면 뒷부분에 PERM(Permanent) 옵션이
붙어 있다. 이 설정은 IP와 MAC 주소 값은 ARP 스푸핑 공격이 들
어와도 값이 변하지 않는다
2007-01 정보보호응용
15
1.2 IP 스푸핑
IP 스푸핑은 시스템간의 트러스트 관계를 이용한 것이다.
트러스트 관계는 IP 주소로 인증을 하고 별도의 패스워드 없이 로그인
이 가능하도록 만든 것이다.
원격지 접속 서비스 중 r로 시작하는 rsh, rcp 등의 명령이 주로 IP 주소
를 기반으로 인증하는 서비스다.
리눅스 / 유닉스에서 트러스트관계를 형성하는데 사용되는 파일
/etc/hosts.equiv
$HOME/.rhost
2007-01 정보보호응용
16
1.2 IP 스푸핑
트러스트 관계를 형성하기 위한 레코드 형식
.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에 대한 접근을 허락
2007-01 정보보호응용
17
1.2 IP 스푸핑
2007-01 정보보호응용
18
1.3 DNS 스푸핑
DNS 스푸핑은 웹 스푸핑과 비슷한 의미로 이해되기도 한다.
인터넷을 이용하는 도중 주소 창에 사이트 이름을 입력하면 다른곳으로
연계되는 경우를 말한다.
이런 경우가 DNS 서버의 오류로 또는 DNS 스푸핑과 같은 공격으로도
이루어진다.
2007-01 정보보호응용
19
1.3 DNS 스푸핑
2007-01 정보보호응용
20
1.3 DNS 스푸핑
DNS 스푸핑 예
1. 윈도우용 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
2. win_dnsspoof 툴로 www.google.co.kr에 대한 DNS query 패킷에 대
해 위조된 웹 서버인 192.168.1.143으로 이름이 해석되도록 설정한다.
C:\>win_dnsspoof
00:04:76:6E:FB:E4
-n
www.google.co.kr
-i
192.168.1.143
-g
3. 공격당한 클라이언트에서 www.google.co.kr에 ping을 날리자
192.168.1.143에 대해 ping을 날리는 것을 확인할 수 있다.
C:\> ping www.google.co.kr
4. 공격 후 클라이언트에서 www.google.co.kr에 접속하자. 처음 위조를
위해 만들었던 웹 서버에 접속됨을 확인할 수 있다.
2007-01 정보보호응용
21