TCP/IP Network Experimental Programming [패킷 모니터링 실험]

Slides:



Advertisements
Similar presentations
Wireless & Mobile Communication system LAB TinyOS 의 메시지 형식 및 자바 응용 프로그램들 조선대학교 정보통신공학과 변재영 본 자료는 한백전자 교육자료를 이용하여 제작되었음을 밝힙니다.
Advertisements

Chapter 4. 캡처한 패킷 작업 1. 목차  4.1 캡처 파일 작업 ☞ 캡처 된 패킷 저장과 내보내기 ☞ 캡처 된 패킷 병합  4.2 패킷 작업 ☞ 패킷 검색 ☞ 패킷 표시 ☞ 패킷 출력  4.3 시간 표시.
Wireshark 사용법 (주)정보보호기술.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
안성시립도서관 무선랜 사용자 Mac 확인 및 설정방법
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
Network Lab. Byoung-Son, Choi
6 데이터 링크 계층.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
윈도우 네트워크 프로그래밍 √ 원리를 알면 IT가 맛있다 TCP/IP 소켓 프로그래밍 광주대학교 정보통신학과 조 정 호.
3 장 OSI 기본 참조 모델 OSI : Open System Interconnection
ΜIP TCP/IP Stack 이재홍 pyrasis 에 chol.com.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Load Balancing L4와 L7은 어떻게 동작할까?.
ARP의 실험 발표자 : 이직수
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
제 14장 Multicast & Broadcast
무선인터넷 보안기술 컴퓨터공학부 조한별.
UDP (User Datagram Protocol)
Chapter 21 Network Layer: ARP, ICMP (IGMP).
FTP 프로그램 채계화 박재은 박수민.
AC&T SYSTEM ETOS-X 교육자료
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
10 장 데이터 링크 제어(Data Link Control)
4. LAN의 배선체계 (3장. LAN: Local Area Network)
TCP/IP Socket Programming…
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
Wireshark 사용법 (주)정보보호기술.
2장. 인터넷의 개념과 주소.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
ACL(Access Control List)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
김 지 현 기초부터 배우는 TCP/IP 네트워크 제1장 TCP/IP 프로토콜 스택 입문 김 지 현
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
Chapter 01. OSI 계층 모델.
네트워크 프로토콜.
MAIL CLIENT 김창우 윤성훈 이경재.
Network 네트워크 이론 및 실습 TCP / IP 4장.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
Firewall & N-IDS 김창현.
Chapter 27 Mobile IP.
연습 문제 풀이 HTTP 메시지의 종류 요청/ 응답 구별  메소드로 시작되므로 요청 메시지임
뇌를 자극하는 Solaris bible.
라우터의 이해 (보충자료) TCP/IP구성 Ping명령어를 이용한 연결검사 비트와 바이트 10진수/2진수/16진수
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
06. 디바이스의 등록과 해제 김진홍
Network Lab. Young-Chul Hwang
CHAP 15. 데이터 스토리지.
ARP.
Presentation transcript:

TCP/IP Network Experimental Programming [패킷 모니터링 실험] cheol-joo chae cjchae@netwk.hannam.ac.kr

목차 패킷 모니터링의 기초 지식 데이터 링크 액세스 인터페이스 패킷 모니터링

패킷 모니터링의 기초 지식 패킷 모니터링 네트워크 안을 흐르는 패킷을 들여다보는 것을 패킷 모니터링이라함 패킷 모니터링을 위해서는 네트워크 analyzer, LAN analyzer, 프로토콜 analyzer 등의 전용 하드웨어가 필요 Linux, FreeBSD에는 tcpdump라는 패킷 모니터 프로그램이 있음 호스트 A 호스트 B 호스트 C TO : 호스트 C FROM : 호스트 A 내용 C

허브와 어드레스 학습 기능 제한 사항과 문제점

Promiscuous 모드 Promiscuous 모드 보통 NIC의 디바이스 드라이버는 다른 MAC 어드레스 앞에 보내온 Ethernet 프레임을 폐기 이를 위해 패킷을 모니터링해도 다른 프레임을 들여다 볼 수 없음 다른 호스트 앞의 프레임을 폐기하지 않고 상위 층이 받아들이는 모드를 promiscuous 모드라고 함 MAC 어드레스가 어떤 번호로 되어 있을지라도 구별하지 않고 NIC가 패킷을 수신 CPU의 부하 때문에 평상시에는 promiscuous를 사용하지 않음

Promiscuous 모드 Promiscuous 모드

Promiscuous 모드 Promiscuous 모드 Linux인 경우(설정) Linux인 경우(해제) ifconfig 인터페이스명 promisc ifconfig 인터페이스명 - promisc

Promiscuous 모드 Promiscuous 모드 Linux에서 promiscuous 모드가 아닌 경우

Promiscuous 모드 Promiscuous 모드 Linux에서 promiscuous 모드인 경우

데이터 링크 액세스 인터페이스 데이터 링크 액세스 인터페이스 Ethernet 등의 패킷을 애플리케이션 프로그램으로부터 직접처리하기 위해 데이터 링크 액세스 인터페이스를 이용 데이터 링크 액세스 인터페이스를 사용하면 TCP, UDP, IP를 통하지 않고 Ethernet 등의 데이터 링크 헤더를 직접 조작하는 것이 가능 데이터 링크 액세스 인터페이스는 TCP헤더나 IP 헤더, Ethernet 헤더를 전부 자신이 작성하거나 네트워크에서 흘러들어 온 패킷을 전수 수신하고 싶은 경우 사용 패킷 모니터링 프로그램 작성시 데이터 링크에 액세스하기 위한 범용 라이브러리로 pcap을 사용 개발처 URL http://www.lbl.gov 최신버전 URL http://www.tcpdump.org

데이터 링크 액세스 인터페이스 Linux 소켓을 이용하여 데이터 링크에 액세스 Ethernet을 직접 이용해서 패킷을 송수신 하고 싶을 경우 PF_PACKET은 모든 프로토콜을 다루기 위한 프로토콜 패밀리 IP 패킷만들 다룰때 사용 s = socket(PF_PACKET,SOCKET_PACKET, htons(ETH_P_ALL)); s = socket(AF_PACKET,SOCKET_PACKET, htons(ETH_P_IP));

데이터 링크 액세스 인터페이스 BPF(BSD Packet Filter) BSD계열 UNIX에서만 이용할 수 있는 데이터 링크 엑세스 인터페이스 BPF에서는 디바이스 파일을 이용해서 읽기/쓰기를 실행(/dev/bpf0, /dev/bpf1, /dev/bpf2, /dev/bpf3) BPF를 오픈한 경우 패킷을 입출력하는 인터페이스 명의 설정 등은 ioctl 시스템 콜을 사용 BPF를 이용할 때는 write, read 시스템 콜을 사용하여 패킷의 송수신을 실행

패킷 모니터링 ipdump main open_buf (BPF를 오픈한다. FreeBSD의 경우에만) print_ethernet mac_ntoa (MAC 어드레스를 아스키 문자열로 변환한다) print_arp (ARP 패킷을 출력한다) ip_ttoa print_ip (TOS를 아스키 문자열로 변환한다) main (ip 헤더를 출력한다) ip_ftoa (패킷 헤더의 수신, 해석) (FLAG를 아스키 문자열로 변환한다) print_icmp (icmp 헤더를 출력한다) print_tcp tcp_ftoa (tcp 헤더를 출력한다) (control 플래그를 아스키 문자열로 변환한다) print_udp (udp 헤더를 출력한다) print_packet (패킷 내용을 16진수 및 아스키 문자로 표시한다) help (idump 사용 방법을 표현한다)

패킷 모니터링 ipdump 흐름

패킷 모니터링 ipdump 호스트 간의 통신 패킷을 모니터링하고 싶을때는 ifconfig 명령어를 사용하여 promiscuous 모드로 변경 ipdump 실행 서식 -a : 모든 패킷의 정보를 표시, -a를 지정하지 않을 경우에는 Ethernet 타입이 ARP나 IP인 경우만 표시 -e : Ethernet 타입이 ARP나 IP인 경우만 표시, -a를 지정하지 않을 경우에는 Ethernet 타입이 ARP나 IP인 경우만 표시 -d : 패킷의 내용을 16진수와 아스키 문자로 표시합니다. h는 help를 의미하고, 이용 방법을 간단히 표시 -i ifname : 패킷을 읽고 이해하는 인터페이스 명을 지정, 지정하지 않을 경우 lo를 통해서 통신한 패킷도 표시 -p protocol : 표시하고 싶은 패킷을 지정, 지정할 수 있는 패킷은 arp, ip, icmp, tcp, udp ./ipdump [-aedh] [-i ifrname] [-p protocol]

패킷 모니터링 ipdump ipdump 실행 시 Ethernet Frame과 IP Protocol 부분

패킷 모니터링 ipdump ipdump 실행 시 TCP Protocol 부분

패킷 모니터링 ipdump ipdump 실행 시 Ethernet 헤더의 16진수 표현

Tcpdump 네트워크 인터페이스 상에 있는 패킷 중에서 보고자 하는 패킷의 헤더 정보를 보여주는 툴 기대효과 IP의 동작과 네트워크 특성에 관하여 자세히 알 수 있다. 침입탐지나 트래픽 분석을 하여 시스템 ,네트워크 보호가능

Tcpdump 분석 패킷 출력 분석 ① 타임스탬프 (패킷 캡쳐 시간) ② 발신지 주소.포트 ③ 방향 ④ 목적지 주소.포트 15:49:29.286150 218.150.249.113.1047 > caldera.hannam.ac.kr.telnet: . ack 2592955740 win 64226 (DF) 15:49:29.286233 caldera.hannam.ac.kr.telnet > 218.150.249.113.1047: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ① 타임스탬프 (패킷 캡쳐 시간) ② 발신지 주소.포트 ③ 방향 ④ 목적지 주소.포트 ⑤ 플래그 ⑥ 데이터 길이 ⑦ ack 번호 ⑧ 수신측 윈도우 크기 ⑨ DF – Don Fregmentation ⑩ tos  Type Of Service 설정

Tcpdump 옵션 tcpdump –n (도메인  IP) tcpdump –N (도메인을 미출력) tcpdump –O (출력하지 않음) tcpdump: listening on eth0 15:09:19.734337 203.247.39.189.3339 > 203.247.39.78.telnet: . ack 4090693970 win 64061 (DF) 15:09:19.734405 203.247.39.78.telnet > 203.247.39.189.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 15:09:19.934967 203.247.39.189.3339 > 203.247.39.78.telnet: . ack 29 win 64033 (DF) 15:09:19.935034 203.247.39.78.telnet > 203.247.39.189.3339: P 29:226(197) ack 0 win 5840 (DF) [tos 0x10] tcpdump: listening on eth0 15:11:06.074036 roka.3339 > caldera.telnet: . ack 4090696723 win 62878 (DF) 15:11:06.074103 caldera.telnet > roka.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 15:11:06.274677 roka.3339 > caldera.telnet: . ack 29 win 62850 (DF) 15:11:06.274743 caldera.telnet > roka.3339: P 29:198(169) ack 0 win 5840 (DF) [tos 0x10] tcpdump: listening on eth0 15:12:08.974973 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090699461 win 63201 (DF) 15:12:08.975041 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 15:12:09.175618 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 29 win 63173 (DF) 15:12:09.175684 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:250(221) ack 0 win 5840 (DF) [tos 0x10]

Tcpdump 옵션 tcpdump –p (promiscuous 모드 x) tcpdump –q (프로토콜 정보 줄임) tcpdump –R (raw 소켓인터페이스) tcpdump: listening on eth0 15:15:51.586112 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090703410 win 63839 (DF) 15:15:51.586179 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 15:15:51.786760 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 29 win 63811 (DF) 15:15:51.786826 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:250(221) ack 0 win 5840 (DF) [tos 0x10] tcpdump: listening on eth0 15:16:50.373911 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: tcp 0 (DF) 15:16:50.373976 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: tcp 28 (DF) [tos 0x10] 15:16:50.574553 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: tcp 0 (DF) 15:16:50.574615 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: tcp 181 (DF) [tos 0x10] tcpdump: listening on eth0 15:17:46.553380 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090710283 win 63150 (DF) 15:17:46.553446 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 15:17:46.754016 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 29 win 63122 (DF) 15:17:46.754079 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:250(221) ack 0 win 5840 (DF) [tos 0x10]

Tcpdump 옵션 tcpdump –VV (더욱 상세한 정보) tcpdump –t (timestamp 출력하지 않음) tcpdump: listening on eth0 15:25:36.253879 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . [tcp sum ok] 2559335782:2559335782(0) ack 4090726773 win 63775 (DF) (ttl 128, id 19684, len 40) 15:25:36.253946 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P [tcp sum ok] 1:29(28) ack 0 win 5840 (DF) [tos 0x10] (ttl 64, id 63774, len 68) 15:25:36.454517 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . [tcp sum ok] 0:0(0) ack 29 win 63747 (DF) (ttl 128, id 19685, len 40) 15:25:36.454582 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:356(327) ack 0 win 5840 (DF) [tos 0x10] (ttl 64, id 63775, len 367) tcpdump: listening on eth0 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090718523 win 64114 (DF) caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 29 win 64086 (DF) caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:218(189) ack 0 win 5840 (DF) [tos 0x10] tcpdump: listening on eth0 15:23:18.814809 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . [tcp sum ok] ack 4090722148 win 63648 (DF) (ttl 128, id 19620, len 40) 15:23:18.814876 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P [tcp sum ok] 1:29(28) ack 0 win 5840 (DF) [tos 0x10] (ttl 64, id 63727, len 68) 15:23:19.015452 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . [tcp sum ok] ack 29 win 63620 (DF) (ttl 128, id 19621, len 40) 15:23:19.015518 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 29:331(302) ack 0 win 5840 (DF) [tos 0x10] (ttl 64, id 63728, len 342)

Tcpdump 옵션 tcpdump –x (패킷을 16진수로) 15:26:44.772768 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090731756 win 63460 (DF) 4500 0028 4d23 4000 8006 c6b2 cbf7 27bd cbf7 274e 0d0b 0017 988c 5db9 f3d3 9cec 5010 f7e4 3ccd 0000 0000 0000 0000 15:26:44.772836 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 4510 0044 f950 4000 4006 5a59 cbf7 274e cbf7 27bd 0017 0d0b f3d3 9cec 988c 5db9 5018 16d0 0efa 0000 7463 7064 756d 703a 206c 6973 7465 6e69 6e67 206f 6e20 6574 6830 0d0a

Tcpdump 옵션 tcpdump –X (패킷 소켓 인터페이스 사용) 15:26:44.772768 roka.hannam.ac.kr.3339 > caldera.hannam.ac.kr.telnet: . ack 4090731756 win 63460 (DF) 4500 0028 4d23 4000 8006 c6b2 cbf7 27bd cbf7 274e 0d0b 0017 988c 5db9 f3d3 9cec 5010 f7e4 3ccd 0000 0000 0000 0000 15:26:44.772836 caldera.hannam.ac.kr.telnet > roka.hannam.ac.kr.3339: P 1:29(28) ack 0 win 5840 (DF) [tos 0x10] 4510 0044 f950 4000 4006 5a59 cbf7 274e cbf7 27bd 0017 0d0b f3d3 9cec 988c 5db9 5018 16d0 0efa 0000 7463 7064 756d 703a 206c 6973 7465 6e69 6e67 206f 6e20 6574 6830 0d0a

Q & A