사자자리

ARP Spoofing 본문

보안

ARP Spoofing

renne 2022. 7. 31. 19:36

IP 주소와 MAC 주소

IP 주소 MAC주소
Internet Protocol Address Media Access Control Address
 - 사람의 이름과 비슷하다.
 - 바뀔 수 있고, 다른 PC와 중복될 수 있다.
 - 사람의 주민등록번호와 비슷하다.
 - 하드웨어 고유의 주소이며, 다른 하드웨어와 중복될 수 없다.
192.168.0.1 AA-BB-CC-DD-EE-FF

 

 - 통신하기 위해서는 IP 주소와 MAC 주소 둘 다 필요하다.

 - 통신할 때, 주로 IP 주소만 알고 있고 MAC 주소는 모르는 경우가 많다.

 

ARP

 - Address Resolution Protocol: 주소 결정 프로토콜

 - IP 주소를 MAC 주소로 변환하는 기능

 

 

1. IP 호스트 AIP 호스트 B에게 IP 패킷을 전송하려고 하지만, A가 B의 MAC 주소를 모른다면

2. A는 ARP 프로토콜을 사용하여 목적지 IP 주소 B브로드캐스팅 MAC 주소 FF-FF-FF-FF-FF-FF를 가지는 ARP 패킷을 네트워크 상에 전송한다.

3. B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면, 자신의 MAC 주소를 A에게 응답한다.

4. 수집된 IP 주소와 MAC 주소는 각 IP 호스트의 ARP 캐시라고 불리는 메모리에 테이블 형태로 저장되고, 다시 패킷을 전송할 때 사용된다.

 

ARP Spoofing

 - LAN(근거리 통신망) 하에서 ARP 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법

 - 데이터 링크 상의 프로토콜인 ARP 프로토콜을 이용하기 때문에, 근거리 통신에서만 사용할 수 있는 공격이다.

 - 특별한 이상 증상이 쉽게 나타나지 않기 때문에, 사용자는 특별한 도구를 사용하지 않는 이상 공격을 알아차리기 힘들다.

 

 

1. LAN에서 각 호스트의 IP 주소와 MAC 주소 간의 대응은 ARP 프로토콜을 통해 이루어진다.

2. 공격자가 의도적으로 A에게 B의 IP 주소자신의 MAC 주소로 대응하는 ARP 메시지를 발송한다.

3. 메시지를 받은 A는 공격자의 MAC 주소를 B의 MAC 주소로 인식하고, 패킷을 B가 아닌 공격자에게 전송하게 된다.

4. 공격자는 받은 패킷을 원하는 대로 변조하고, 원래 목적지인 B의 MAC 주소로 발송하는 공격을 할 수도 있다.

 

ARP Spoofing 대응 방법

ARP 테이블을 정적(Static)으로 설정하기

 - 정적으로 설정할 경우, ARP 캐시 테이블의 정보를 변조하지 못한다.

 - 다만, 이중 게이트웨이가 네트워크에 존재하면 사용할 수 없다. 또한, 네트워크 변경 시 수동으로 바꾸어야 한다.

 

 - cmd에서 arp -a를 입력하여 IP 주소, MAC 주소, 유형(정적, 동적)을 볼 수 있다.

 - cmd에서 arp -s [IP 주소] [MAC 주소]를 입력하여 게이트웨이의 주소를 정적으로 고정한다.

C:\Users\renne>arp -s

ARP(주소 확인 프로토콜)에서 사용하는 IP 주소에서 물리적 주소로의 변환 표를 표시하고 수정합니다.

ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]

  -a            현재 프로토콜 데이터를 질문하여 현재 ARP 항목을 표시합니다.
                inet_addr을 지정할 경우 지정한 컴퓨터의 IP 주소와 물리적 주소만 표시합니다.
                둘 이상의 네트워크 인터페이스가 ARP를 사용하는 경우 각 ARP 테이블에 대한 항목을 표시합니다.
                
  -g            -a와 동일합니다.
  
  -v            세부 정보 표시 모드에서 현재 ARP 항목을 표시합니다.
                올바르지 않은 모든 항목과 루프 백 인터페이스의 항목을 표시합니다.
  
  inet_addr     인터넷 주소를 지정합니다.
  
  -N if_addr    if_addr로 지정한 네트워크 인터페이스에 대한 ARP 항목을 표시합니다.
                
  -d            inet_addr로 지정한 호스트를 삭제합니다.
                inet_addr에서 와일드카드 *를 사용하면 모든 호스트를 삭제할 수 있습니다.
                
  -s            호스트를 추가하고 인터넷 주소 inet_addr을 물리적 주소 eth_addr과 연결합니다.
                물리적 주소는 하이픈으로 분리된 6바이트 16진수의 형태로 제공됩니다.
                항목은 영구적으로 지속됩니다.
                
  eth_addr      물리적 주소를 지정합니다.
  
  if_addr       있을 경우 주소 변환 표를 수정해야 할 인터페이스의 인터넷 주소를 지정합니다.
                없을 경우 적용 가능한 첫 번째 인터페이스를 사용합니다.
                
예:
  > arp -s 157.55.85.212   00-aa-00-62-c6-09  .... 정적 항목을 추가합니다.
  > arp -a                                    .... ARP 표를 표시합니다.

 

 - 에러가 발생할 경우, netsh 명령어를 사용한다.

 - cmd에 netsh interface show interface를 입력해서 인터페이스 이름을 알아낸다.

 - cmd에 netsh interface ip add neighbors "[인터페이스 이름]" [IP 주소] [MAC 주소]를 입력한다.

 

[출처]

https://stibee.com/api/v1.0/emails/share/x4Lh4NZQXEmhBvOt2zzaDVYZtMSolg==

https://ko.wikipedia.org/wiki/%EC%A3%BC%EC%86%8C_%EA%B2%B0%EC%A0%95_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

https://ko.wikipedia.org/wiki/ARP_%EC%8A%A4%ED%91%B8%ED%95%91

Comments