ARP Spoofing (속임수)
먼저 PC는 상대방 ip만 알고 MAC주소를 모를 때, ARP패킷을 주고받아 MAC주소를 알아오게 된다.
이때, PC의 ARP Cache Table에 기록이 되게 되어 갱신하게 되는데,
ARP Cache Table이 갱신 될 때는
1. 요청 받은 PC에 ARP Request를 받았을 때.
2. 요청한 PC에 ARP Reply를 받았을 때.
이 두가지 경우에 ARP Cache Table이 갱신하게 된다.
이 ARP의 특징을 이용해서 ARP Spoofing 공격이 진행된다.
ARP Spoofing은 MAC주소를 이용한 공격이기 때문에 내부네트워크에서 진행되어 진다.
ARP Spoofing이란 ?
- arp의 특징을 이용해서 MAC주소를 속이는 방법.
- ARP Cache Table을 임의로 바꿀 수 있음. (ARP Poisoning)
- Hub의 특징(받은 패킷을 브로드캐스트로 뿌림)을 이용해서 A-B간의 통신과정을C가 수집할 수 있다.
ARP Spoofing 공격
ARP는 MAC주소를 속여서 A-B간의 통신을 C가 엿보는 형태로 진행되어 진다.
공격자 - 백트랙5R
통신자 - 윈도우xp, 윈도우7
먼저 각각 PC의 정보를 수집해놓는다.
백트랙 "ifconfig" 명령어로, 윈도우에서는 "ipconfig -all"명령어로 수집
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
ARP공격은 MAC주소로 이루어지는 것이기 때문에 내부네트워크에서 진행 되어야 한다.
이제 서로 통신이 잘되는지 "ping"명령어로 확인한다.
확인이 되었으면 진행하면 된다.
먼저 서로 ping통신을 주고 받은 상태이기 때문에 백트랙, 윈도우xp, 윈도우7 사이에 이미 ARP Cache Table에 서로의 ip와 MAC주소가 갱신되어 있을 것이다.
실습하기 전에 먼저 ARP Table을 삭제하고 진행 해야 한다.
백트랙과 윈도우에서 각각 터미널에 "arp -d"명령어를 통해서 ARP Cache Table을 지우고,
"arp -a"명령어를 통해서 ARP Cache Table을 확인한다.
윈도우 xp
윈도우 7
백트랙5R
이 상태에서 윈도우xp와 윈도우7끼리 ping통신을 한다.
윈도우xp에서 윈도우7으로 ping통신을 보내는 과정
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
핑 통신후 "arp -a"명령어를 통해 윈도우xp와 윈도우7의 ARP Cache Table을 확인해 본다.
정상적인 윈도우7의 ARP Cache Table
정상적인 윈도우xp의 ARP Cache Table
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
서로간의 ip주소와 MAC주소를 ARP Cache Table에 갱신되어 있는것을 볼 수 있다.
ARP Cache Table에 등재된 이후부터는 해당 ip로가는 경로는 ARP 테이블을 참조하여 통신하게 된다.
하지만, 이때 공격자가 ARP Spoofing공격을 한다면, 어떻게 ARP Cache Table이 바뀌는지 알아보자.
먼저, ARP Spoofing공격를 하는 방법은 두가지가 있다.
1. send_arp명령어를 이용한 방법
2. arpspoof명령어을 이용한 방법
먼저, 소개해드리는 방법은 쉽게 공격할 수 있는 "arpspoof"명령어를 이용한 공격이다.
명령어는 " arpspoof -i [페이크 인터페이스] -t [타겟1 ip] [타겟2 ip] "
이때, 타겟1이 타겟2와 통신을 할때, 타겟 1의 ARP Table에는 타겟2로 가는 경로의 MAC주소가 페이크 인터페이스 주소로 바뀌게 된다.
이 부분을 잘 이해해야 한다.
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
다시한번 자세히 설명하자면,
정상적인 핑통신은 윈도우xp -> 윈도우7으로 통신을 할 경우
윈도우xp의 ARP Table에는 192.168.0.10(Win7 ip)에 MAC주소는 00:0c:29:8e:aa:dc(Win7 mac)으로 되어있다.
하지만 arpSpoof공격을 받고 나서부터는 윈도우xp의 ARP Table에는 192.168.0.10(Win7 ip)에 MAC주소는 00:0c:29:f9:85:10 (백트랙 mac)으로 변경되는 것이다.
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
자동으로 일정시간마다 ARP Spoofing공격을 한다.
여기서 끝이 아니다, 현재는 윈도우xp에서 윈도우7으로 핑통신을 보내게 되면,
ip는 윈도우7의 ip로 보내지만 ARP Table에는 백트랙의 MAC이 갱신되어 있어서 정산적인 핑통신이 이루어 지지 않는다.
그래서 이후에 백트랙에서 통신을 원래 윈도우7으로 흘려주도록 해주어야 한다.
윈도우xp에서 윈도우7으로 핑통신이 안되는 상태
"fragrouter -B1" 명령어를 통해서 패킷을 흘려보내준다.
이렇게 되면 윈도우xp에서 윈도우7으로 정상적으로 통신이 이루어 질 것이다.
fragrouter -B1 명령어로 중계역할을 실행한 후 원활한 통신 성공
백트랙 (192.168.0.30 / 00:0c:29:f9:85:10 )
윈도우xp ( 192.168.0.20 / 00:0c:29:3b:cd:c6 )
윈도우7 ( 192.168.0.10 / 00:0c:29:8e:aa:dc )
그럼 윈도우xp와 윈도우7의 ARP Cache Table은 어떻게 변경되어 졌을까?
ARP Spoofing 공격 전 윈도우xp의 ARP Cache Table
ARP Spoofing 공격 후 윈도우xp의 ARP Cache Table
보는것과 같이 윈도우 xp에 ARP테이블에는 윈도우7으로 가는 MAC주소가 백트랙의 MAC주소로 바뀐것을 볼 수 있다.
ARP Spoofing 공격 후 윈도우7의 ARP Cache Table
ARP Spoofing 공격 후 윈도우7의 ARP Cache Table
윈도우7은 공격 전과 공격 후가 변다른 차이가 없는 것을 볼 수 있다.
보는 것과 같이 ARP Spoofing 공격을 하게 되면
윈도우xp 와 윈도우7 사이에 통신과정에서 백트랙을 거쳐서 통신이 이루어 지게됨으로
백트랙에서 와이어샤크로 통신하는 과정을 엿볼 수 있게 된다.
만약에 윈도우xp에서 윈도우7으로 텔넷접속이나, 또다른 통신 접속을 하게되면,
백트랙에서 명령어 하나하나까지 다 엿볼 수 있다.