MAC 주소를 임시적으로 변경하는 방법
■ 사용시스템 - linux200 - windows2008
■ 선수지식
[참고] ARP Cache Table 관리 명령어 (설정) # arp -s <IP> <MAC> (확인) # arp -a (삭제) # arp -d <IP>
[참고] 물리적인 주소(MAC 주소)에 대해서(EX: Network Adapter, 1 port) * 공장에서 생산할 때 할당되는 번호(port 구분 번호) * 일반적인 체계에서는 MAC 중첩이 나지 않는다. * 운영체제가 기동이 될때 NIC의 MAC 주소를 불러서 설정한다. * 운영체제에서 임시적으로 NIC의 MAC 주소를 변경해도 재부팅이 되면 다시 복원된다. * 가상 운영체제 환경(EX: VMware)인 경우에는 약간 틀리다.
[실습] MAC 주소를 변경하는 방법을 실습한다.
(linux200)
linux200 IP : 192.168.20.200 win2008 IP : 192.168.20.201
① window2008 서버에 ping 테스트 후 arp cache table 확인 # ping -c 1 192.168.20.201 # arp -an
-> MAC 주소 복사
② 새로운 MAC 주소로 arp cache table에 static 하게 등록(잘못된 설정) # arp -d 192.168.20.201 # arp -s 192.168.20.201 00:0C:29:E5:D4:AA <--- 'AD -> AA' 변경 # arp -an
PERM 우선순위 높음, 재부팅 되기전 까지 유지됨 ③ 통신 테스트 # ping -c 1 192.168.20.201 -> 정상적으로 통신이 되는가? 되지 않는다 !!
④ 다시 정상적으로 변경 # arp -d 192.168.20.201 # arp -s 192.168.20.201 00:0C:29:E5:D4:AD # arp -an
⑤ 통신 테스트 # ping -c 1 192.168.20.201 -> 정상적으로 통신이 되는가? 잘 된다 --- 192.168.20.201 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms -> 잘못된 정보를 가져다 끌어넣어서 패킷을 버리고 통신이 안된다.
⑥ arp cache table 내용 삭제 # arp -d 192.168.20.201 => 다시 복원
(windows2008)
① linux200 서버에 ping 테스트 후 arp cache table 확인 c:\> ping 192.168.20.200
c:\> arp -a win에서는 -an옵션이 없다. n옵션 숫자로만 표기. win은 자체 기능되어있음.
-> MAC 주소 복사
② 새로운 MAC 주소로 arp cache table에 static 하게 등록(잘못된 설정) c:\> arp -d 192.168.20.200
c:\> netsh interface show interface
c:\> netsh interface ip add neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-d1-cc-22" -> MAC 주소를 다른것을 설정한다.(00-0c-29-d1-cc-21 ===> 00-0c-29-d1-cc-22) -> (예제) netsh interface ip add neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-e0-2c-66"
c:\> arp -a -> 잘못된 MAC 주소 확인
③ 통신 테스트 c:\> ping 192.168.20.200 -> 테스트가 되는가? 100% 손실, 되지 않는다. C:\>ping 192.168.20.200
Ping 192.168.20.200 32바이트 데이터 사용: 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다.
192.168.20.200에 대한 Ping 통계: 패킷: 보냄 = 4, 받음 = 0, 손실 = 4 (100% 손실),
⑥ arp cache table 내용 삭제 c:\> netsh interface ip delete neighbors "로컬 영역 연결" "192.168.20.200" or c:\> arp -d 192.168.20.200 netsh interface ip add neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-13-ed-e1" netsh interface ip del neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-13-ed-e1"
⑦ 통신 테스트 c:\> ping 192.168.20.200 -> 테스트가 되는가? 잘 통신이 된다.
C:\>ping 192.168.20.200
Ping 192.168.20.200 32바이트 데이터 사용: 192.168.20.200의 응답: 바이트=32 시간<1ms TTL=64 192.168.20.200의 응답: 바이트=32 시간<1ms TTL=64 192.168.20.200의 응답: 바이트=32 시간<1ms TTL=64 192.168.20.200의 응답: 바이트=32 시간<1ms TTL=64
192.168.20.200에 대한 Ping 통계: 패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실), 왕복 시간(밀리초): 최소 = 0ms, 최대 = 0ms, 평균 = 0ms
(결론) 한번 통신하면 arp cache table에 저장이 된다.(IP <-> MAC) MAC 주소가 틀리면 통신이 되지 않는다. [실무 활용 예]
반드시 실습은 172.16.0.0/16 대역의 PC에서 작업한다.
(원본 운영체제에서 수행해 본다.) c:\> ping 172.16.255.255 -> broadcast address (응답이 안되도록 되어 있으면 이 방법으로 실습한다. c:\> ping 224.0.0.1) <-- 멀티캐스트 어드레스 한번통신하면 상대방의 주소 저장 c:\> arp -a -> (실무) 같은 네트워크 안에 alive 시스템을 확인 할 수 있다. -> (실무) MAC 주소가 중첩(충돌)이 발생한 서버의 MAC 주소를 확인 할 수도 있다. 가상체계에서 발생하는 오동작인데 문제의 원인을 알 수가없다. => mac 주소가 중첩난 것
-> (실무) SAN 스토리지/스위치(네트워크 장비) IP를 모르는 경우 IP 확인을 위해서 사용한다 관리용 포트 쪽에 상대편의 ip 알아야 접속이 가능한데 모를 경우 arp -a 사용하면 상대편의 Ip를 알 수 있다.. (추가적인 실습) 리눅스 시스템에서 쉘 스크립트를 통해 ping 통신을 하는 프로그램 제작하기
(linux200) # mkdir /root/bin # cd /root/bin # vi ping.sh (# nmap 192.168.20.0/24)
200부터 202 까지 핑테스트를 하나하나 해볼 것이다. or
# chmod 755 ping.sh # ./ping.sh # arp -an
[root@~/bin]# vi ping.sh [root@~/bin]# ./ping.sh 192.168.20.200 is alive 192.168.20.201 is alive 192.168.20.202 is die ? (192.168.20.202) at <incomplete> on eth0 ? (192.168.20.201) at 00:0C:29:90:F2:A4 [ether] PERM on eth0
|
'Learning > └◆Network Hacking' 카테고리의 다른 글
ARP Spoofing을 막을 수 있는 방법에 대해서 (0) | 2016.12.21 |
---|---|
ARP Cache Poisoning(ARP Spoofing Attack) (0) | 2016.12.20 |
ARP 패킷을 캡쳐하고 분석하기 (0) | 2016.12.20 |
ARP 프로토콜의 동작 원리를 확인 (0) | 2016.12.20 |