카테고리 없음

해킹 실습(Sniffing)

boangod 2025. 9. 16. 21:06

스니핑

 

■ 네트워크상에서 자신을 목적으로 하지 않는 패킷을 탐지하는 행위

• 프러미스큐어스 모드(Promiscuous mode) → 랜카드를 이걸로 바꾼다.(랜카드가 내가 목적지가 아닌 패킷도 받아서 상위레이어로 전송하는 모드)

• 랜카드가 자신이 목적지가 아닌 패킷을 상위 레이어로 전송하는 모드

• 유닉스는 OS 레벨에서 제공한다.

• 고가용성 패킷 스니핑 장비는 네트워크 감시와 분석을 위해서 사용된다.

 

 

프러미스큐어스 모드(Promiscuous mode)

# ip link set dev [NIC] promisc on/off

on : 활성화

off : 비활성화

 

일반 네트워크에서는 arp스푸핑을 안하면 스니핑을 할 수가 없다

nat에서는 그냥 가만 있어도 스니핑이 된다.

 

 

다양한 스니핑 프로그램

• 와이어샤크, TCPDUMP…

 

 

■ 캡쳐를 위한 필수 라이브러리 : Pcap, WinPcap

• 프러미스큐어스 모드(Promiscuous mode)에서 패킷에 대한 캡처를 진행한다.

• windows의 경우 OS레벨에서 프러미스큐어스 모드를 지원하지 않는다.

 

Tcpdump

 

■  기능

• 이더넷의 모든 패킷을 다양한 형식으로 캡처한다.

  • 시스템들 사이에 송수신되는 패킷 헤더 혹은 패킷 전체 캡처
  • 특정 포트번호 (혹은, 특정 서비스)로 송수신되는 패킷 헤더 혹은 패킷 전체를 캡처
  • 캡처된 내용을 특정 파일에 저장할 수 있다.

■ 설치 확인

# dnf list tcpdump

# dnf install -y tcpdump

 

■ 명령

# tcpdump -[옵션 값], …

 

EX)

basic                                 tcpdump -i eth0 -X

IP                                      tcpdump -i eth0 -X host 192.168.0.10

src IP                                tcpdump -i eth0 -X src 192.168.0.10

dst IP                                tcpdump -i eth0 -X dst 192.168.0.10

port 번호                           tcpdump -i eth0 -X port 80

TCP                                  tcpdump -i eth0 -X tcp

UDP                                 tcpdump -i eth0 -X udp

ICMP                               tcpdump -i eth0 -X icmp

다중필터                           tcpdump -i eth0 -X src 192.168.0.10 and port 22

패킷 개수 지정                  tcpdump -i eth0 -X -c 100

파일로 저장                      tcpdump -i eth0 -w capture.pcap

파일 읽기                         tcpdump -r capture.pcap

 

옵션

  • v,vv,vvv : 좀 더 많은 정보들을 출력한다.
  • w : 캡쳐한 패킷들을 파일에 저장한다.
  • X : 패킷의 내용을 16진수와 ASCII코드로 보여준다.
    - XX : ethernet header를 포함한다.
  • x : 패킷의 내용을 16진수로 보여준다.
    - xx : ethernet header를 포함한다.
  • q : 프로토콜 정보를 간략하게 보여준다.
  • r file : 패킷들을 '-w'옵션으로 만들어진 파일로부터 읽어 들인다.
  • A : 패킷의 내용을 ASCII 코드로 표시한다.
  • a : Network & Broadcast 주소들을 이름들로 바꾼다.
  • c Number : 제시된 수의 패킷을 받은 후 종료한다.
  • D : 캡처에 사용할 인터페이스를 보여준다.
  • e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다.

 

 

Tcpdump를 이용한 스니핑으로 id, 비밀번호 알아내기

 

kali에 tcpdump다운 확인

centos7에 telnet server, telnet 다운로드

 

centos7

groupadd -g 3000 st10

useradd -u 3001 -g 3000 st10

yum install -y telnet

yum install -y telnet-server

systemctl start telnet.socket

systemctl enable telnet.socket

 

window xp 텔넷 접속

telnet 192.168.11.17 23

 

kali에서 tcpdump 실행

tcpdump -i eth0 -X src 192.168.11.7 and dst 192.168.11.17

 

 

 

id

21:33:24.348159 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [P.], seq 1449765643:1449765644, ack 2426070582, win 64134, length 1
        0x0000:  4500 0029 01d9 4000 8006 618d c0a8 0b07  E..)..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0b 909a e636  ........Vi.....6
        0x0020:  5018 fa86 2e6b 0000 7300 0000 0000       P....k..s.....
21:33:24.487590 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [.], ack 2, win 64133, length 0
        0x0000:  4500 0028 01da 4000 8006 618d c0a8 0b07  E..(..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0c 909a e637  ........Vi.....7
        0x0020:  5010 fa85 a173 0000 0000 0000 0000       P....s........

21:33:32.796422 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [P.], seq 1:2, ack 2, win 64133, length 1
        0x0000:  4500 0029 01db 4000 8006 618b c0a8 0b07  E..)..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0c 909a e637  ........Vi.....7
        0x0020:  5018 fa85 2d6a 0000 7400 0000 0000       P...-j..t.....
21:33:32.910239 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [.], ack 3, win 64132, length 0
        0x0000:  4500 0028 01dc 4000 8006 618b c0a8 0b07  E..(..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0d 909a e638  ........Vi.....8
        0x0020:  5010 fa84 a172 0000 0000 0000 0000       P....r........

21:33:40.553984 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [P.], seq 2:3, ack 3, win 64132, length 1
        0x0000:  4500 0029 01dd 4000 8006 6189 c0a8 0b07  E..)..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0d 909a e638  ........Vi.....8
        0x0020:  5018 fa84 7069 0000 3100 0000 0000       P...pi..1.....
21:33:40.673235 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [.], ack 4, win 64131, length 0
        0x0000:  4500 0028 01de 4000 8006 6189 c0a8 0b07  E..(..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0e 909a e639  ........Vi.....9
        0x0020:  5010 fa83 a171 0000 0000 0000 0000       P....q........

21:33:41.978068 IP 192.168.11.7.1043 > 192.168.11.17.telnet: Flags [P.], seq 3:4, ack 4, win 64131, length 1
        0x0000:  4500 0029 01df 4000 8006 6187 c0a8 0b07  E..)..@...a.....
        0x0010:  c0a8 0b11 0413 0017 5669 ab0e 909a e639  ........Vi.....9
        0x0020:  5018 fa83 7168 0000 3000 0000 0000       P...qh..0.....

 

 

password

21:35:47.216980 IP 192.168.11.7.1044 > 192.168.11.17.telnet: Flags [P.], seq 359120896:359120897, ack 56208         1859, win 64118, length 1
        0x0000:  4500 0029 01f8 4000 8006 616e c0a8 0b07  E..)..@...an....
        0x0010:  c0a8 0b11 0414 0017 1567 c000 2180 b043  .........g..!..C
        0x0020:  5018 fa76 4195 0000 3100 0000 0000       P..vA...1.....
21:35:48.752932 IP 192.168.11.7.1044 > 192.168.11.17.telnet: Flags [P.], seq 1:2, ack 1, win 64118, length          1
        0x0000:  4500 0029 01f9 4000 8006 616d c0a8 0b07  E..)..@...am....
        0x0010:  c0a8 0b11 0414 0017 1567 c001 2180 b043  .........g..!..C
        0x0020:  5018 fa76 4094 0000 3200 0000 0000       P..v@...2.....

 

id, 비밀번호를 확인할 수 있다.

 

 

 

Dsniff

■  DSniff는 스니핑을 위한 자동화 도구다. 많이 알려진 툴이며, 단순한 스니핑 도구가 아니라 스니핑을 위한 다양한 툴이 패키지처럼 만들어져 있다.

■  한국계 미국인 송덕준이 개발한 해킹도구.

■  미국 연방수사국(FBI)의 범죄 용의자 추적용인 카니보어(carnivore), 이 카니보어에 맞서 기 위해 해커들이 개발한 알트보어(altvore)와 함께 대표적인 스니핑(sniffing) 소프트웨 어로 꼽힌다.

■  Dsniff가 지원하는 프로토콜

     • ftp, telnet, http, pop, nntp, imap, snmp, ldap, rlogin, rip, ospf, pptp, ms-chap, nfs, yp/nis+, socks, x11, cvs, IRC, ATM, ICQ, PostageSQL, Citrix ICA, Symantec pcAnywhere, M.S. SQL, auth, info

■ kali Linux 기본 설치

■ DSNiff를 사용하면 위에 실습에서 했던 것들을 바로 알 수 있다.

 

 

filesnarf                        NFS 트래픽에서 스니프한 파일을 현재 디렉토리에 저장한다.

macof                          스위치를 허브와 같이 작동하게 하기 위하여 임의의 MAC 주소로 스위치의 MAC 테이블을 오버플로우                                            (Overflow)시킨다. mailsnarf SNMP와 POP 을 스니프하여 이메일을 볼 수 있게 해 준다.

msgsnarf                      채팅 메시지를 스니핑한다.

tcpkill                           탐지할 수 있는 TCP 세션을 모두 끊는다.

tcpnice                         ICMP source quench 메시지를 보내 특정 TCP 연결을 느리게 만든다. 속도가 빠른 네트워크에서 스니프                                      할 때

arpspoof                      ARP 스푸핑 공격을 실행한다.

dnsspoof                     DNS 스푸핑 공격을 실행한다.

urlsnarf                       CLF(Common Log Format)에서 HTTP 트래픽을 스니핑하여 선택된 URL을 알려준다.

 

 

 

실습

┌──(root㉿kali)-[~]

└─# dsniff dsniff: listening on eth0

09/15/25 22:30:42 tcp 192.168.11.7.1045 -> 192.168.11.17.23 (telnet)

st10

12

exit

 

그냥 간단하게 나온다.

 

 

 

스위칭 환경에서 스니핑

 

 

스위칭 허브는 그냥 스니핑 하기 어렵다. 날 목적지로 안 하는 패킷은 안오기 때문.(버려서)

 

■ 스위칭 환경에서는 기본적으로 스니핑이 어렵다. 스위치는 2 계층 장비다. 2계층 네트워크에서는 원래 허브가 쓰였다. 허브는 랜에서 들어오는 모든 신호를 복사해서 모든 포트에 다시 뿌려주는 역할을 한다. 따라서 브로드캐스트(Broadcast) 패킷인지 유니캐스트(Unicast) 패킷인지에 상관없이 모든 포트에 보내주므로 스니퍼에게 스니핑을 이용한 공격은 간단하다.

 

■  스위치는 포트별로 MAC 주소 값이 기록하여 브로드캐스트 패킷을 제외한 모든 패킷은 그 패킷 이 목적하는 장비에만 보낸다. 스위치는 스니핑을 막기 위해 만들어진 장비는 아니지만 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었다.

 

 

■  ARP 리다이렉트(arp스푸핑이다. 이거도)(리다이렉트→ 라우터가 포함된 공격)

ㄴ 라우터를 대상으로 하는 것

• ARP 리다이렉트 공격은 기본적으로 2 계층에서 실시된다. 공격은 위조된 ARP reply 패킷을 보내는 방법을 사 용한다. 자신의 MAC 주소가 라우터라며 브로드캐스트를 주기적으로 하는 것이다.

• ARP 스푸핑는 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라우터라는 것 말고는 큰 차이점이 없다. ARP 스푸핑에서와 마찬가지로 공격자 자신만은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로 릴레이해 주어야만 한다

 

 

Fragrouter

- fragrouter는 스니핑을 보조하는 도구

- 스니핑에 의해 패킷이 목적지에 도달하지 못하는 상황을 방지

ㄴ 백그라운드로 띄우면 안 됨. 창을 별도로 만들어서 실행해야 한다.(반드시)

 

 

arp spoofing 실습

 

Kali Linux에 Fragrouter 다운

 

# apt install fragrouter

 

fragrouter를 실행

# fragrouter -B1

 

arpspoof를 이용 arp 리다이렉트 공격을 실행

 

# arpspoof -i eth0 -t 192.168.11.7 192.168.11.17

# arpspoof -i eth0 -t 192.168.11.17 192.168.11.7

ㄴ 각각 다른 세션에서 실행

 

공격 대상 시스템의 arp 테이블을 확인

 

공격자의 mac주소(11.36)와 통신하려는 mac주소(11.17)가 같은 것을 확인할 수 있다.

이렇게 arp스푸핑이 적용된 걸 확인할 수 있다.