1. 스니핑에 대한 이해


'sniff'를 사전에서 찾아보면 '코를 킁킁거리다'라는 의미다. 코를 킁킁거리듯 데이터 속에서 정보를 찾는 일이라고 생각하면 이해하기 쉽다. 스니핑은 막기가 매우 힘든 공격으로 알려져 있다. 게다가 탐지도 쉽지 않다. 스니핑을 수동적 공격이라고도 말하는데, 이는 공격할 때 아무 것도 하지 않고 조용히 있기만 해도 충분하기 때문이다.


2. 스니핑의 개념


스니핑의 개념을 찾을 수 있는 곳은 많다. 드라마에서 주인공이 문 앞에서 다른 이의 대화를 엿듣는 일, 즉 도청도 일종의 스니핑이다. 즉, 모든 도청과 엿듣기가 스니핑이다.


3. Promiscuous mode


스니핑을 하려면 랜 카드를 스니핑이 가능한 모드로 변경해야 한다. 이를 프러미스큐어스 모드라고 하는데, 이를 정확히 이해하려면 먼저 랜 카드의 정상적인 동작을 이해해야 한다.

모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP 주소를 가지고 있다. 패킷이 네트워크에 돌아다닐 때, 각 PC는 패킷에 기록된 MAC 주소와 IP 주소를 보고 자신에게 제대로 전달된 것인지 여부를 안다. 정상적인 경우라면 자신의 네트워크 카드로 흘러 들어온 패킷에 기록된 MAC 주소와 IP 주소가 PC의 것과 일치하면 패킷을 분석하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버린다.


하지만 스니퍼는 자신과 다른 MAC 주소와 IP 주소를 가진 패킷이라고 해서 버리지 않는다. 스니퍼는 자신에게 해당 사항이 없는 것을 훔쳐보는 일이 기본이기 때문이다. 패킷의 목적지가 자신이 아니더라도 흘러들어온 패킷을 모두 읽는다. 그러기 위해서는 랜 카드의 MAC 주소나 운영체제에 설정된 IP 주소가 패킷의 MAC 주소나 IP 주소와 달라도 패킷을 버리지 않게 해야 한다. 이처럼 MAC 주소와 IP 주소에 관계없이 모든 패킷을 스니퍼에 넘겨주는 것을 프러미스큐어스 모드라고 한다.


프러미스큐어스 모드는 기본적으로 소프트웨어적인 제어다. 하지만 하드웨어적으로 처리하는 것도 있는데, 이를 바이패스 모드라고 부른다.

'ifconfig' 명령을 사용해 현재 네트워크 카드를 확인한다.


'ifconfig eth0 promisc' 명령으로 eth0 장치를 프러미스큐어스 모드로 바꾼다.



4. 스니핑 공격 툴


- TCP Dump

TCP Dump는 리눅스에서 가장 기본이 되는 스니핑 툴이다. 불법적인 해킹 느낌보다는 관리자 느낌이 강한 스니퍼다. 이는 처음부터 스니핑 툴이 아니라 네트워크 관리를 위해 개발되었기 때문이다.


TCP Dump로 획득한 증거 자료는 법적 효력이 있다. 법적 효력을 발휘하려면 법원에서 인정하는 툴과 규약에 따라야 하는데, TCP Dump는 그 툴에 포함된다. 하지만 컴퓨터로 취득한 대부분의 자료는 재판 과정에서 직접적인 증거로 인정받기 어렵다는 사실을 알아둬야 한다. 위조나 변조는 너무 쉽지만, 이를 알아내기는 너무 어렵기 때문이다.


- Fragrouter

Fragrouter는 직접 스니핑을 하기보다는 스니핑을 보조해주는 툴로, 받은 패킷을 전달하는 역할을 한다. 스니핑을 하거나 세션을 가로챘을 때 공격자에게 온 패킷을 정상적으로 전달하려면 패킷 릴레이가 반드시 필요하다. 공격 대상의 세션이 끊어지면 계속 사용할 수 없어 공격자도 스니핑을 계속 할 수 없다.



5. ARP 리다이렉트와 ARP 스푸핑


ARP 리다이렉트는 공격자가 자신을 라우터라고 속이는 것이다. 사실 스푸핑이라고 해도 틀린 말은 아니다.

ARP 리다이렉트는 기본적으로 2계층 공격이며, 랜에서의 공격이라는 사실에는 변함이 없다.

이 공격은 위조된 ARP Reply 패킷을 보내는 방법을 사용한다. 자신의 MAC 주소가 라우터라며 주기적으로 브로드캐스트하는 것이다. ARP 스푸핑은 호스트 대 호스트 공격인데, ARP 리다이렉트는 랜의 모든 호스트 대 라우터라는 점 외에는 큰 차이가 없다. ARP 스푸핑처럼 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로 릴레이 해줘야 한다.


6. Sniffing 공격


- 더미 허브로 연결된 공격자와 희생자 사이에서의 Sniffing 공격

> 공격자 : Kali Linux

> 희생자 : Windows 10

> 공격자는 희생자와 같은 네트워크

> 공격자는 스니핑 중

> 희생자는 kitri 아카데미에 ID: kitri, PW: kitri로 로그인

> 공격자는 패킷을 분셕하여 희생자의 ID/PW 획득



Posted by Imp3rio