![[붉은외계인] 네트워크 - ARP와 ARP Scan이란 무엇인가](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpIrZ5%2FbtsCKq7CZxp%2FHNUzrhDK3kKOICeRKCym6k%2Fimg.png)
ARP란 무엇인가
ARP는 Address Resolution Protocol의 약자로, IP 주소를 통해 MAC 주소를 알아내는 프로토콜이다
여기서 ARP의 Address는 IP와 MAC의 주소를 의미하는 것이다
그렇다면 여기서 질문을 던져보자 IP 주소를 통해 MAC 주소를 알아내야하는 상황은 무엇인가?
그것은 바로 Internet을 통한 Networking을 하기 위해서이다 쉽게 말하자면 네이버에 접속하기 위해서이다
이러한 Networking을 하기 위해서는 자신이 속한 Network의 Gateway MAC 주소를 반드시 알아야만이 Networking이 가능하다
아래 그림을 통해 자세히 알아보자
요청 PC의 IP주소가 192.168.10.5이고, Naver의 IP주소가 5.5.5.5 라고 가정하였을 때,
생성되는 Frame을 간략화해보면 위에 그림과 같다
결론부터 말하자면, Router는 일반적으로 L3 통신을 하기 때문이며, 그 전까지는 L2 통신이기 때문이다
즉, Networking을 위해서 Gateway의 MAC주소가 필요한 이유는 L2 Access Switch와 L2 Distribution Switch를 거치고
Gateway에 도달하기까지는 L2 통신을 하기 때문에 MAC 주소가 필요한 것이다
그리고 Gateway에서는 Packet의 IP Header에 기록된 목적지 IP 주소를 보고 판단하여 움직인다
그렇기 때문에 Router를 지난 후, Internet에서부터는 Naver의 MAC주소를 알던 모르던 상관없이, Naver에 도착할 수 있는 것이다
ARP를 이용하여, 어떻게 MAC 주소를 알아내는가
ARP를 알아보기전에, DHCP를 먼저 알아보겠다
DHCP의 핵심은 네트워크 설정을 자동화해준다는 점이다
일반적으로, Client 컴퓨터의 전원이 켜지면 Broadcasting을 통해 DHCP Server을 찾아낸 후,
DHCP Server로부터 IP, Subnetmask, Gateway IP, DNS 등의 정보를 전달받음으로써
자동으로 네트워크 설정이 되는 방식이다 ARP 또한 비슷하다
DHCP로 부터 받은 Gateway IP를 기반으로, Broadcast ARP Request를 발생시킨다
그러면 Gateway IP에 맞는 Host가, 그에 대한 Reply로 MAC 주소를 반환해준다
이것이 ARP가 IP를 통해 MAC주소를 찾아내는 방법이다
여기서 뒤에 글과 이어지는 중요한 내용이 있다면,
이렇게 한 번이라도 알아낸 MAC주소와 IP주소는 다시 요청할 필요가 없기 때문에 캐싱이 된다는 점이다
이것을 ARP Cache 혹은 ARP Table이라고 한다
Metasploit을 통해 연결한 meterpreter에서, ARP 명령어를 쳤을 때 나오는 리스트가 이에 해당한다
또한, arp - a 명령어를 통해서도 확인할 수 있다
그렇다면, ARP Scanner란?
공격자가 처음으로, 타겟 네트워크 연결에 성공하였을 때는 다른 Host의 활성화 여부를 명확하게 판단할 수 없다
이럴 때 사용할 수 있는 것중에 하나가 ARP Scanner이며, 위에서 기술한 내용과 비슷하다
이 때, ARP Table에 기록된 Cache가 없다면, 위에서 알아본것과 같이 Broadecast ARP Request를 발생시킨다
네트워크에서 사용가능한 모든 IP 주소를 대상으로 ARP Request를 발생 시키면,
IP와 일치하는 Host는 ARP Reply를 반환하는데, 여기에 MAC 주소가 포함되어 있다
이러한 과정을 통해 ARP Scanner는 활성화된 Host를 파악한다
( 참고로 IPv4 기준, 하나 당 8bit = 256가지의 경우이므로, 0과 255를 제외한 1 ~ 254까지가 사용 가능한 Host이다 )
Wireshark를 통해, 직접 ARP Scanner 사용 과정을 캡쳐해보자
Vmware Fusion을 통해 NAT 네트워크로, Linux mint와 Kali 환경을 구성한 후, Kali에서 arp-scanner를 실행하였다
패킷 중 하나를 선택하여, Packet Detail을 살펴보면 목적지 MAC주소가 ff:ff:ff:ff:ff:ff 인 것을 알 수 있다
이것을 2진수로 변환하면 11111111:11 ...~ 이며, 이것은 Broadcast를 의미한다
Broadcast 주소는 MAC주소와 IP주소에서 모두 사용할 수 있으며, 2진법으로 변환하였을 때 1로 채워져 있으면 Broadcast에 해당된다 ( IP의 경우, xxx.xxx.xxx.255 이면 Broadcast이다 )
Broadcast에 대하여, 자세하게 알고 싶다면 아래글을 참고할 것.
2023.12.28 - [분류 전체보기] - [붉은외계인] 네트워크 - IP 주소체계와 Broadcast 주소
[붉은외계인] 네트워크 - IP 주소체계와 Broadcast 주소
1-1. IP 주소 체계 IP는 Host에 대한 식별자를 의미한다 이러한 IP는 32bit인 IPv4와 128bit인 IPv6로 나뉜다 여기서는 IPv4만 다뤄보겠다 1-2. Network ID와 Host Id란 IPv4는 한 구역 당 8bit이며, 4구역으로 인하여
redalien.tistory.com
리스트를 살펴본 결과, Ip 끝자리 주소 0 ~ 255까지 모두 패킷을 보냈으며,
IP가 일치할 경우 위의 네모 박스와 같이 응답이 날아왔다
Packet Detail을 확인해보면, Sender의 MAC주소가 Reply 내용에 포함된 것을 확인할 수 있다
Linux mint에서 해당 MAC 주소를 확인해본 결과, 일치하는 것을 확인할 수 있다
'Fundamental > Network' 카테고리의 다른 글
[붉은외계인] 네트워크 - IP 주소체계와 Broadcast 주소 (0) | 2023.12.28 |
---|---|
[붉은외계인] 네트워크 - Network의 의미와 호스트, 스위치의 관계 (1) | 2023.12.28 |
[붉은외계인] 네트워크 - 네트워크 소켓에서부터 OSI 7 Layer까지의 이해 (0) | 2023.12.28 |
IT / Android
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!