đồ án ứng dụng giao thức ICMP để xây dựng chương trình scan IP

28 362 2
đồ án ứng dụng giao thức ICMP để xây dựng chương trình scan IP

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Bộ môn Mạng Truyền Thông NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN …………………………………………………………………………………… … ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP ……………………………………………………………………………………… …………………………………………………………………………………… MỤC LỤC CHƯƠNG I: I CƠ SỞ LÝ THUYẾT Giới thiệu TCP/IP Các lớp mơ hình TCP/IP .4 Các bước đóng gói liệu mơ hình TCP/IP .5 Một số giao thức mô hình TCP/IP II Giao thức ICMP 11 Giới thiệu ICMP 11 Cấu trúc 12 Danh sách thông điệp điều khiển giao thức ICMP 12 CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 16 I Phân tích u cầu 16 II Phân tích chức 16 Phương thức hoạt động ứng dụng: .16 Xây dựng chức năng: 16 III Xây dựng chức 17 CHƯƠNG III: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 19 I Môi trường triển khai 19 Hệ thống .19 Phần mềm 19 II Kết chức chương trình: 19 Giao diện chương trình: .19 Chức quét địa chương trình: 20 Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Bộ mơn Mạng Truyền Thơng DANH MỤC HÌNH VẼ Hình 1.1 Mơ hình TCP/IP Hình 1.2 Các bước đóng gói mơ hình TCP/IP Hình 1.3 Các giao thức khác TCP/IP Hình 1.4 ARP Header Hình 1.5 IP Header Hình 1.6 Vị trí ICMP message Hình 1.7 ICMP Header Hình 1.8 IGMP Header .8 Hình 1.9 UDP Header Hình 1.10 Cách thiết lập kết nối giao thức 10 Hình 1.11 Truyền, nhận gói tin TCP 10 Hình 2.1 Cấu trúc gói tin ICMP 12 Hình 3.1 Chương trình trước quét 19 Hình 3.2 Quét dãy địa mà người dùng nhập vào 20 Hình 3.3 Chức quét theo lớp .20 Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP CHƯƠNG I: CƠ SỞ LÝ THUYẾT I Giới thiệu TCP/IP Các lớp mô hình TCP/IP Hình 1.1 Mơ hình TCP/IP Mơ hình tham chiếu TCP/IP tương tự kiến trúc OSI, sau số tính chất lớp mơ hình tham chiếu TCP/IP: Lớp Application: quản lý giao thức, hỗ trợ việc trình bày, mã hóa quản lý gọi Lớp Application hỗ trợ nhiều ứng dụng, : FTP (File Transfer Protocol), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), DNS (Domain Name System), TFTP (Trivial File Transfer Protocol) Lớp Transport: đảm nhiệm việc vận chuyển từ nguồn đến đích Tầng Transport đảm nhiệm việc truyền liệu thông qua hai nghi thức: TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Lớp Internet: đảm nhiệm việc lựa chọn đường tốt cho gói tin Nghi thức sử dụng tầng nghi thức IP (Internet Protocol) Lớp Network Interface: có tính chất tương tự như hai lớp Data Link Physical kiến trúc OSI Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Bộ mơn Mạng Truyền Thơng Các bước đóng gói liệu mơ hình TCP/IP Hình 1.2 Các bước đóng gói mơ hình TCP/IP Một số giao thức mơ hình TCP/IP Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP Hình 1.3 Các giao thức khác TCP/IP a Giao thức ARP (Address Resolution Protocol) giao thức RARP (Reverse Address Resolution Protocol) Trên mạng cục hai trạm liên lạc với chúng biết địa MAC Như vấn đề đặt phải thực ánh xạ địa IP (32 bit) địa MAC (48 bit) trạm Giao thức ARP xây dựng để chuyển đổi từ địa IP sang địa MAC cần thiết.Khn dạng gói tin ARP hình đây: Hình 1.4 ARP Header Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Bộ môn Mạng Truyền Thông Ngược lại, giao thức RARP dùng để chuyển đổi từ địa MAC sang địa IP Khn dạng gói tin RARP tương tự khn dạng gói tin ARP hình Chỉ khác trường Operation có giá trị cho gói tin RARP request giá trị cho gói tin RARP reply Các giao thức ARP RARP phận IPIP dùng đến chúng cần b Giao thức IP (Internet Protocol) Giao thức IP giao thức quan trọng giao thức TCP/IP Mục đích giao thức IP cung cấp khả kết nối mạng thành liên mạng để truyền liệu IP giao thức cung cấp dịch vụ phân phát datagram theo kiểu không liên kết khơng tin cậy nghĩa khơng cần có giai đoạn thiết lập liên kết trước truyền liệu, không đảm bảo IP datagram tới đích khơng trì thơng tin datagram gửi Khuôn dạng đơn vị liệu dùng IP mơ tả sau: Hình 1.5 IP Header c Giao thức ICMP (Internet Control Message Protocol) - ICMP giao thức thông điệp, thường xem phần lớp IP, dùng để trao đổi thơng tin điều khiển dòng số liệu, thông báo lỗi thông tin trạng thái khác giao thức TCP/IP - Khuôn dạng thơng điệp ICMP mối quan hệ với IP datagram minh họa qua hình Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP Hình 1.6 Vị trí ICMP message Có nhiều loại thơng điệp ICMP, thơng điệp ICMP có khn dạng riêng nó, chúng ln bắt đầu với trường giống nhau: Hình 1.7 ICMP Header  Type (8 bit)  Code (8 bit)  Checksum (16 bit) Có 15 giá trị khác cho trường type, để định nghĩa thông điệp ICMP cụ thể Một vài loại thông điệp ICMP sử dụng thêm giá trị khác trường code để định nghĩa cho d Giao thức IGMP (Internet Group Management Protocol) IGMP giao thức sử dụng host router mà hỗ trợ kỹ thuật multicasting Giống ICMP, IGMP thường xem phần lớp IP Tuy nhiên, IGMP không giống giao thức khác, giao thức thơng điệp có kích thước cố định khơng có phần liệu Hình vẽ sau khn dạng thơng điệp IGMP phiên 2: Hình 1.8 IGMP Header Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Bộ môn Mạng Truyền Thông Ý nghĩa tham số:  Type (8 bit): định nghĩa loại thông điệp IGMP  Respond time (8 bit): giá trị thời gian tối đa mà host phải trả lời truy vấn  Checksum (16 bit): kiểm soát lỗi  Group address (32 bit): dùng để định nhóm cụ thể hay thiết lập giá trị 0.0.0.0 để tất nhóm e Giao thức UDP (User Datagram Protocol) UDP giao thức không liên kết, cung cấp dịch vụ giao vận không tin cậy, sử dụng thay cho TCP tầng giao vận Khác với TCP, UDP khơng có chức thiết lập giải phóng liên kết, khơng có chế báo nhận (ACK), không xếp đơn vị liệu (datagram) đến dẫn đến tình trạng trùng liệu mà khơng có thơng báo lỗi cho người gửi Khuôn dạng UDP datagram mơ tả sau: Hình 1.9 UDP Header Ý nghĩa tham số:  Số hiệu cổng nguồn (Source Port - 16 bit): số hiệu cổng nơi gửi datagram  Số hiệu cổng đích (Destination Port - 16 bit): số hiệu cổng nơi datagram chuyển tới  Độ dài UDP (Length - 16 bit): độ dài tổng cộng kể phần header gói UDP datagram Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 10  UDP Checksum (16 bit): dùng để kiểm soát lỗi, phát lỗi UDP datagram bị loại bỏ mà khơng có thơng báo trả lại cho trạm gửi UDP có chế độ gán quản lý số hiệu cổng (port number) để định danh cho ứng dụng chạy trạm mạng Do có chức phức tạp nên UDP có xu hoạt động nhanh so với TCP Nó thường dùng cho ứng dụng khơng đòi hỏi có độ tin cậy cao giao vận f Giao thức TCP (Transmission Control Protocol) TCP cung cấp kết nối tin cậy hai máy tính, kết nối thiết lập trước liệu bắt đầu truyền TCP gọi nghi thức hướng kết nối, với nghi thức TCP trình hoạt động trải qua ba bước sau:  Thiết lập kết nối (Connection establishment)  Truyền liệu (Data transfer)  Kết thúc kết nối (Connection termination) TCP phân chia thông điệp thành segment, sau ráp segment lại bên nhận truyền lại gói liệu bị Với TCP liệu đến đích thứ tự, TCP cung cấp Vitual Circuit ứng dụng bên gửi bên nhận Giao thức TCP thiết lập kết nối phương pháp “Bắt tay lần” (threeway handshake) Hình 1.10 Cách thiết lập kết nối giao thức Hình vẽ ví dụ cách thức truyền, nhận gói tin giao thức TCP Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP - Redirect Message Chuyển Datagram cho mạng Chuyển Datagram cho Host Chuyển Datagram cho TOS mạng Chuyển Datagram cho TOS host Thay địa host Dành riêng - Echo Request Lặp lại yêu cầu – Router Advertisement Router quảng bá 10 - Router Solicitation Router khám phá/lựa chọn TTL hết trình truyền Xác nhận phân mảnh hết hạn Con trỏ lỗi Thiếu lựa chọn cần thiết Tình trạng chiều dài 13 - Timestamp Dấu thời gian 14 - Timestamp Reply Trả lời dấu thời gian 15 - Information Request Yêu cầu thông tin 16 - Information Reply Phản hồi thông tin 17 - Address Mask Request Yêu cầu địa mặt nạ 18 - Address Mask Reply Trả lời địa mặt nạ 11 - Time Exceeded 12 - Parameter Problem: Bad IP header 19 Dành riêng cho bảo mật 20 tới 29 Dành cho thử nghiệm độ bền 30 - Traceroute 31 14 Yêu cầu thông tin Chuyển đổi Datagram bị lỗi Võ Duy Dũng – Lớp 07T4 – Nhóm 09B 15 Bộ môn Mạng Truyền Thông 32 Chuyển host di động 33 Where-Are-You (ban đầu cho IPv6) 34 Here-I-Am (ban đầu cho IPv6) 35 Yêu cầu đăng kí di động 36 Trả lời đăng kí di động 37 Yêu cầu tên miền 38 Trả lời tên miền 39 40 41 42 tới 255 Thuật toán SKIP Discovery Protocol, Simple Key – Quản lý giao thức Internet Photuris, bảo mật thất bại Các giao thức ICMP cho thử nghiệm di động Seamoby [RFC4065] Dành riêng Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP CHƯƠNG II: I 16 THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH Phân tích yêu cầu Ứng dụng phải đảm bảo thực yêu cầu sau:  Gửi gói tin ICMP đến tất máy đến dải địa mạng LAN  Bắt gói tin IP gửi tách gói tin ICMP từ gói tin IP để xử lý  Có thể quét theo lớp địa Private II Phân tích chức Phương thức hoạt động ứng dụng: Ứng dụng hoạt động cách gửi gói tin ICMP tới tất máy mạng LAN cần quét Dãy địa IP để gửi gói tin ICMP người dùng nhập vào hay chọn lựa việc gửi theo lớp (lớp A, lớp B, lớp C ) Trong gửi gói tin ứng dụng bắt gói tin phản hồi từ địa IP để tiến hành xử lý Và dựa vào thơng tin phản hồi mà biết địa IP có tồn mạng hay khơng Để gửi gói tin tới tất địa chi ta dùng vòng lặp for lồng tương ứng với octet địa IPv4 for (byte i = ipf1; i 16); return (UInt16)(~chcksm); } } } Lớp Kiemtra.cs: Kiểm tra thơng tin trả gói tin ICMP using using using using System; System.Net; System.Net.Sockets; System.Text; namespace LTM_Scan_IP { class Kiemtra { public static bool Check(string st) { Võ Duy Dũng – Lớp 07T4 – Nhóm 09B 23 Bộ môn Mạng Truyền Thông byte[] data = new byte[1024]; int recv; Socket host = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); IPEndPoint iep = new IPEndPoint(IPAddress.Parse(st), 0); EndPoint ep = (EndPoint)iep; ICMP packet = new ICMP(); packet.Type = 0x08; packet.Code = 0x00; packet.Checksum = 0; Buffer.BlockCopy(BitConverter.GetBytes((short)1), 0, packet.Message, 0, 2); Buffer.BlockCopy(BitConverter.GetBytes((short)1), 0, packet.Message, 2, 2); data = Encoding.ASCII.GetBytes("test packet"); Buffer.BlockCopy(data, 0, packet.Message, 4, data.Length); packet.Messagesize = data.Length + 4; int packetsize = packet.Messagesize + 4; UInt16 chcksum = packet.getChecksum(); packet.Checksum = chcksum; host.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 100); host.SendTo(packet.getByte(), packetsize, SocketFlags.None, iep); try { data = new byte[1024]; recv = host.ReceiveFrom(data, ref ep); ICMP response = new ICMP(data, recv); int Indentifier = BitConverter.ToInt16(response.Message, 0); int Sequence = BitConverter.ToUInt16(response.Message, 2); System.Console.WriteLine("response from: {0}", ep.ToString()); System.Console.WriteLine("Type {0}", response.Type); System.Console.WriteLine("Code: {0}", response.Code); System.Console.WriteLine("Indentifier: {0}", Indentifier); System.Console.WriteLine("Sequence: {0}", Sequence); string stringData = Encoding.ASCII.GetString(response.Message, 4, response.Messagesize 4); System.Console.WriteLine("data: {0}", stringData); host.Close(); if (response.Type == && response.Code == && Indentifier == && Sequence == 1) return true; else return false; } catch (SocketException) Võ Duy Dũng – Lớp 07T4 – Nhóm 09B Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 24 { System.Console.WriteLine("No response from remote host"); host.Close(); return false; } } } } Form1.cs: Xử lý kiện Winform using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms; System.Net; System.Threading; namespace LTM_Scan_IP { public partial class frMain : Form { int stt; byte ipf1, ipf2, ipf3, ipf4, ipt1, ipt2, ipt3, ipt4; public frMain() { InitializeComponent(); stt = 1; } delegate void DlgThreadCode(); public void ThreadCode() { if (this.prgressBar.InvokeRequired) { this.Invoke(new DlgThreadCode(ThreadCode)); } else { for (byte i = ipf1; i

Ngày đăng: 22/12/2017, 08:17

Tài liệu cùng người dùng

Tài liệu liên quan