본문 바로가기
모의해킹/실습

[모의해킹] ARP Spoofing 실습

by 재현짱 2024. 6. 10.
728x90

공격 개요 

  • 피해자의 PC에 MAC Address가 변조되는가?
  • Server와 Client의 통신을 Kali를 이용한 arp spoof 공격으로 감청해보자 (Telnet 사용)

사용 OS

  • 공격자: Kali 22.4 ver (192.168.10.168)
  • 서버: Ubuntu 20.04 ver (192.168.10.162)
  • Client: Win 7 ver (192.168.10.164)
  • 구축 환경: GNS3 2.2.47 ver (Gateway 192.168.10.1)
  • 사용할 시스템: Telnet

LAB 구성 (GNS3 2.2.47 ver)

  • 아래와 같이 환경을 구현
  • 공격 후 패킷을 보기위해 간단한 토폴로지로 구성

Topology

 

공격도구 확인 (Kali 22.4 ver)

  • 필자는 Arpspoof, fragrouter, ifconfig 세가지를 Kali에 확인해보았고, 아래 사진과 같이 설치가 되어있지 않다면 설치를 할  수 있도록 되어있으니 아래의 사진을 참고하기 바란다.
  • arpspoof: apt install dsniff 명령어로 다운로드 가능
  • fragrouter: apt install fragrouter 명령어로 설치 가능

* Bridged 환경에서 다운로드 해야함! apt-get update 명령어 이후 아래와 같이 설치하자

arpspoof

 

fragrouter

 

공격 순서

 

먼저 공격 순서를 정의하기 전 간단한 ARP 스푸핑에 대한 설명을 하자면

  • ARP 스푸핑에 대한 이해 : MAC 주소를 속이는 것(2Layer에서 작동해 공격 대상이 같은 랜에 존재해야함)

ARP spoof의 예

  • 스니핑의 또 다른 기법

ARP 스푸핑 공격 개념도

 

환경설정

 

라우터에서 먼저 sh arp 명령어로 연결이 되었는지 확인한다. (GNS 2.2.47 ver Router)

sh arp

 

이후에 Server와 Client가 telnet 으로 연결 될 수 있도록 Server에 telnet을 설치한다. 설치는 아래 참조에서 확인 가능하다.

 

[참조]

https://itjaehyun.tistory.com/17

 

[Server] Telnet Server 구축

Telnet Server 구축 사용OS: Ubuntu 22.04 본 내용은 '이것이 리눅스 우분투다' 를 참고하여 제작하였습니다. 1. apt -y install xinetd telnetd 명령으로 관련 패키지를 다운2. /etc/xinetd.d 폴더로 이동 후 touch teln

itjaehyun.tistory.com

putty나 cmd, powershell 로 telnet 접속이 가능한지 확인한다.

 

공격실행

 

1. ifconfig eth0 promisc 명령어를 통해 네트워크 인터페이스의 현재 상태와 설정을 확인할 수 있다. 네트워크 인터페이스를 혼잡 모드로 설정한 후 ifconfig 명령어를 사용하여 해당 설정이 적용되었는지 확인할 수 있다.

*promisc : 혼잡모드로 설정

ifconfig 명령어

 

2. 이후 터미널을 두개 켜서 하나는 arpspoof - i eth0 -t [공격대상IP] [인식시킬 IP] 명령어를 사용해 공격하고, 다른 터미널에선 fragrouter -B1 명령어를 사용해 중간에서 패킷을 빼가겠다고 선언한다. 필자는 window client에 공격을 해보았다.

공격

 

공격받은 win7에서 arp -a 명령어를 사용해 MAC Address를 확인해보자 아래의 공격자와 Server의 MAC Address가 같아진것을 확인할 수 있다.

arp -a

 

공격자 쪽에 패킷이 어떻게 들어오는지 확인해보자 아래의 사진과 같은 곳에 패킷을 캡처해보았고, 그에 맞게 패킷을 설명하겠다. Router에 telnet을 설정해 서버에서 telnet으로 붙어보자 telnet 설정은 아래와 같다.

라우터 telnet 설정

 

텔넷으로 붙는것 까지 공격자가 볼 수 있다. 아래 telnet 패킷을 보면 서로 통신하는것을 볼 수 있다.

telnet packet

 

패킷 캡처

아래의 패킷을 보면 192.168.10.162와 gateway인 192.168.10.1가 통신하는 것을 확인할 수있다. 

arp spoof packet

 

이번엔 응용을 한번 해보자  server와 client 사이에 ssh로 연결하는것을 kali에서 감청을 한다고 했을 때 공격 명령어는 다음과 같다. 

192.168.10.164(client)가 192.168.10.168(Attacker)를 192.168.10.162(Server)로 인식하도록 만들었다. 명령어를 보자면 arpspoof - i eth0 -t [공격대상IP] [인식시킬 IP]

arpspoof attack

 

클라이언트에서도 MAC Address가 변동되었는지 확인해본다. 아래와 같이 168(Attacker)의 MAC Address가 162(Server)의 MAC Address로 변환된 것을 볼 수 있다.

arp -a

이후 위와 같이 fragrouter -B1 명령어를 적용하고, ssh로 Server와 Client를 서로 연결해보자. 아래는 ssh로 붙는 과정의 패킷을 감청한것이다. 

ssh packet

 

해결방안

 

동적 ARP 검사

  • 스위치에서 ARP 스푸핑을 방지하는 보안 기능
  • ARP 패킷을 검사하고 검증된 ARP 트래픽만 허용
  • 작동방식은 ARP 패킷 검토, ARP Table 정보를 기반으로 유효성 검사

스태틱 ARP 엔트리 설정

  • 특정 IP Address와 MAC Address 주소를 쌍으로 수동 설정
  • 네트워크 장비의 ARP 캐시를 수동으로 구성
  • 장점은 신뢰할 수 있는 ARP 엔트리를 설정해 공격 차단, 단점은 네트워크 환경이 커질수록 관리가 어려움

 

'모의해킹 > 실습' 카테고리의 다른 글

[모의해킹] DoS 공격 실습  (1) 2024.04.15