Hongfluenza

스니핑(Sniffing) 본문

STUDY/NETWORK

스니핑(Sniffing)

Hongfluenza 2019. 7. 17. 20:25

1> 스니핑(Sniffing)이란?

- 사전적 의미 : '코를 킁킁거리다', '냄새를 맡다'

- 네트워크 상에서 자신이 아닌 다른 상대방의 패킷 교환을 엿듣는 것

- 네트워크 트래픽을 도청하는 과정을 스니핑이라고 할 수 있다.

- 스니핑은 보안의 기본 요소 중 하나인 기밀성을 해치는 공격 방법이다.

- 하나의 시스템이 공격 당하면 그 시스템을 이용하는 네트워크를 도청하게 되고, 다른 시스템의 ID/Password를 알아낼 수 있다.

 

 

2> 프러미스큐어스 모드(Promiscuous Mode)를 통한 스니핑

- 스니핑을 위해 기존의 랜 카드의 모드를 변경하는 것으로서, 이러한 프러미스큐어스 모드를 이해하려면 먼저 이더넷 로컬 호스트의 동작 원리를 이해해야 한다.

리눅스에서 # ifconfig eth0 promisc 명령어를 입력해 프러미스큐어스 모드로 전환한다.

 

※일반적인 LAN카드의 동작 과정

   1> 모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP주소를 갖고 있다.
   2> 패킷이 네트워크에 돌아다닐 때, 각 PC는 자신에게 제대로 전달된 것인지 여부를 패킷에 기록된 MAC·IP주소를 통해 확인한다.
   3> 정상적인 경우 : 자신의 네트워크 카드로 흘러온 패킷이 PC의 IP주소·MAC주소와 일치하면 패킷을 분석하여 OS에 패킷을 전달
   4> IP주소·MAC주소가 일치하지 않는 경우 : 패킷 폐기

 

2.1> 프러미스큐어스 모드 특징

- 네트워크 카드의 동작방식 중 하나로, 패킷을 무조건 수용하는 모드

- 자신에게 온 패킷이 아닌데도 받아들여 처리하는 모드로, 이 모드로 해두면 패킷 목적지에 관계없이 처리할 수 있게 됨.

- 일반적인 랜카드의 동작과는 달리, 프러미스큐어스 모드는 모든 패킷을 버리지 않는다. 

- 스니핑에 있어서 버려지는 패킷까지도 모두 읽기 때문에 이 모드는 스니퍼에게 있어 매우 필요한 모드이다.

 

 

3> TCP DUMP

- 리눅스에서 가장 기본이 되는 스니핑 툴

- 처음부터 스니핑 툴이 아닌 네트워크 관리를 위해 개발되었기 때문에 불법적인 해킹 느낌보다는 관리자 느낌이 강한 스니퍼

- 네트워크의 패킷을 출력해주는 프로그램으로, 주어진 조건식을 만족하는 네트워크 인터페이스를 거치는 패킷들의 헤더들을 출력해주는 프로그램

- 지정된 상대방 호스트로부터 들어오는 패킷을 체크하는 데 주로 쓰인다.

- #tcpdump [option] [expression] (#yum list tepdump로 설치)

 

※Telnet 서버 설치

- #yum install telnet-server
- /etc/xinetd.d/telnet 파일에서 "disable=no"를 설정하여 telnet 이용가능하게 하고,
 "service xinetd start"를 하여 서비스를 시작

 

 

4> Fragrouter

- 스니핑을 보조해주는 툴로, 받은 패킷을 다시 전달해주는 역할을 함

- 스니핑을 하거나 세션을 가로챘을 때 공격자에게 온 패킷을 정상적으로 전달하려면 패킷 릴레이가 필요함

- 공격 대상의 세션이 끊어지면 계속 사용할 수 없게 되므로 공격자 역시 스니핑을 계속 할 수 없다.

- fragrouter는 기본적으로 Kail Linux에 설치되어 있다.

- #fragrouter [-i interface] [-p] [-g hop] [-G hopcount] ATTACK

 

 

5> DSniff

- 자동화된 스니핑 툴. 단순한 스니핑 툴이 아닌 스니핑을 위한 다양한 툴이 패키지처럼 묶여 있음

- SSL(Secure Socket Layer)과 같은 암호화를 쓰는 통신이 안전하다고 생각하나, DSniff는 이렇게 암호화된 계정과 패스워드까지 읽어내는 능력을 가짐

 

※읽어내는 패킷의 종류

- FTP / TELNET / HTTP / POP / NNTP / IMAP / SNMP / RIP / PPTP / MS-CHAP / NFS / YP / NIS+ / SOCKS / X11 / CVS / IRC / ATM / ICQ / PostageSQL / Citrix ICQ / Symatec pcAnywhere / MS SQL / AUTH / INFO

 

※DSniff에 포함되어 있는 툴

- filesnarf : NFS 트래픽에서 스니핑한 파일을 현재 디렉토리에 저장
- macof : 스위치 환경에서 스위치가 허브와 같이 작동하도록 하기 위해 임의의 MAC주소로 스위치의 MAC 테이블을 오버플로우 시킴
- mailsnarf : SNMP와 POP트래픽을 스니핑하여 이메일을 볼 수 있게 해줌. 스니핑한 이메일은 mail 클라이언트에서 볼 수 있음
- msgsnarf : AOL 메신저, ICQ 2000, IRC, Yahoo 메신저 등의 채팅 메시지를 선택해 스니핑함
- tcpkill : 특정 인터페이스를 통해 탐지할 수 있는 TCP 세션을 모두 끊음
- tcpnice : ICMP source quench 메시지를 보내 특정 TCP 연결을 느리게 만듦. 속도가 빠른 네트워크에서 스니핑할 때 유용함
- arpspoof : ARP 스푸핑 공격을 실행
- dnsspoof : DNS 스푸핑 공격을 실행
- urlsnarf : CLF에서 HTTP 트래픽을 스니핑하여 선택된 URL을 알려줌

 

 

6> 허브 · 스위치 환경에서의 스니핑

6.1> 허브(HUB) 환경에서의 스니핑

- 허브(HUB)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터(Repeater) 장비
- 만약 내가 사용하는 시스템이 허브에 연결되어 있다면, 나는 원하든 원하지 않든간에 계속하여 다른 사람의 패킷들을 받아보고 있던 것이다.

 

6.2> 스위치(SWITCH) 환경에서의 스니핑

- 과거 허브를 사용하던 시기에는 브로드캐스트 도메인의 특성으로서 랜에서 오는 모든 신호를 복사해 모든 포트에 뿌려주므로 보안상 치명적이었음
- 허브를 개선한 스위치는 무조건 패킷을 보내는 네트워크의 대역폭 낭비를 막기위해 개발됨
- 허브와는 달리 스위치는 MAC주소 테이블이 존재하여 포트별로 MAC주소 값이 할당되므로 그 곳에만 전파를 함
- 따라서 허브와는 달리 보안상 아주 좋은 장비라고 볼 수 있으나 역시 스위치 환경에서 스니핑하는 방법은 존재함
(스위치 재밍, APR Redirect, ICMP Redirect, SPAN Port 설정 등 … )

 

 

7> 스위치 재밍(Switch Jamming)

- 스위치가 MAC 주소 테이블을 기반으로 포트에 패킷을 스위칭 할 때 정상적인 스위칭을 하지 못하도록 하는 공격
- MACOF 공격이라고도 불림
- 스위치의 특징을 이용해 정상적으로 스위칭하지 못하도록 함

   1. 스위치가 관리하는 MAC 주소 테이블에 정보가 모두 입력되어 테이블이 가득차면 허브처럼 패킷을 브로드캐스트 함

   2. 공격자는 위조된 MAC 주소를 계속해서 스위치에 보내고, 스위치는 위조된 MAC 주소로 테이블을 채움

   3. MAC 테이블을 오버플로우 시키면 브로드캐스트로 인해 공격자가 모든 패킷을 받을 수 있음(스니핑 가능)

 

 

8> ARP Redirect(ARP 리다이렉트)

- 공격자가 자신을 라우터라 속여 공격하는 기법

- 2계층 공격

- 위조된 ARP Reply를 주기적으로 브로드캐스트함으로써 주변 기기들이 공격자를 라우터로 인식하도록 만들고 외부로 전달되는 모든 패킷을 공격자에게 전달되도록 함

- 공격자는 자신이 공격자인 사실을 숨기기 위해 주변 기기들은 정상 응답을 받아야하므로 공격자는 스니핑 이후 패킷을 IP Forwarding으로 게이트웨이에 전달해주어야 함

 

 

9> ICMP Redirect(ICMP 리다이렉트)

ARP Redirect 공격과 동일하게 공격자가 라우터로 인식되도록 하는 공격방법

- ICMP Redirect 메시지 : 호스트-라우터 또는 라우터 간에 라우팅 경로를 재설정하기 위해 전송하는 메시지

- 호스트가 특정한 목적지로 가는데 없어지거나 최단거리가 아닌 경로를 사용할 때, ICMP 리다이렉트 패킷은 라우터를 통해 호스트에게 최선의 경로를 알려주는 데 사용된다.

- 공격자는 특정 IP 또는 대역으로 나가는 패킷의 라우팅 경로를 자신의 주소로 위조한 ICMP Redirect 메시지를 생성하여 희생자에게 전송함으로서 패킷을 스니핑하는 방법

- 만약 공격자가 ICMP 리다이렉트 패킷을 위조할 수 있다면 호스트의 라우팅 테이블을 변경하여 특정한 트래픽이 의도하지 않은 경로를 경유하도록 만드는 방식으로 보안 문제를 야기할 수 있는데, 이런 문제를 예방하기 위해 서버의 모든 인터페이스에서 ICMP 리다이렉트 허용 기능을 차단함

일반적인 Redirect 작동 원리

1> 호스트 A에 라우터 A가 기본 라우터로 설정되어 있기 때문에, 호스트 A가 원격 호스트 B로 데이터를 보낼 때 패킷을 라우터 A로 보낸다.
2> 라우터 A는 호스트 B로 보내는 패킷을 수신하고 라우팅 테이블을 검색하여 자신을 이용하는 것보다 라우터 B를 이용하는 것이 더 효율적이라고 판단하여 해당 패킷을 라우터B로 보낸다.
3> 라우터 A는 호스트 B로 향하는 패킷을 호스트 A가 자신에게 다시 전달하지 않도록, 호스트 A에 리다이렉트 패킷을 보내 호스트 A가 호스트 B로 보내는 패킷이 라우터 B로 바로 향하도록 한다.
4> 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고, 호스트 B로 보내는 패킷은 라우터 B로 전달한다.

 

10> SPAN 포트 태핑(Port Mirroring)

- 스위치의 포트 미러링(Port Mirroring) 기능을 이용한 공격방법

- 포트 미러링 : 각 포트에 전송되는 데이터를 미러링하는 포트에도 동일하게 전달하는 것으로, 침입 탐지 시스템, 네트워크 모니터링, 로그시스템 등에 많이 사용됨

- 따라서 스위치의 SPAN 포트는 스위치를 통과하는 모든 트래픽을 볼 수 있는 포트로 관리적인 목적으로 사용되지만, 공격자가 트래픽을 스니핑하기 좋은 장소를 제공해줌

 

 

11> 스니퍼 대응책[스니핑 탐지법]

11.1> ping을 이용한 방법

1. 대부분의 스니퍼는 일반 TCP/IP에서 동작한다. 이를 이용하여 의심이 가는 호스트에 ping을 보내는데, 존재하지 않는 MAC주소로 위장하여 보낸다.
2. ping은 ICMP프로토콜에서 해당 호스트까지 reachable한지를 검사하는 신호
- 정상적인 경우 : MAC주소가 유효하지 않으므로 응답이 오지 않음
- 스니핑용 호스트 : MAC주소와 무관하게 모든 정보를 전부 수신받으므로 ICMP에서 정상적으로 reach했다는 뜻의 Echo Reply를 보냄

 

 

11.2> ARP를 이용한 방법

기본적으로 TCP/IP에서는 자신을 거쳐가더라도 목적지가 자신이 아니라면 수신하지 않는 것이 일반적임 → 랜카드를 조작하여 목적지가 어디든 무조건 수신하도록 옵션을 줄 수 있는데, 이러한 옵션을 프러미스큐어스 모드라 한다.

 

이러한 랜카드를 사용하는 호스트를 찾기 위해 그 어느 호스트도 목적지가 아닌 조작된 ARP Request를 보냈는데 응답이 온다면 프러미스큐어스 모드를 사용하고 있는 것이다.

 

 

11.3> DNS를 이용한 방법

보통 DNS 서버에서는 도메인 이름을 이용해 호스트의 IP를 얻기 위한 DNS lookup요청이 많다. 반대로, 호스트의 IP를 이용해서 도메인을 알고자 하는 DNS inverse lookup 요청은 많지 않은데, 스니핑 프로그램에서는 사용자의 편의를 위해 inverse lookup을 요청하는 경우가 많다. 로그 등에 도메인명을 출력해줘야 보기가 편하기 때문이다.
inverse lookup을 한다고 다 악성 프로그램은 아니나, 이를 통해 용의선상을 줄일 수 있다. 테스트 대상 네트워크로 ping sweep을 보내고 inverse lookup을 감시하여 스니퍼를 탐지한다.

 

 

11.4> 유인(Decoy)

스니핑 공격자의 주요 목적은 계정과 패스워드 획득에 있다.
이를 이용해 가짜 계정과 패스워드를 네트워크에 뿌린 후 이 계정과 패스워드를 이용해 접속을 시도하는 호스트를 탐지한다.

 

 

11.5> ARP Watch

스니퍼는 정보가 자신에게 수신되거나 거쳐가도록 조작하기 위해 ARP테이블을 변경하려 할 수 있다.
ARP 업데이트가 항상 비정상적인 행위는 아니지만 초기 MAC주소와 IP주소의 대칭 값은 저장한 후 ARP 트래픽을 모니터링하여 이를 변하게 하는 이상 패킷이 발견되면 관리자에게 알려줌으로써 스니핑을 미연에 감지할 수 있다.

 

 

...더보기

출처

https://marcof.tistory.com/7

 

스니핑 (Sniffing)

- 스니핑이란 단어의 사전적 의미는 '코를 킁킁거리다', '냄새를 맡다'등의 뜻이 있다. - 사전적인 의미와 같이 해킹 기법으로서 스니핑은 네트워크 상에서 자신이 아닌 다른 상대방의 패킷 교환을 엿듣는 것을 의..

marcof.tistory.com

https://sonseungha.tistory.com/485

 

[정보보호개론] 스니핑 (Sniffing)

스니핑 공격 기법 (Sniffing) 스니핑 공격 기법에 대해 정리해보려 합니다. 스니핑 공격은 공격대상에게 직접적으로 공격을 하지 않고 데이터만 몰래 들여다 보는 수동적 공격기법입니다. 간단히 스니핑 공격의 원..

sonseungha.tistory.com

https://raisonde.tistory.com/entry/%EC%8A%A4%EB%8B%88%ED%8D%BC-%EB%8C%80%EC%9D%91%EC%B1%85%EC%8A%A4%EB%8B%88%ED%95%91-%ED%83%90%EC%A7%80%EB%B2%95

 

스니퍼 대응책(스니핑 탐지법)

여러 보안 책자에 그대로 있는 내용이고 인터넷에도 많은 내용이지만 기반 지식 없이 보면 이해가 잘 되지 않고 단순 암기에 지날 수 밖에 없는 간략화된 내용들이라 좀더 살을 붙여서 포스팅 하겠다. ① Ping 을..

raisonde.tistory.com

https://m.blog.naver.com/PostView.nhn?blogId=sungok2000&logNo=110109155850&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

ICMP 리다이렉트

ICMP 리다이렉트 :ARP 스푸핑과 비슷한 공격이다. 일반적인 네트워크에서는 게이트웨이가 하나지만 ...

blog.naver.com

 

'STUDY > NETWORK' 카테고리의 다른 글

스푸핑(Spoofing) : ARP Spoofing, DNS Spoofing, IP Spoofing, E-mail Spoofing  (0) 2019.07.21
ARP Redirect 실습  (0) 2019.07.18
포트 스캐닝(Port Scanning)  (0) 2019.07.15
Tracert  (1) 2019.07.11
Ping  (0) 2019.07.11