네트워크 상에서 서버나 다른 컴퓨터와 통신을 하려면
반드시 IP주소와 MAC주소가 필요하다.
하지만 우리가 실제 인터넷을 사용할 때는
이에 대해 고민해 본 적이 없다.
왜냐하면 IP주소와 MAC주소는 사용자가 신경쓰지 않아도
자동으로 컴퓨터가 알아서 처리해 주기 때문이다.
조금 더 자세히 알아보자.
인터넷을 사용할 때 무엇을 먼저 하는지 생각해 보면
아마도 많은 사람들은 크롬이나 사파리 같은 웹 브라우저를 열고
맨 처음 네이버나 구글 같은 검색 사이트를 들어가
마우스를 클릭해 링크를 타고 다른 사이트로 들어갈 것이다.
이 과정에서 사용하는 것은
www.naver.com이나 www.google.com 같은 도메인 주소이다.
IP주소는 알지 못해도 아마 도메인 주소 몇 개 정도는 알고 있을 것이다.
1. IP주소는 도메인 주소를 IP주소로 변환하는 DNS 서비스를 통해 얻을 수 있다.
KT, SK, 구글 등 여러 기업에서 DNS서비스를 제공하는데
이들이 운영하는 네임 서버에서 입력한 도메인을 IP 주소로 변환해 준다.
2. MAC 주소는 ARP(Address Resolution Protocol) 기능을 사용해 얻을 수 있다.
ARP는 MAC 주소를 찾기 위해 연결된 네트워크상에 있는 모든 컴퓨터에
ARP request 패킷을 전달한다.
신호를 받았지만
(1) 자신을 찾는 것이 아니라고 판단한 컴퓨터는 패킷을 무시한다.
(2) 자신을 찾는다고 확신하는 컴퓨터는 자신의 MAC 주소를 넣어 회신을 한다.
이런 방식으로 MAC 주소를 찾아낼 수 있다.
다만 매번 ARP를 사용한다면 네트워크 트래픽을 비효율적으로 사용하게 되므로
클라이언트는 접속했던 컴퓨터의 IP주소와 MAC주소를 저장해 둔다.
ARP 스푸핑은 목적지 컴퓨터의 MAC 주소를 속이는 공격이다.
ARP 스푸핑 공격에서는 해커가
목적지 컴퓨터의 MAC 주소를 자신의 MAC 주소로 몰래 바꿔 버린다.
클라이언트는 자신도 모르는 사이에 정보를 해커에게 제공하게 되는 것이다.
실습환경
클라이언트 : centOS 7
IP 192.168.172.136 MAC Address : 00:0c:29:d1:00:f2
서버 : Ubuntu 22
IP 192.168.172.129 MAC Address : 00:0c:29:56:a8:8a
해커 : Kali Linux 2023
IP 192.168.172.128 MAC Address : 00:0c:29:50:bd:13
ARP 스푸핑 공격은 총 3단계로 이루어진다.
1. TCPDump 또는 dsniff를 사용해 스니핑 준비하기.
이전 포스팅을 참조하자. 이번에는 dsniff를 사용해 보겠다.
# dsniff -i eth0
2. fragrouter 실행하여 패킷 재전송 준비하기.
이것은 클라이언트의 패킷을 해커가 가로채 엿본 후
아무 일도 없었다는 듯 서버에게 다시 전송하는 역할을 한다.
해커가 몰래 데이터를 엿보았다는 것을 감추는 것이다.
먼저 fragrouter를 설치하자.
# apt-get install fragrouter
fragrouter 실행 명령은 다음과 같다.
# fragrouter -B1
3. ARP 스푸핑 실행.
먼저 fake를 설치해야 한다.
# apt-get install fake
ARP 스푸핑을 하기 위한 명령어는 다음과 같다.
send_arp 서버아이피 공격자MAC주소 클라이언트IP 클라이언트MAC주소
# send_arp 192.168.172.129 00:0c:29:50:bd:13 192.168.172.136 00:0c:29:d1:00:f2
명령어 입력이 끝났으면 클라이언트인 centOS로 가 보겠다.
명령어 arp -a를 입력하면 등록된 IP 주소와 MAC 주소를 볼 수 있다.
원래는 빨간 줄을 친 곳처럼 제대로 된 MAC 주소가 등록되어 있었다.
하지만 ARP 스푸핑 공격 후 해커가 설정한 MAC 주소로 바뀐 것을 볼 수 있다.
텔넷을 사용해 서버, Ubuntu에 접속해 보자.
접속하면 전체 속도가 확연히 느려진 것을 체감할 수 있다.
전송 과정 중간에 데이터가 해커를 거쳐 가기 때문이다.
이제 칼리로 돌아가 보자.
스니핑이 정상적으로 이루어진 것을 볼 수 있다.
아이디와 패스워드 외에도 어떤 명령어를 입력했는지 고스란히 드러난다.
위 그림은 fragrouter가 클라이언트로부터 전송받은 패킷을
서버로 재전송하고 있는 장면이다.
덕분에 해커는 들키지 않고 몰래 데이터를 엿볼 수 있는 것이다.
ARP 스푸핑은 강력한 해킹 기법이지만
현대에는 다양한 대비 방법도 준비되어 있다.
이후 가능하다면 이에 대해서도 포스팅을 남겨 보려 한다.
'모의 해킹' 카테고리의 다른 글
[웹 해킹] 1. 웹 해킹 연습을 위한 DVWA 설치하기 (0) | 2024.06.24 |
---|---|
침해사고 발생시 체크해야 할 리눅스 log 파일 (0) | 2024.06.17 |
패킷 스니핑 두 번째 - dsniff 사용하기 (0) | 2024.05.29 |
패킷 스니핑 첫 번째 - TCPDump 사용하기 (0) | 2024.05.28 |
패킷 스니핑 공격의 기초와 준비 (0) | 2024.05.24 |