Hongfluenza

스푸핑(Spoofing) : ARP Spoofing, DNS Spoofing, IP Spoofing, E-mail Spoofing 본문

STUDY/NETWORK

스푸핑(Spoofing) : ARP Spoofing, DNS Spoofing, IP Spoofing, E-mail Spoofing

Hongfluenza 2019. 7. 21. 22:38

1> 스푸핑(Spoofing)?

- 사전적 의미 : '도용하다, 패러디하다'

- IP 주소, 호스트 이름, MAC 주소를 속이는 공격

- 스니핑(Sniffing)을 사용하기 위한 준비 단계로 많이 사용됨.

- 외부 악의적 네트워크 침입자가 임의로 웹사이트를 구성해 일반 사용자들의 방문을 유도, 인터넷 프로토콜인 TCP/IP의 구조적 결함(TCP 시퀀스 넘버, 소스 라우팅, 소스 주소를 이용한 인증 매커니즘 이용)을 이용해 웹 사이트에 접속한 사용자의 시스템 권한을 획득한 뒤 정보를 빼가는 해킹 수법

 

2.1> 스푸핑의 종류 - ARP(Address Resolution Protocol) Spoofing

2.1.1> ARP 동작 과정

 

 

1. 송신자가 수신자에게 데이터를 보낼 때 먼저 ARP Table을 확인한다.
ARP Table에 수신자에 대한 정보가 없다면 송신자는 ARP Request 메시지를 생성하여 네트워크상에 브로드캐스트 한다.

2. 네트워크 상의 모든 호스트들은 ARP Request 패킷을 수신하고 해당 ip를 가진 호스트만 자신의 물리주소를 포함하는 ARP Reply 메시지를 생성하여 송신자에게 유니캐스트로 전송한다.

3. 송신자는 ARP Reply 패킷을 받고 목적지 ip와 물리주소인 MAC주소를 ARP Table에 기록한다.
ARP Table에 정보가 저장되면 다음부터는 이 과정 없이 ARP Table을 참조하여 바로 데이터를 전달하여 효율적으로 통신이 가능하다.

 

 

2.1.2> ARP Cache

- 송신 시스템이 수신 시스템에게 데이터를 보내기 전에 먼저 Cache 내용을 참조하게 함으로써 효율적인 통신을 위해 사용 
- ARP Cache 내 저장된 정보는 일정 시간이 지날 때까지 사용되지 않으면 지워짐 
- ARP Cache 정보 저장 시간은 일반적으로 2분동안 저장 
- 2분 이내 다시 통신이 일어나면 Cache 저장 시간을 늘림

 

 

2.1.3> ARP Spoofing

- 공격자가 공격 대상의 ARP Cache를 조작하고 유지하기 위해서 ARP 응답 패킷을 계속해서 보내는 공격

- 주로 공격 대상의 컴퓨터나 서버 사이의 트래픽을 공격자의 컴퓨터로 우회시켜 공격자가 원하는 정보를 탈취해내는 기법

- ARP 스푸핑은 각 시스템에 기록된 MAC 주소가 동적으로 유지되는 점을 이용한 공격이므로, 이를 막기 위해서는 MAC 주소를 정적으로 사용하면 공격이 불가능 해진다.

- 피해자에게 잘못된 MAC주소가 담긴 ARP Reply를 보내 희생자의 ARP Cache를 조작해 희생자로부터 정보를 빼내는 해킹 기법이다.

- ARP에 Reply 패킷으로 받은 MAC주소가 진짜인지 아닌지를 검증하는 인증 시스템이 없다는 취약점을 이용한 공격이다.

 

 

동작 과정

1. 공격자가 피해자에게 GW의 ip주소와 공격자의 MAC주소가 담긴 패킷을 지속적으로 전송함

2. 피해자는 ARP Table에 해당 내용을 그대로 저장함

 # Target's ARP Table

Gateway's IP Attacker's MAC Address

3. 피해자는 공격자를 gateway로 생각하고 공격자의 MAC주소로 데이터를 전송함
( 공격자가 받은 패킷을 포워딩 해주지 않으면 Target은 정상적인 통신을 할 수 없어 공격을 의심할 수 있기 때문에 받은 데이터를 포워딩해준다.)

 

 

ARP Spoofing으로 가능한 공격

 

- 악성코드 유포
- 세션 하이재킹
- DNS Spoofing
- VoIP 도청
- 로그인 정보(아이디/패스워드) 수집

 

 

대응 방법

- 패킷 감지 프로그램을 사용하여 ARP 신호를 보내는 패킷 확인
- ARP 테이블을 정적으로 관리
- ARP 스푸핑 감지 소프트웨어 사용
- 네트워크 장비에서 서로 다른 IP에 동일한 MAC 주소가 매핑되어 있는지 확인

 

 

2.2> 스푸핑의 종류 - DNS Spoofing

2.2.1> 정상적인 DNS 과정

1. DNS Query - 클라이언트가 DNS서버에 접속하고자 하는 IP를 물어본다 .

2. DNS Response - DNS서버가 해당 도메인 네임에 대한 IP 주소를 클라이언트에게 보내준다

3. Web Login - 클라이언트는 DNS 서버에서 받은 IP주소를 바탕으로 웹 서버를 찾아간다.

 

2.2.2> DNS 스푸핑 공격 과정

 

※DNS 프로토콜

- 초기에 보안을 고려하지 않고 설계된 프로토콜

- 같은 질의에 대한 응답이라도 먼저 온 응답만을 수용하고 실제 응답이라도 다음에 온 응답은 거부함

 

1. 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인한다.
( 이 때 ARP 스푸핑과 같은 선행 작업이 필요하다.)

2,3. 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가깝다. 따라서 DNS 서버가 올바른 DNS Response 패킷을 보내주기 전에 위조된 DNS Response 패킷을 클라이언트에게 보낼 수 있다.

 

4. 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹에 접속한다. 지리적으로 멀리 떨어진 DNS 서버가 보낸 DNS Response 패킷은 버린다.

 

- 사용자와 DNS 서버 간의 통신에 개입해서 공격자가 DNS 인 것처럼 Spoofing 하는 것을 말하며, DNS Spoofing을 하면 비정상적인 DNS 응답을 통해 fishing이 가능해진다.

 

 

2.3> 스푸핑의 종류 - IP Spoofing

2.3.1> ip 프로토콜의 취약점

 

ip 프로토콜의 취약점을 이용해 ip spoofing을 진행한다.

 

인증 : ip의 Source Address로 상대를 식별 및 인증한다.
→ 암호화 과정이 없고, IP 헤더를 변경할 수 있다.


세션보호 : IP의 Sequence Number로 세션을 인증
→ Sequence Number는 추측이 가능하게 설계되어있어 이를 이용하여 세션을 가로챌 수 있다.

 

- 따라서, 예상 가능한 sequence number 공격에 취약한 시스템이나, 네트워크 트래픽이 캡쳐된 곳에 위치한 시스템이 취약 시스템에 해당한다.

 

 

2.3.2> ip 스푸핑 공격 조건

 

- ip 스푸핑 공격이 일어나려면, target 시스템과 Client는 신뢰관계(Trust Relationship)가 형성되어 있어야 한다. 
여기서 신뢰 관계란, Client가 Target 시스템에 접속할 때 사용자 ID와 Password를 입력하지 않아도 되는 관계를 의미한다.

- 또한, IP protocol의 취약점을 습득하기 위해서 기본적으로 Sniffing 공격이 선행되어야 한다.

 

 

2.3.3> ip 스푸핑 공격 설명

 

- TCP/IP 프로토콜의 구조적 결함(TCP 시퀀스 넘버, 소스 라우팅, 소스 주소를 이용한 인증 메커니즘)을 이용한 방법으로서 인증 기능을 가지고 있는 시스템에 침입하기 위해 침입자가 사용하는 시스템을 신뢰성있는 호스트로 위장하는 방법

- ip 자체의 보안 취약성을 이용하여 공격자가 자신의 ip주소를 사용자와 신뢰관계가 있는 ip로 속여 접속하는 공격 방식

 

2.3.4> 원격지에서 ip 스푸핑 공격

 

- 방화벽이나 라우터의 ACL에 의해 필터링되어 내부 네트워크와 통신이 되지 않을 때, IP를 변조하여 우회할 수 있다.

- 요즘의 OS환경에서는 TCP Sequence를 랜덤하게 생성하여 사용하기 때문에 원격 IP Spoofing이 거의 불가능하다.

- Target 시스템과 Client가 서로 신뢰관계에 있으며, 신뢰관계의 Target System과 Client 사이의 통신 패턴을 잘 관찰하여 Sequence number를 추측했다고 가정한다.

 

1. 공격자는 클라이언트에 TCP SYN Flooding (TCP 513번(rlogin) or TCP 514번(rsh)) 공격을 한다.
2. 공격자는 클라이언트의 IP로 속여 서버(타겟 시스템)에 연결을 요청한다.
3. 서버는 클라이언트에서 온 패킷으로 알고 클라이언트에 SYN/ACK 패킷을 보낸다. 하지만, 클라이언트는 TCP SYN Flooding 공격때문에 연결이 되지 않기 때문에 연결이 이루어지지 않고, 서버가 보낸 SYN/ACK 패킷은 사라지게 되어 SYN/ACK 패킷을 받았는지 확인할 수 없게 된다.
4. 공격자는 클라이언트에게 ACK 패킷을 보낸 것처럼 속이면서, IP Spoofing 명령어가 들어있는 패킷을 보내 신뢰 관계에 있는 클라이언트라고 속이면 연결이 이루어지게 된다.

 

단순히 Client의 IP address로 바꾸기만 하면 공격자와 서버가 연결되지 않는다.

 

1. 공격자는 클라이언트의 IP address로 위장하고 서버에 연결을 요청하는 SYN을 보낸다.
2. 서버는 IP address를 보고 클라이언트가 보낸 SYN 패킷으로 판단하여 클라이언트에 SYN/ACK 패킷을 보낸다.
3. 클라이언트는 자신이 SYN 패킷을 보내지 않았기 때문에 RST 패킷을 보내게 되며, 서버는 RST 패킷을 받아 연결이 이루어지지 않는다.

 

 

2.3.5> 내부 네트워크에서의 ip 스푸핑 공격

1. 서버에서 공격자를 Client로 인식하도록 공격자가 서버에게 ARP Cache Poisoning 공격을 한다.
2. 서버에게 SYN 패킷을 전송한다.
3. 서버는 1.1.1.2라는 주소에게 응답을 하지만 ARP 공격으로 인해 MAC주소를 잘못 저장하고 있다. 따라서 Client가 아닌 공격자에게 SYN/ACK 패킷을 전달한다.

 

 

2.3.6> ip 스푸핑 공격 영향

 

DDoS공격 등의 공격 방식이 가능하며, 공격대상의 컴퓨터와 서버 사이의 연결된 세션도 끊을 수 있게 된다.

- ip spoofing에 의한 침입 여부가 탐지되면, 대상 시스템 내에 설치된 트로이 목마 프로그램 혹은 백도어(backdoor)가 설치 될 수 있다.

- 침입자가 이미 사용하고 있는 커넥션을 가로채려고 하는 경우, 터미널에 사용자가 입력하지 않는 명령이 출력되거나 윈도우 상에 입력한 명령에 대한 응답이 출력되지 않는다.

 

2.4.7> 해결책

 

- 대부분의 DoS 공격이 공격자 주소를 비공인IP로 Spoofing하여 사용하므로 라우터의 Serial 포트에서 비공인 IP를 차단한다.

- 내부 시스템이 DoS공격에 이용되는 것을 방지하기 위하여 내부에서 사용하지 않는 IP주소를 source 주소로 외부로 나가는 패킷을 차단한다.

- smurf와 같은 공격에 이용되는 것을 막기 위하여 directed broadcast를 차단한다.

 

 

2.4> 스푸핑의 종류 - E-mail Spoofing

2.4.1> 전자우편(E-mail) 스푸핑

 

- 이메일 발송 시 보내는 주소를 위조해서 보내는 것
- 주로 바이러스 감염 메일이나 스팸 메일을 보낼 때 악용되는 기술
- 이메일 발신자는 From 필드에 별칭 필드를 사용할 수 있는데, 이 때 별칭 주소로 이메일이 발송되고 메일을 받아보는 사람은 실제 이메일 발신자는 알 수 없고, 별칭 필드만을 확인하게 되는 것이다.

 

 

 

...더보기


출처

https://brunch.co.kr/@bl4cksh33p/2

 

스푸핑에 대해서 알아보자

DNS Spoofing을 실습해보고 분석해보자. | 1. 네트워크 해킹 보안 1.1 해킹 절차 1) Foot Printing : 공격을 시도할 지역에 관한 정보를 수집하는 작업 EX) Domain Name, IP, 사용자 목록 => Whois로 확인, nslookup, 사회공학적 2) Scanning : 공격을 시도할 표적들에 대한 진행 중인 서비스 점검

brunch.co.kr

https://aroundck.tistory.com/847

 

[Network] 스푸핑 ( Spoofing )의 정의와 종류.

"네이버 지식사전" 을 인용하자면.. Spoofing 이란? Spoof란 단어는 '속이다, 사기치다'는 뜻으로 인터넷 내에서 여러가지 의미를 지닌다. '스푸핑'이란 외부 악의적 네트워크 침입자가 임의로 웹사이트를 구성해..

aroundck.tistory.com

https://yellowh.tistory.com/20

 

ARP란?

ARP란? 1) IP 주소에 대응되는 이더넷카드의 하드웨어 주소(MAC주소)를 알아내는 프로토콜 2) 논리적 주소를 물리적 주소로 변환 3) 주소변환방법 - Static Mapping : 관리자수동설정 - Dynamic Mapping : ARP,RAR..

yellowh.tistory.com

http://blog.plura.io/?p=7247

 

누군가 당신의 인터넷 사용을 훔쳐보고 있다? ARP Spoofing

ARP 스푸핑은 간단하지만 피해는 치명적인 공격입니다. 그럼 도대체 ARP 스푸핑이 뭘까요? 2016년 3월 26일 반디소프트 홈페이지가 ARP 스푸핑 공격을 받아, 이 기간 동안 반디소프트 홈페이지를 통해서 꿀뷰를 다운로드 받은 사용자들에게 꿀뷰 설치 파일 대신 악성코드가 다운로드 되는 문제가 발생하였습니다. 2016년 4월 특정 호스팅사가 ARP 스푸핑 공격을 당해 쇼핑몰, P2P, 날씨배너, 커뮤니티 등 호스팅 서비스를 받는 다수의 웹사이트에서

blog.plura.io

https://opentogether.tistory.com/27

 

[ Kali리눅스 ] DNS스푸핑 개념 및 실습 #1 | dnsspoof툴 | arpspoof

DNS 스푸핑(Spoofing) 공격 개념 ✎DNS 스푸핑은 웹 스푸핑과 비슷한 의미로 이해되기도 한다. ✎IP 주소를 변조 또는 사용자가 의도하지 않은 주소로 접속하게 만드는 공격방법이다. 먼저, DNS 스푸핑의 개념을..

opentogether.tistory.com

https://bignet.tistory.com/88

 

Spoofing Attack (ARP,ICMP,IP 스푸핑 공격)

ARP Cache Poisioning 목적 : 공격 타겟의 ARP table의 내용을 변경시켜 패킷을 공격자의 PC로 전달하도록 한다. 공격원리 ARP는 Broadcast를 사용하는 프로토콜로써, 인증절차가 존재하지 않는다. Dynamic방식으..

bignet.tistory.com

 

'STUDY > NETWORK' 카테고리의 다른 글

FTP(File Transfer Protocol)  (0) 2019.08.03
DoS, DDoS : Denial of Service, 서비스 거부 공격  (0) 2019.07.26
ARP Redirect 실습  (0) 2019.07.18
스니핑(Sniffing)  (0) 2019.07.17
포트 스캐닝(Port Scanning)  (0) 2019.07.15