*스푸핑
스푸핑
공격이란
스푸핑(Spoofing)이란
‘속이다’라는
의미
IP 주소, 호스트
이름, MAC 주소 등 여러 가지를 속일 수 있으며,
스푸핑은 이런 속임을 이용한 공격을 총칭한다.
인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑이 가능하며, 정보를 얻어내는 것 외에도 네트워크를 오작동 시키는 용도로 이용한다.
IP 충돌 문제도 고의가 아닌 IP 스푸핑이라고 생각할 수 있다.
*ARP 스푸핑
ARP 스푸핑은 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주소에 대한 2계층 MAC 주소를 공격자의 MAC 주소로 속여 클라이언트가 서버로 가는 패킷이나 서버에서 클라이언트로
가는 패킷을 중간에서 가로채는 공격이다.
공격자는 이 패킷을 읽고 확인한 후 정상적인 목적지로 향하도록 다시 돌려보내
연결이 끊어지지 않고 연결되도록 유지한다.
스니핑을 위해 수행하는 경우가 대부분이다.
*ARP 스푸핑 공격
IP와 MAC주소
확인
ping –b : broadcast 주소를 이용
fping : 특별한
범위의 IP확인
• ICMP에
응답하지 않는 경우라도 MAC 주소 확인이 가능하다.(모두??)
nmap : 특정시스템을
스캔 (ping이나 fping에 응답하지 않는경우)
스캔을 통해 확인된 MAC 주소는 arp –a 명령으로
확인 가능하다.
fake
설치
CentOS
5,6 설치 가능(32bit만
제공됨)
-
rpmforge에서 제공되지만 향후 제공여부 불투명함.
send_arp를 이용
t1과 t2에게
잘못된 arp 정보를 보내보자
#
send_arp [T1 IP] [공격자 MAC] [T2 IP] [T2 MAC]
• T2에게 T1의 MAC 주소가
공격시스템의 MAC이라고 알린다.
ARP는 일정 시간마다 갱신됨으로 명령은 자동으로 계속 수행되야 한다.
vi sarp
#!/bin/bash
while [ :
]
do
send_arp 142
각 시스템의 arp 테이블을 검색한다.
둘에게
전달된 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 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는
즉시 원래 서버로 전달 됨으로 사용자는 위조 서버 접속을 알 수 없다.
실습에서는 간단한 페이지로 대신한다.
step 3. /etc/dsniff/dnsspoof.hosts 파일을 공격에 맞게 수정한다.
step 4. arpspoof를 이용 클라이언트의 게이트웨이 H/W 주소를 공격 시스템의 H/W 주소로 변경한다.
# arpspoof -t 192.168.11.7 192.168.11.1
step
5. dnsspoof를 이용 dnsspoofing을
시작한다.
# dnsspoof -i eth0 -f /etc/dsniff/dnsspoof.hosts
step 6. WinXP 클라이언트에서 웹접속을 시도한다.
DNS
정보는 캐시됨으로 만일 캐시된 DNS 정보를
지우고 싶다면 ipconfig 명령을 이용한다.
C:\> ipconfig /flushdns
*DNS 스푸핑에 대한 보안 대책
원격지의DNS서버를 이용하지 말고 반드시 로컬 DNS 서버를 이용하며 DNS 서버의
루트네임 서버 mac 주소를 고정 방식으로 할당한다.
운영중인 DNS서버의
버전을 최신으로 유지한다.
2차
DNS서버보다는 정적으로 등록된 캐시 DNS 서버를
운영한다.
가능한 클라이언트의 IP를 동적으로 할당한다.
댓글 없음:
댓글 쓰기