ARP에 대한 간단한 개념 : http://5log.tistory.com/73
- ARP 프로토콜의 동작 원리를 확인
사용 시스템
linux200 wireshark 1.0.15
win2008 wireshark 1.10.8
[참고]
각각 wireshark의 버전이 다르다.
-> 여러 버전을 사용하면서 각 버전별로 어떤것이 다르고 어떻게 변화했는지 파악하기 위해 여러버전을 사용한다.
( linux )
# yum -y install wireshark wireshark-gnome
( window )
설치 파일을 받아서 설치
선수 지식
ARP cache table 관리 명령어 ( 리눅스 기준 )
(설정) # arp -s <IP> <MAC>
(확인) # arp -a
(삭제) # arp -d <IP>
( linux200 )
# arp -an /* 캐시 테이블 확인 */
# arp -d <IP> /* 캐시 테이블에 저장된게 있다면 삭제 */
# ping -c 1 192.168.27.201 /* win2008 서버에 ping 테스트 */
# arp -an /* 캐시 테이블 확인 */
|
? (192.168.27.201) at 00:0C:29:7D:D8:1E [ether] on eth0 |
|
( win2008 )
c:\> arp -a /* 캐시 테이블 확인 */
c:\> arp -d /* 저장된것이 있다면 삭제 */
/* 리눅스는 전체삭제가 없지만 윈도우는 -d 옵션에 IP를 적지 않으면 캐시테이블 전체 삭제된다. */
c:\> ping -n 1 192.168.27.200 /* linux200 서버에 ping 테스트 */
c:\> arp -an
|
인터넷 주소 물리적 주소 유형 192.168.27.200 00-0c-29-78-75-ec 동적 |
|
-> 서버간에 통신( ping )을 하니 ARP Cache Table에 추가가 되었다.
( 통신할때 ARP가 사용된다. 통신할때 꼭 MAC Address 가 필요하다 )
- ARP 패킷 캡쳐후 분석하기
사용 시스템
linux200
win2008
( linux200 )
# arp -d 192.168.20.201 /* 앞 실습에서 저장된 캐시 테이블 삭제 */
# wireshark &
# ping -c 1 192.168.20.201
# arp -a
1. 78:75:ec Broadcast ARP Who has 192.168.27.201? Tell 192.168.27.200
-> 78:75:ec (linux200) 이 브로드케스트로 192.168.27.201을 찾는다.
2. 자세히 확인해보면 Destination 이 ff:ff:ff:ff:ff:ff 이고 Source 는 linux200의 MAC Address임을 확인 할 수있다.
-> 아래에 각 주소 6 byte type 2byte 16 btye
3. 00:00:00:00:00:00또한 MAC Address를 모른다는 의미이다
arp request 는 Opcode 가 1이다.
1. 7d:d8:1e 78:75:ec ARP 192.168.27.201 is at 00:0c:29:7d:d8:le
-> win2008에서 linux200으로 응답했다. 192.168.27.201의 MAC Address는 00:0c:29:7d:d8:le 이다.
2. Destination : .... :ec ( linux200) Source : ......:le ( win2008)
3. ARP reply 의 Opcode 는 2이다.
.... :le ( win2008) Broadcast ...
> win2008에서 브로드캐스트를 보내 linux200의 MAC Address를 찾는다
사실 win2008은 이전에 받은 패킷에 linux200의 정보가 모두 들어있음에도 다시 확인한다.
이유는 window는 ARP 를 받으면 한번더 확인하도록 되어있다. > 보안의 이유로
( win2008 )
# arp -d /* 이전의 실습으로 저장된 캐시 테이블 삭제 */
wireshark를 다운받고 패킷을 확인합니다.
# ping -n 1 192.168.27.200
# arp -a
|
인터페이스: 192.168.27.201 --- 0xb 인터넷 주소 물리적 주소 유형 192.168.27.200 00-0c-29-78-75-ec 동적 |
|
-> ARP를 통해 linux200의 MAC 주소를 알아낸후 ping을 수행합니다.
-> 패킷의 정보는 linux로 확인 했던 것과 비슷하게 나왔다.
-> linux는 ARP를 다시 Broadcast 신호로 확인하는 작업을 하지 않는다.
사용 시스템
linux200
win2008
[참고] 물리적인 주소(MAC 주소)에 대해서(EX: Network Adapter, 1 port)
* 공장에서 생산할 때 할당되는 번호(port 구분 번호)
* 일반적인 체계에서는 MAC 중첩이 나지 않는다.
* 운영체제가 기동이 될때 NIC의 MAC 주소를 불러서 설정한다.
* 운영체제에서 임시적으로 NIC의 MAC 주소를 변경해도 재부팅이 되면 다시 복원된다.
* 가상 운영체제 환경(EX: VMware)인 경우에는 약간 다르다.
( linux200 )
# ping -c 1 192.168.27.201 /* win2008에 ping */
# arp -an
|
? (192.168.27.201) at 00:0C:29:7D:D8:1E [ether] on eth0 |
|
-> MAC 주소복사 00:0C:29:7D:D8:1E
# arp -d 192.168.27.201
# arp -s 192.168.27.201 00:0C:29:7D:D8:1A
-> 붙여넣기하고 끝에 한글자만 바꿔준다.
# arp -an
|
? (192.168.27.201) at 00:0C:29:7D:D8:1A [ether] PERM on eth0 |
|
-> PERM : 직접설정 했다는 의미이다. ( Static 설정 )
arp cache table은 시간이 지나면 지워지지만 Static으로 설정된 것은 재부팅하기 전까지 지워지지 않음
# ping 192.168.27.201
> 정상적으로 실행되지 않는다.
# arp -d 192.168.27.201
# arp -s 192.168.27.201 00:0C:29:7D:D8:1E /* 정상 MAC Address */
# ping -c 1 192.168.27.201
> 정상적으로 실행된다.
( win2008 )
c:\> ping 192.168.20.200 /* window 에서는 기본 -n 4 */
c:\> arp -a
|
인터페이스: 192.168.27.201 --- 0xb 인터넷 주소 물리적 주소 유형 192.168.27.100 00-0c-29-7c-d6-f0 동적 192.168.27.200 00-0c-29-78-75-ec 동적 192.168.27.255 ff-ff-ff-ff-ff-ff 정적 |
|
-> MAC Address 복사 00-0c-29-78-75-ec
|
관리 상태 상태 종류 인터페이스 이름 --------------------------------------------------------------------- 사용 연결됨 전용 로컬 영역 연결 |
|
c:\> netsh interface ip add neighbors "로컬 영역 연결" "192.168.27.200" "00-0c-29-78-75-ea"
-> 잘못된 MAC Address 설정
c:\> arp -a
|
인터페이스: 192.168.27.201 --- 0xb 인터넷 주소 물리적 주소 유형 192.168.27.100 00-0c-29-7c-d6-f0 동적 192.168.27.200 00-0c-29-78-75-ea 정적 192.168.27.255 ff-ff-ff-ff-ff-ff 정적 |
|
c:\> ping 192.168.27.200
>정상적으로 실행되지 않는다.
c:\> netsh interface ip delete neighbors "로컬 영역 연결" "192.168.27.200"
[참고] arp -d 192.168.27.200
arp -d는 메모리 상에 있는것만 지운다.
netsh interface ip add 명령어로 설정했다면 다시 이 정보다 올라올 수 있다. > 오류
완전히 지우기 위해서는 netsh interface ip delete로 지워야한다.
c:\> ping 192.168.27.200
> 정상적으로 실행된다.
'Security > Network Security' 카테고리의 다른 글
ICMP 패킷 분석 (0) | 2017.10.18 |
---|---|
ARP Spoofing 방어 방법 (0) | 2017.10.18 |
ARP Spoofing (0) | 2017.10.18 |
이더넷 프레임 구조확인 (0) | 2017.10.17 |
보안 기초 용어 (0) | 2017.10.16 |