[해킹 실습] ARP 스푸핑 실습 (1)
저번 포스팅에서 설명했던 ARP 스푸핑을 실제로 실습을 해보겠습니다.
ARP 가 무엇인지 모르겠다면 아래 보이시는 해당링크를 참조해주세요
https://ge-syeong.tistory.com/2
그럼 이제 본격적으로 오늘 실습할 APR 스푸핑 내용을 설명드리겠습니다.APR 스푸핑 내용을 설명드리겠습니다.
(1) 공격자가 피해자에게 gateway의 IP 주소와 공격자 Mac 주소가 담긴 패킷을 지속적으로 전송.
(2) 그럼 피해자는 ARP table에 해당 내용을 그대로 저장
(3) 피해자는 공격자를 gateway로 생각하고 공격자의 MAC 주소로 데이터를 전송
여기서! gateway 가 무엇인지 모르시는 분들을 위해 간단하게 설명하겠습니다.
영어로 gateway는 공항이라는 뜻을 가졌습니다. 사람이 외국으로 나가기 위한 수단이죠.
패킷도 이 공항을 거쳐야지 외부로 나갈 수 있습니다. 패킷들이 통과하는 문? 이라고 생각하시면 좋습니다.
ARP 스푸핑이라는 것은 공격자가 피해자의 gateway인 척을 하는 것이지요
여기까지 성공했다면 피해자는 인터넷이 되지 않을 겁니다.
그 이유는 바로 실제 패킷은 gateway를 통하지 않고 공격자에게 오는 것이기 때문입니다. 그렇다면 이 상황을 해결을 해주기 위해 패킷이 실제 gateway로 나갈 수 있게 길을 똑바로 잡아주어야 하는데 이것이 바로 '포워딩'이라는 것입니다.
이 '포워딩' 이란 것을 해줘야 피해자가 이상한 낌새를 채지 않게 할 수 있습니다.
여기까지 성공했다면 ARP 스푸핑이 성공했고 피해자가 보내는 패킷은 전부 공격자를 통해서 전송하게 되는 것입니다.
이제 실습을 해보겠습니다.
1. 실습 환경
ARP 스푸핑의 전제는 동일 네트워크 상에 존재해야 합니다.
즉, 같은 공유기를 쓰고 있는 호스트들만 가능합니다.
피해자 (윈도우7 가상환경) : 192.168.0.20
공격자 (칼리 리눅스 가상환경): 192.168.0.21
GATEWAY 주소 : 192.168.0.1
먼저 피해자의 ARP 테이블을 조회해보겠습니다.
윈도우 cmd 창에서 arp -a 라는 명령어를 통해 확인할 수 있습니다.
이후 공격자는 새 터미널을 열어 arpspoof -i interface –t target gatway 라고 입력합니다.
파란색에 들어갈 부분은 자신의 환경에 맞게 입력해주시면 됩니다.
-i : 인터페이스를 지정합니다. eth0 , wlan0 등 네트워크 인터페이스를 지정합니다.
-t : 타겟을 정합니다. 첫 번째로 입력하는 주소는 목표가 될 타겟의 주소, 두 번째로 입력할 주소는 내가 누구인지 보낼 주소입니다.
이렇게 입력하면 타겟에게 arp reply를 지속적으로 보내게 됩니다.
실제로 ARP 스푸핑이 성공했는지 검증하기 위해 피해자의 ARP 테이블을 확인해보면
게이트웨이의 MAC 주소가 처음에 있던 공격자의 MAC 주소로 변한 것을 볼 수 있었습니다.
ARP 스푸핑이 성공한 것을 확인했습니다.
하지만 피해자는 실제로 네트워크가 원활히 작동하지 않습니다.
실제로 게이트웨이에게 보내는 패킷들은 공격자에게 오기 때문입니다.
그래서 이 패킷들이 재 경로를 가도록 잡아주기 위해서 포워딩이 필요합니다.
-ip forwarding 활성화
칼리 리눅스에서 스니핑한 세션을 정상인 것처럼 돌려주는 도구가 있습니다, 바로 fragrouter 라는 명령어입니다.
-B1 옵션은 기본 옵션입니다.
이렇게 해주면 자동으로 포워딩을 해주고 ARP 스푸핑이 성공했습니다.
다음 포스팅에서는 이 ARP 스푸핑을 활용한 공격들을 해보도록 하겠습니다.