본문 바로가기
스누핑&스푸핑

스니핑

by paysmile 2016. 7. 19.

-스니핑(sniffing)

네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나. 수동적 공격(자신이 공격을 하는게 아니라 가만히 엿듣는다의 의미로....)에 해당하며, 도청할 수 있도록 설치되는 도구를 스니퍼(sniffer)라고 한다. 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있다. 스니핑은 매우 막기 힘든 공격으로 알려져 있는데 탐지가 쉽지 않을 뿐더러, 공격할 때 아무 것도 하지 않고 조용히만 있어도 되기 때문이다. 즉, 관리자가 공격자를 탐지하기도 어렵지만, 공격자도 스스로가 노출되었는지에 대한 여부도 알 수 없다. 네트워크 내의 패킷들은 대부분 암호화되어 있지 않아 해킹에 이용당하기 쉽기 때문에 이를 보완하는 여러 기법이 개발되고 있다. 스니핑을 예방할 수 있는 가장 좋은 방법은 데이터를 암호화하는 것이다.

+ 스니핑은 특정 컴퓨터는 물론이고 컴퓨터가 속해있는 네트워크 전체를 해킹하는 컴퓨터들공격이다. 네트워크에서 컴퓨터들은 허브를 통해 연결되는데, 이 허브가 일반 허브인지 스위칭 허브인지에 따라 공격방법이 달라짐

스니핑 공격

스니핑을 시작하기 전, LAN 카드를 스니핑이 가능한 Promiscuous mode로 전환해야 한다. 정상적인 경우, 자신의 네트워크로 흘러들어온 패킷이 PC의 IP주소와 MAC주소가 각각 일치하다면 패킷을 분석하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버린다. 하지만, 스니핑을 할 때, 다른 패킷이라도 패킷을 버리지 않고 흘러들어온 모든 패킷을 읽어야 한다, 그러기 위해 LAN 카드를 Promiscuous mode로 전환시켜 주어야 한다. 

LAN카드는 설정된 IP주소와 고유한 MAC주소를 가지고 있다. 자신과 같은 주소값만 받아들이고 저장하기 때문에, 자신의 주소값을 무시하고 모든 패킷을 받아들이는 상태를 Promiscuous mode(무차별 모드)라고 한다.

*프러미스큐어스(promiscuous) 모드

네트워크에 존재하는 모든 패킷은 주소를 가지고 있습니다. 네트워크카드(NIC)는 패킷에 기록된 주소를 확인하여 자신에게 전달된 패킷이면 수용하고 그렇지 않으면 아무것도 하지 않습니다. 하지만 NIC를 promiscuous모드로 동작을 시키면 주소와 상관없이 모든 패킷을 수용하게 됨 > 여기서 '수용'이란 패킷을 3계층인 네트워크 계층에서 확인이 가능하다는 의미

*허브 환경

허브는 유입된 패킷을 유입된 포트를 제외한 모든 포트에 전달하게 됨. 패킷을 수신받은 컴퓨터는 NIC 또는 OS에서 MAC 을  확인하고 자신의 MAC주소와 같으면 수용을 하고 그렇지 않으면 무시하게 됨. 하지만 NIC  promiscuous모드를 설정하면 MAC 주소와 상관없이 모든 패킷을 수용하게 되고, 컴퓨터에 설치된 스니퍼로 확인이 가능하게 됨

*스위칭 허브 환경

-스위칭 허브는 MAC주소를 확인하여 MAC 주소가 일치하는 NIC가 연결된 포트로만 패킷을 보낸다. 따라서 NIC의  promiscuous모드를 설정하였더랃 자신에게 보내지는 패킷이 아니면 수신할 수 없게 된다. 그렇다고 스위칭 허브 환경에서 스니핑은 불가능한 것은 아님> 스위칭 허브 환경에서 대표적인 스니핑 방법은 Switch jamming, ARP Redirect, ICMP Redirect, MAC 스푸핑 등이 있음

- 스니핑 공격기법

1. Switching jamming

스위치에 랜덤한 형태로 생성한 MAC 주소를 가진 패킷을 무한대로 보내 면 스위치의 MAC 테이블은 자연스레 저장 용량을 넘고, 스위치는 원래 기능을 잃고 더미 허브처럼 작동하게 됩니다. 그리고 스위치가 더미 허브 와 똑같이 작동하면 공격자는 ARP 스푸핑이나 ICMP 리다이렉트처럼 패 킷이 굳이 자기에게 오게 할 필요가 없어집니다.

2.ARP Redirect

공격자가 라우터(gate way)의 MAC 주소를 자신의 MAC 주소로 위조된 ARP reply를 해당 네트워크에 지속적으로 broadcast하면 해당 네트워크에 속한 호스트들의 ARP Cache Table 에서 라우터의 MAC 주소가 공격자의 MAC주소로 변경되어 각 호스트들로부터 전송되는 데이터를 스니핑하는 기법

+ARP Spoofing과의 차이점

-ARP Spoofing은 특정 호스트를 대상으로 하지만 ARP Redirect는 해당 네트워크의 전체를 대상으로 한다.

3. ICMP Redirect

 ICMP는 네트워크 흐름을 통제하기 위한 프로토콜이다. 그중에서도 ICMP Redirect 메시지는 라우터가 호스트에게 더 좋은 경로가 있다고 알려주기 위해 사용된다. 공격자는 이를 이용해서 공격대상의 라우팅 테이블을 바꿀 수 있고, 데이터를 스니핑 할 수 있게 되는 것이다.

위 그림에서 공격자 (BT)는 자신을 라우터로 속이기 위해서 XP (공격대상)에게 ICMP Redirect를 보낼 것이다. 그러면 XP는 실제 라우터가 아닌 BT에게 데이터를 전송함

-SSL 스니핑

SSL은 Secure Socket Layer의 약어이다.

레이어 = 계층

즉 보안에 관련된 역할을 해주는 계층을 둔다는 것이다.

이게 뭐냐고? 하며 어려운 사람이 있을 수 있는데

지금 주소창에 www.facebook.com 을 접속해보라.

그리고 새창에서 www.naver.com 을 해보고 뭐가 다른지 보길 바란다.

http와 https 명백히 보인다.

 

https를 사용하게 되면

클라이언트와 서버가 그 둘만의 키를 가지게 되고 아무도 열 수 없는 상자에 넣어서 정보를 주고 받는다. SSL 스니핑은 https를 못하게 하여 데이터를 상자에 넣지 못하게 하여 도청하는 방법을 말한다.

SSL 스니핑 동작 과정

 

 

 

 

[출처] 스니핑과 스푸핑에 대한 전반적인 지식|작성자 홀인원

<리눅스>

# ifconfig eth0 promisc의 명령을 입력해 프러미스큐어스 모드로 전환한다.

 

<Tcp Dump>

Tcp Dump란 리눅스에서 가장 기본이 되는 스니핑 툴이다. 불법 해킹보다는 관리자의 느낌이 강하며, 네트워크 관리를 위해 개발되었다.

Tcp Dump를 이용해 Telnet에 접속시 , 계정과 패스워드 스니핑하기!!!

(1)# yum list tcpdump

    yum list tcpdump로 설치여부를 확인한 후, 설치되어 있지 않다면 # yum install tcpdump로 설치한다.

(2)# tcpdump -xX

    tcpdump 실행

(3)텔넷에 접속해서 tcpdump로 패킷을 감지할 수 있다.

 

<Fragouter>

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

(1)fragouter설치

# tar xvzf fragouter-1.6.tar.gz

# ./configure

# make        →  설치 종료     

# ./fragouter  →  실행 가능한 옵션 확인 후 선택

 

<Dsniff>

스니핑을 위한 자동화 툴. 스니핑을 위한 다양한 툴이 패키지처럼 만들어져 있다.  Dsniff Tool은 한국계 미국인인 미국 미시건 대학교의 송덕준 교수가 개발했다. dsniff은 암호화된 계정과 패스워드까지 읽어내는 능력이 있다, dsniff가 읽을 수 있는 패킷의 종류는 여러가지가 있다.(FTP, Telnet, http, pop, nntp, imap, snmp, idap......) 

(1)Dsniff 설치

# yum list dsniff로 설치 여부 확인 후, 설치되어있지 않을 시 # yum install dsniff.x86_64로 설치

(2)텔넷 패스워드 스니핑

클라이언트에서 dsniff를 실행해 두고, 다른 터미널에서 서버에 FTP와 Telnet을 이용해 로그인하면 아이디와 패스워드가 잡힌다, 텔넷에서 입력한 명령어도 잡힌다.

그 밖에 dsniff에 포함되어 있는 툴은 여러 종류가 있다, (dsniff에 대해선 다음에 조금 더 자세하게 알아보자.)

스니퍼의 탐지

스니퍼에 대한 탐지는 스니퍼가 프러미스큐어스 모드에서 작동한다는 것 을 이용합니다.

Ping을 이용한 스니퍼 탐지

대부분의 스니퍼는 Request를 받으면 Response를 전달합니다. 이를 이용해 의심이 가는 호스트에 MAC 주소를 위장하여 ping을 보냅니다. 만약 ping에대한 응답을 받으면 해당 호스트가 스니핑을 하고 있는 것을 알 수 있게 됩니다. 왜냐하면 존재하지 않는 MAC 주소를 사용했으므로 스니핑을 하지 않는 호스트는 Ping Request를 볼 수 없는 것이 정상이기 때문입니다.

 

ARP를 이용한 스니퍼 탐지

ping과 유사한 방법으로 위조된 ARP Request를 보냈을 때 ARP Response가 오면 프러미스큐어스 모드로 설정되어있는 것을 알 수 있습니 다.

유인을 이용한 스니퍼 탐지

스니핑 공격을 하는 공격자의 주요 목적은 ID 와 패스워드 획득에 있습니 다. 따라서 보안 관리자는 이 점을 이용해 가짜 ID와 패스워드를 네트워크 에 계속 뿌리고 공격자가 이 ID와 패스워드를 이용하여 접속을 시도할 때 스니퍼를 탐지하는 방법입니다.

'스누핑&스푸핑' 카테고리의 다른 글

스푸핑2  (0) 2016.07.19
스푸핑1  (0) 2016.07.19