본문 바로가기

전공 공부/리눅스 보안 실습

Spoofing(스푸핑), Sniffing(스니핑) - 칼리리눅스

728x90

이 글은 교육목적으로 작성하는 것으로 절대 타인의 컴퓨터에 공격을 해서는 안됩니다.

범죄 행위이고 처벌을 받을 수 있습니다.

모든 해킹 행위는 자기 자신에게 책임이 있습니다.

 

제 블로그는 불법적인 해킹 행위를 권장하거나 유도하지 않습니다. 오로지 테스트 및 연습 목적으로 읽어주시면 감사하겠습니다.

Spoofing(스푸핑)?

- 인터넷 프로콜콜 TCP/IP의 구조적 결함을 이용해 사용자의 시스템 권한을 획득한 뒤 정보를 빼가는 해킹 수법

- '속이다', '사기치다' 라는 뜻을 가지고 있습니다.

 

ARP Spoofing(스푸핑)?

- ARP 캐쉬에 저장되는 MAC(물리적 주소)를 속여 랜에서 통신 흐름을 왜곡시키는 해킹 수법입니다.

 

Sniffing(스니핑)?

- 네트워크상에서 자신의 아닌 다른 상대방들의 패킷 교환을 훔쳐보는 행위입니다.

- 'sniff', '코를 킁킁거리다'라는 뜻을 가지고 있습니다.

 

 

 

실습을 위해서 칼리 리눅스 ifconfig 설정을 promisc로 설정해 줍니다.

Primiscuous(프리미스큐어스) 모드로 설정 함으로써, 요청받은 IP주소와 MAC 주소가 다르더라도 전부 패킷을 수신할 수 있게 됩니다.

이제부터 칼리 리눅스에서 모든 패킷을 수신받을 수 있게 되었습니다.

 

 

 

arp 테이블

공격을 시도할 서버에 대한 정보를 확인해 보겠습니다.

 

ARP(Address Resolution protocol) 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜입니다. 

 

처음 컴퓨터를 네트워크에 연결을 하면 통신을 하기 위해 arp 프로토콜을 사용하여 주변 장치들에게 브로드캐스트 방식으로 물리적 주소(FFFFFFFFFFFF)를 보내는데, 이를 받은 PC는 자신의 물리적 주소를 담아 전송하게 됩니다.

 

이때 요청해서 받은 물리적 주소를 arp 캐시에 테이블 형태로 저장합니다.

arp -a
기존 게이트웨이 맥 주소: 00-50-56-e8-73-eb

arp -a 명령어를 통해 arp 캐시에 저장되어있는 맥주소와 ip 주소 테이블을 볼 수 있습니다.

 

 

 

 

이제 칼리 리눅스에서

 

fragrouter -B1 

arpspoof -t 192.168.196.139(윈도우 7 IP) 192.168.196.2(게이트웨이)

fragrouter은 B1 옵션을 주어 기본 모드로 실행하였습니다. 

 

기존: 윈도우 7 <-> 게이트웨이

변경: 윈도우 7 <-> 칼리 <-> 게이트웨이

 

위와 같은 방식으로 작동이 되게 됩니다.

 

이제 윈도우 arp 테이블을 보겠습니다.

기존: 게이트웨이 192.168.196.2의 값이 칼리 리눅스의 (MAC) 물리적 주소로 변한 것을 확인할 수 있습니다.

 

arp 테이블 값이 변했기 때문에 윈도 7은 네트워크 접속을 할 때 실제 게이트웨이가 아닌 칼리 리눅스로 데이터를 전달하게 됩니다.

 

 

이제 중간에 오고 가는 데이터를 Sniffing(스니핑)을 해보겠습니다.

 

커맨드 창에 wireshark(와이어 샤크)를 입력하면 실행이 됩니다. 와이어 샤크는 오픈소스 패킷 분석 프로그램으로 칼리 리눅스 안에서 오고 가는 패킷들을 볼 수 있습니다.

 

ARP 스푸핑을 하고 있는 eth0 네트워크 장치를 선택하여 패킷을 살펴보겠습니다.

 

미리 만들어둔 NAS 서버에 접속을 하면 칼리 리눅스에서 패킷이 흐르게 되면서 보이게 됩니다. 

로그인을 해줍니다.

 

 

윈도우 7 <-> 칼리 <-> 게이트웨이

이렇게 패킷이 오고 가기 때문에 와이어 샤크에는 칼리 리눅스 패킷윈도우7 패킷을 볼 수 있습니다. 

 

이중에 윈도우 7에서 NAS 서버로 로그인하는 패킷을 봐야 되기 때문에, HTTP 프로토콜로 오고 가는 패킷만 볼 수 있게 필터를 HTTP로 설정해 줍니다.

 

HTTP Method를 POST로 보내는 데이터가 있는데, 로그인할 때 서버로 POST로 요청을 하기 때문입니다. 해당 POST 해킷의 From URL Encoded 데이터를 살펴보면 로그인 할때 쓰는 userpassword 정보가 고스란히 보이게 됩니다. 

 

이렇게 스니핑(sniffing) 방식을 통해 오고 가는 패킷 데이터를 훔쳐볼 수 있습니다.

728x90