ARP 란?
- Address Resolution Protocol의 약자로 L3계층에서 L2 계층으로 패킷이 이동할 때 IP 주소를 MAC 주소로 변환해 주는 프로토콜이다.
- IP 주소와 이에 대응되는 MAC 주소를 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 후 패킷을 전송할 때 ARP Table을 확인 후 전송하게 된다.
- Window의 경우 arp -a 명령어를 통해 확인할 수 있고 리눅스의 경우 arp 명령어를 입력하면 ARP Table의 상태를 확인할 수 있다.
- RARP는 Reverse Address Resolution Protocol의 약자로 ARP의 반대말로 L2 계층에서 L3 계층으로 패킷이 이동할 때 MAC 주소를 IP주소로 변환해주는 프로토콜이다.
Spoofing이란?
https://peemangit.tistory.com/95
ARP Spoofing 공격
- Attacker가 Target에게 변조된 ARP Reply 패킷을 반복적으로 전송하여 Target의 'ARP Cache' 정보를 변경하도록 유도하는 공격이다.
- 결과적으로 특정 목적지로 향하는 패킷들을 Attacker에게 전송되도록 하여 해당 패킷들을 가로채므로 해당 패킷들을 Sniffing 하는 것이 가능해진다.
네트워크 구성
- 스위치에 10.1.10.4(Window7)와 10.1.10.100(Kali Linux)이 연결되어 있다.
- Kali Linux에서 ARP Spoofing 공격을 통해 Window7 PC의 정보를 스푸핑(Spoofing) 하려고 한다.
- 공격 전에는 Window7 → Gateway로 패킷이 이동한다.
- 공격 후에는 Window7 → Kali Linux → Gateway로 이동함으로써 Attacker가 모든 정보를 확인할 수 있다.
공격하기 전 Window7 확인
1. Window에서 Wireshack 패킷 확인
- 패킷을 보면 10.1.10.254에 ARP Request를 보냈을 때 Gateway의 MAC 주소가 00:00:0 c:07:ac:0a라는 것을 알려준다.
- ARP 패킷이 모든 종단 장치에 전송되므로 Attacker는 Gateway 주소(10.1.10.254)와 이에 해당하는 MAC 주소(00:00:0 c:07:ac:0a)를 알아낼 수 있다.
- Client에서 CMD창에서도 확인을 하면 00-00-0c-07-ac-0a를 Gateway에서 동적으로 받아오는 것을 확인할 수 있다.
Kali Linux에서 ARP Spoofing 공격
- Client PC(Window7)에서 외부로 전송될 때 Attacker PC(Kali Linux)에 패킷이 이동한 후 외부로 보내도록 설정 하려고 한다.
1. 공격전 준비사항들을 설정한다.
- 칼리 리눅스에서도 패킷을 확인하기 위해서 Wireshack를 wireshack & 명령어로 백그라운드로 실행한다. (메뉴에서 wireshack를 실행해도 무관하다.)
2. Attacker PC에서 arpspoof 공격을 실행한다.
- arpspoof -i [네트워크 인터페이스] -t [Target PC IP] [Gateway IP] 명령어를 이용해 ArpSpoof 공격을 수행한다.
- 사용할 네트워크 인터페이스를 eth0으로 지정하고 Target을 Client(10.1.10.4)로 설정하고 Client의 Gateway 주소(10.1.10.254)를 입력한다.
3. Target PC에서 Wireshack를 통해 MAC 주소를 확인한다.
- Client에서 Wireshack를 확인해보면 아까 정상적으로 표시된 Gateway의 MAC 주소가 Attacker의 MAC 주소로 변경된 것을 확인할 수 있다.
- Target PC에서 arp -a 명령어를 통해 MAC 주소 테이블을 확인하면 Attacker PC의 MAC 주소로 변경된 것을 확인할 수 있다.
4. Attacker PC에서 중계 처리를 수행한다.
- ArpSpoofing공격만 실시할 경우 Client PC에서 외부로 Ping이 나가지 않기 때문에 Attacker PC에서 중계 처리를 해 주어야 한다.
- fragrouter -B1 명령어를 통해 패킷들을 중계 처리해주어서 응답 처리도 완료해 준다.
- 중계 처리가 완료되면 ping이 정상적으로 나가는 것을 확인할 수 있다.
5. Attacker에서 패킷을 확인한다.
- Target PC에서 ping을 전송하면 Attacker PC에서 ICMP request 패킷을 확인할 수 있는 것을 알 수 있다.
6. Attacker PC에서 응답 패킷도 Spoofing을 수행한다.
- arpspoof -i eth0 -t 10.1.10.253 10.1.10.4 명령어를 통해 Gateway에서 Client로 보내는 패킷을 Spoofing 한다.
- Target PC가 외부로 Ping을 보낼 경우 Attacker PC에서 요청과 응답 패킷을 모두 확인할 수 있다는 것을 알 수 있다.
7. Target PC에서 FTP 접속 정보를 확인한다.
- ICMP 패킷뿐만 아니라 다양한 패킷들의 정보를 스푸핑 할 수 있다.
- Target PC에서 FTP를 접속하면 Attacker PC에서 중계 처리까지 해 주었기 때문에 겉 보기에는 정상적으로 접속이 가능하다.
- Attacker PC에서는 Target PC가 FTP를 사용하면서 활동한 패킷들(아이디, 비밀번호) 등을 모두 확인할 수 있다.
- Client는 패킷을 확인하기 전까지 공격자가 패킷을 보고 있다는 것을 확인하지 못한다.
- 해당 ARP Spoofing 공격에 피해를 입지 않으려면 ARP Spoofing 방어 정책을 설정해야 한다.
★ARP Spoofing 방어 방법을 알고 싶다면 아래 링크 클릭!★
https://peemangit.tistory.com/80
'Hacking & Security > Kali Linux' 카테고리의 다른 글
[Kali Linux] DHCP(Dynamic Host Configuration Protocol) 공격과 방어(2/2) (0) | 2019.11.07 |
---|---|
[Kali Linux] DHCP(Dynamic Host Configuration Protocol) 공격과 방어(1/2) (0) | 2019.11.07 |
[Kali Linux] ARP(Address Resolution Protocol) Spoofing 공격과 방어(2/2) (0) | 2019.11.06 |
[Kali Linux] DNS(Domain name Service) Spoofing 공격 (0) | 2019.11.06 |
[Kali Linux] macof 공격 (0) | 2019.11.05 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊