본문 바로가기

IT보안/네트워크 해킹&보안

[ Kali리눅스 ] 스푸핑 공격 개념 및 ARP스푸핑 실습 | fake툴 | Ettercap | VMware

스푸핑(Spoofing) 공격 개념

스푸핑의 사전적 의미는 '속이다'로, 통신하는 두 대상의 MAC주소를 공격자 자신의 MAC주소로 바뀌어 중간에서 패킷을 가로채는 공격이다.

✎정보를 얻어내는 것 외에 시스템을 마비시킬 수도 있다.



ARP 스푸핑

✎2계층 MAC주소를 공격자의 MAC주소로 속이는 행위이다.


ARP 스푸핑 예

 ① 트루디는 밥에게 엘리스의 MAC 주소가 트루디 자신의 MAC 주소인 CC라고 알린다. 마찬가지로 엘리스에게도 밥의 MAC주소가 CC라고 알린다.

 ② 트루디는 밥과 엘리스로부터 패킷을 받는다.

 ③ 트루디는 각자에게 받은 패킷을 읽은 후 밥이 엘리스에게 보내려던 패킷을 엘리스에게 보내고, 엘리스가 밥에게 보내려던 패킷을 밥에게 정상적으로 보낸다.




습#1 - (사용 툴: fake[send_arp], fragrouter, wireshark)

※실습환경


 (1) 텔넷 클라이언트의 공격전 ARP 테이블 확인하기

 (2) fake 툴 설치하기 및 사용법 확인 ▶ send_arp [서버IP] [해커MAC] [공격대상IP] [공격대상MAC] - 공격자


 (3) 패킷릴레이 수행하기 - 공격자

 (4) TCP dump 수행하기 ▶ tcpdump -xvX [텔넷서버IP] - 공격자

 (5) ARP 스푸핑 공격 수행하기 ▶ send_arp [텔넷서버IP] [공격자MAC] [클라이언트IP] [클라이언트MAC] - 공격자

 (6) 공격 후 클라이언트의 MAC 주소 테이블 전 과 후 비교

 (7) 클라이언트에서 텔넷 서버로 접속 후 로그인한 다음 명령어 입력

 (9) TCPdump로 스니핑한 패킷 확인 ▶ 로그인ID/PW 및 각종 입력한 명령어를 확인할 수 있다 - 공격자

 (10) Wireshark를 이용한 캡쳐 - 공격자



습#2 - (사용 툴: ettercap, wireshark)

 (1) Ettercap 실행 후 Unified sniffing... 모드를 선택 한 후 인터페이스로 eth0을 선택해준다. - 공격자

 (2) Hosts에서 "Scan for Hosts"를 한 후 "Hosts list"로 들어가서 "Add to Target 1/2"을 해준다. [클라이언트:Target1/텔넷서버:Target2] -공격자

 (3)Mitm에서 "ARP poisoning..."를 선택 한 후 "Sniff remote conections"을 체크 후 확인을 눌러준다. [양방향 공격이므로] -공격자

 (4)Start 에서 "Start sniffing"으로 스푸핑을 시작해주시고, 클라이언트에서 ARP테이블을 확인해서 실습#1과 같이 MAC주소 변경을 확인합니다. 

◀ 192.168.1.10(텔넷서버)의 MAC주소가 공격자와 같음을 확인

 (5) 공격자에서 Wireshark를 실행한 후, 클라이언트는 텔넷 서버로 똑같이 접속합니다.

 (6) 공격자에서 캡쳐한 Wireshark 패킷을 확인합니다. [입력했던 명령어(ls)의 첫글자를 확인 할 수 있다] - 공격자



ARP 스푸핑에 대한 보안 대책

✎MAC주소 테이블의 static 설정을 통해 막을 수 있다.

(1) arp -a 명령을 입력하면 현재 MAC주소 테이블을 볼 수 있다.

(2) static으로 설정하고자 하는 IP 주소와 MAC주소를 확인한 뒤 arp -s <IP주소> <MAC주소> 형식으로 명령어를 입력한다.

(3) 다시 arp -a 명령으로 MAC주소 테이블을 확인하면 뒷부분에 PERM옵션 또는 static이 있다.


▶이렇게 설정된 IP주소와 MAC주소 값은 ARP 스푸핑 공격이 들어와도 값이 변하지 않는다.


※문제점) 모든 관리 시스템을 static옵션으로 지정할 수는 없으며, 또한 리부팅하면 static옵션이 사라지므로 계속 사용하려면 배치 파일 형태로 만들어 리부팅 시 마다 수행되도록 해야된다.