Báo cáo môn INTRANET đề tài DDOS attack using SYN flood tool

21 943 3
Báo cáo môn INTRANET đề tài DDOS attack using SYN flood tool

Đ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

Báo cáo môn INTRANET đề tài DDOS attack using SYN flood tool

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO MÔN INTRANET Đề tài: DDOS attack using SYN Flood Tool Giảng viên hướng dẫn: ThS.Phạm Huy Hoàng Sinh viên thực hiện : Nguyễn Trọng Hiếu 20080941 Trịnh Duy Tân 20082329 Bùi Anh Tuấn 20082869 Lê Văn Nguyễn 20081912 Lớp: TTM – K53 Hà Nội, tháng 04 năm 2012 SYN Flood Attack Tool Page 2 Mục lục I/ Mở đầu: 3 1. Tấn công từ chối dịch vụ 3 2. Tấn công SYN flood là gì : 4 3. Cấu trúc IP Header và TCP Header 6 3.1. Cấu trúc gói tin IP 6 3.2. Cấu trúc gói tin TCP 9 4. Yêu cầu thực hiện đối với việc viết tool tấn công DDOS dạng Syn flood: 12 II/ Thực hiện : 12 1. Chuẩn bị 12 2. Những khó khăn trong quá trình thực hiện và hướng giải quyết : 12 III/ Giới thiệu chương trình 13 IV/ Kết quả: 19 V/ Tài liệu tham khảo 21 SYN Flood Attack Tool Page 3 I/ Mở đầu: 1. Tấn công từ chối dịch vụ Tấn công từ chối dịch vụ DoS (Denial of Service) là tên gọi chung của kiểu tấn công làm cho một hệ thống nào đó bị quá tải dẫn tới không thể cung cấp dịch vụ, hoặc phải ngưng hoạt động. Đối với các hệ thống bảo mật tốt, khó thâm nhập, tấn công từ chối dịch vụ được hacker sử dụng như cú dứt điểm để triệt hạ hệ thống đó. Tùy phương thức thực hiện mà DoS được biết dưới nhiều tên gọi khác nhau: cổ điển nhất là kiểu DoS (Denial of Service) tấn công bằng cách lợi dụng sự yếu kém của giao thức TCP (Transmision Control Protocol); sau đó là DDoS (Distributed Denial of Service) - tấn công từ chối dịch vụ phân tán; mới nhất là tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS (DistributedReflection Denial of Service). Để thực hiện "Tấn công từ chối dịch vụ phân tán DDoS", kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính hoặc mạng máy tính trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào ạt các gói tin (packet) với số lượng rất lớn, mục đích chiếm dụng tài nguyên và làm tràn ngập đường truyền của một mục tiêu xác định nào đó. Riêng "Tấn công từ chối dịch vụ phản xạ DRDoS" chỉ mới xuất hiện gần đây nhưng lại là loại nguy hiểm nhất. Nếu được thực hiện bởi các hacker chuyên nghiệp, không một hệ thống nào có thể đứng vững được trước nó. Đáng nói hơn, hiện cũng SYN Flood Attack Tool Page 4 đã xuất hiện nhiều loại virus, worm, trojan có chức năng tự động thực hiện tấn công DoS. Ngoài ra còn có các biến thể khác như: Broadcast Storms, SYN, Finger, Ping, Flooding với mục tiêu chiếm dụng các tài nguyên của hệ thống như: Bandwidth, Kernel Table, Swap Space, Cache, Hardisk, RAM, CPU làm hoạt động của hệ thống bị quá tải dẫn đến không đáp ứng được các yêu cầu (request) hợp lệ nữa. 2. Tấn công SYN flood là gì : TCP SYN Flood Attack: Được xem là một trong những kiểu tấn công DoS kinh điển nhất. Lợi dụng sơ hở của thủ tục TCP khi “bắt tay ba chiều”, mỗi khi client (máy khách) muốn thực hiện kết nối (connection) với server (máy chủ) thì nó thực hiện việc bắt tay ba bước (three – ways handshake) thông qua các gói tin (packet). - Bước 1: Client (máy khách) sẽ gửi các gói tin (packet chứa SYN=1) đến máy chủ để yêu cầu kết nối. - Bước 2: Khi nhận được gói tin này, server sẽ gửi lại gói tin SYN/ACK để thông báo cho client biết là nó đã nhận được yêu cầu kết nối và chuẩn bị tài nguyên cho việc yêu cầu này. Server sẽ giành một phần tài nguyên hệ thống như bộ nhớ đệm (cache) để nhận và truyền dữ liệu. Ngoài ra, các thông tin khác của client như địa chỉ IP và cổng (port) cũng được ghi nhận. - Bước 3: Cuối cùng, client hoàn tất việc bắt tay ba bước bằng cách hồi âm lại gói tin chứa ACK cho server và tiến hành kết nối. SYN Flood Attack Tool Page 5 Do TCP là thủ tục tin cậy trong việc giao nhận (end-to-end) nên trong lần bắt tay thứ hai, server gửi các gói tin SYN/ACK trả lời lại client mà không nhận lại được hồi âm của client để thực hiện kết nối thì nó vẫn bảo lưu nguồn tài nguyên chuẩn bị kết nối đó và lập lại việc gửi gói tin SYN/ACK cho client đến khi nào nhận được hồi đáp của máy client. Điểm mấu chốt là ở đây là làm cho client không hồi đáp cho Server. Và có hàng nhiều, nhiều client như thế trong khi server vẫn “ngây thơ” lặp lại việc gửi packet đó và giành tài nguyên để chờ “người về” trong lúc tài nguyên của hệ thống là có giới hạn! Các hacker tấn công sẽ tìm cách để đạt đến giới hạn đó. Nếu quá trình đó kéo dài, server sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng crash (treo) nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được. Có thể hình dung quá trình này cũng giống như khi máy tính cá nhân (PC) hay bị “treo” khi mở cùng lúc quá nhiều chương trình cùng lúc vậy. SYN Flood Attack Tool Page 6 Thường, để giả địa chỉ IP gói tin, các hacker có thể dùng Raw Sockets (không phải gói tin TCP hay UDP) để làm giả mạo hay ghi đè giả lên IP gốc của gói tin. Khi một gói tin SYN với IP giả mạo được gửi đến server, nó cũng như bao gói tin khác, vẫn hợp lệ đối với server và server sẽ cấp vùng tài nguyên cho đường truyền này, đồng thời ghi nhận toàn bộ thông tin và gửi gói SYN/ACK ngược lại cho Client. Vì địa chỉ IP của client là giả mạo nên sẽ không có client nào nhận được SYN/ACK packet này để hồi đáp cho máy chủ. Sau một thời gian không nhận được gói tin ACK từ client, server nghĩ rằng gói tin bị thất lạc nên lại tiếp tục gửi tiếp SYN/ACK, cứ như thế, các kết nối (connections) tiếp tục mở. Nếu như kẻ tấn công tiếp tục gửi nhiều gói tin SYN đến server thì cuối cùng server đã không thể tiếp nhận thêm kết nối nào nữa, dù đó là các yêu cầu kết nối hợp lệ. Việc không thể phục nữa cũng đồng nghĩa với việc máy chủ không tồn tại. Việc này cũng đồng nghĩa với xảy ra nhiều tổn thất do ngưng trệ hoạt động, đặc biệt là trong các giao dịch thương mại điện tử trực tuyến. Đây không phải là kiểu tấn công bằng đường truyền cao, bởi vậy chỉ cần một máy tính nối internet qua ng. dial-up đơn giản cũng có thể tấn công kiểu này (tất nhiên sẽ lâu hơn chút). 3. Cấu trúc IP Header và TCP Header 3.1. Cấu trúc gói tin IP IP Header Header của gói tin IPv4 bao gồm 13 trường, trong đó 12 trường là bắt buộc. Trường thứ 13 (được tô màu đỏ trong bảng)là tùy chọn, đúng với tên của nó:options. Các trường này trong header được lưu trữ với byte có ý nghĩa cao(the most significant byte) ở địa chỉ thấp (big endian),nói cách khác bit có ý nghĩa cao luôn ở địa chỉ thấp. Bit quan trọng nhất là bit số 0, vì vậy trường phiên bản (version) được lưu trong 4 bit đầu tiên của byte đầu tiên, ví dụ SYN Flood Attack Tool Page 7 VERS (4 bit): Version Chỉ ra phiên bản của trình nghi thức IP đang được dùng là Ipv4 (0100) hoặc Ipv6 (0110) . Nếu trường này khác với phiên bản IP của thiết bị nhận, thiết bị nhận sẽ từ chối và loại bỏ các gói tin này. IP Header Length (HLEN) (4 bit): – Chỉ ra chiều dài của header , mỗi đơn vị là 1 word , mỗi word = 32 bit = 4 byte . Ở đây trường Header Length có 4 bit => 2^4 = 16 word = 16 x 4byte = 64 byte è chiều dài header tối đa là 64 byte . Bình thường Hearder dài 20 byte . Đây là chiều dài của tất cảc các thông tin Header. Trường này cũng giúp ta xác định byte đầu tiên của Data nằm ở đâu trong gói tin IP datagram Type Of Services (TOS)(8 bit) Chỉ ra cách thức xử lý data như thế nào, có độ ưu tiên hay không, độ trễ cho phép xử lý gói dữ liệu . Trường này thường được dùng cho QoS là 1 chức năng dành 1 lượng băng thông để cho để cho 1 dịch vụ nào đó hoạt động ví dụ như dịch vụ truyền thoại , video … Total Length SYN Flood Attack Tool Page 8 Chỉ ra chiều dài của toàn bộ gói tính theo byte, bao gồm dữ liệu và header,có 16 bit. 16 bit à tối đa là 2^16 = 65536 bye = 64 Kb è chiều dài tối đa của 1 IP datagram là 64 Kb. Identification - có 16 bit Chỉ mã số của 1 IP datagram , giúp bên nhận có thể ghép các mảnh của 1IP datagram lại với nhau vì IP datagram phân thành các mảnh và các mảnh thuộc cùng 1 IP datagram sẽ có cùng Identification Flag Một field có 3 bit, o Bit 0 : không dùng o Bit 1 : cho biết gói có phân mảnh hay không . o Bit 2 : Nếu gói IP datagram bị phân mảnh thì mảnh này cho biết mảnh này có phải là mảnh cuối không . Fragment Offset - có 13 bit Báo bên nhận vị trí offset của các mảnh so với gói IP datagram gốc để có thể ghép lại thành IP datagram gốc. Time To Live (TTL) Chỉ ra số bước nhảy (hop) mà một gói có thể đi qua.Con số này sẽ giảm đi 1 , khi gói tin đi qua 1 router. Khi router nào nhận gói tin thấy TTL đạt tới 0 gói này sẽ bị loại. Đây là giải pháp nhằm ngăn chặn tình trạng lặp vòng vô hạn của gói tin trên mạng. Protocol( 8 bit) Chỉ ra giao thức nào của tầng trên (tầng Transport) sẽ nhận phần data sau khi công đoạn xử lí IP diagram ở tầng Network hoàn tất hoặc chỉ ra giao thức nào của tầng trên gởi segment xuống cho tầng Network đóng gói thành IP Diagram , mỗi giao thức có 1 mã. o 06 : TCP : o 17 : UDP o 01 : ICMP o 08 : EGP Header CheckSum – có 16 bit Giúp bảo đảm sự toàn vẹn của IP Header, . Source Address (32 bit) Chỉ ra địa chỉ của thiết bị truyền IP diagram . Destination Address(32 bit ) SYN Flood Attack Tool Page 9 Chỉ ra địa chỉ IP của thiệt bị sẽ nhận IP diagram IP Option kích thước không cố định , chứa các thông tin tùy chọn như : o Time stamp : thời điểm đã đi qua router. o Security : cho phép router nhận gói dữ liệu không , nếu không thì gói sẽ bị hủy o Record router : lưu danh sách địa chỉ IP của router mà gói phải đi qua, o Source route : bắt buộc đi qua router nào đó. Lúc này sẽ không cần dùng bảng định tuyến ở mỗi Router nữa. Padding Các số 0 được bổ sung vào field này để đảm bảo IP Header luôn là bội số của 32 bit. Data Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb . Là TCP hay UDP Segment của tầng Transport gửi xuống cho tần Network , tầng Network sẽ thêm header vào gói tin IP datagram. 3.2. Cấu trúc gói tin TCP TCP Header Source port Số hiệu của cổng tại máy tính gửi. Destination port Số hiệu của cổng tại máy tính nhận. SYN Flood Attack Tool Page 10 Sequence number Trường này có 2 nhiệm vụ. Nếu cờ SYN bật thì nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1. Nếu không có cờ SYN thì đây là số thứ tự của byte đầu tiên. Acknowledgement number Nếu cờ ACK bật thì giá trị của trường chính là số thứ tự gói tin tiếp theo mà bên nhận cần. Data offset Trường có độ dài 4 bít qui định độ dài của phần header (tính theo đơn vị từ 32 bít). Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480 bít). Reserved Dành cho tương lai và có giá trị là 0. Flags (hay Control bits) Bao gồm 6 cờ: URG Cờ cho trường Urgent pointer ACK Cờ cho trường Acknowledgement PSH Hàm Push RST Thiết lập lại đường truyền SYN Đồng bộ lại số thứ tự FIN Không gửi thêm số liệu Window Số byte có thể nhận bắt đầu từ giá trị của trường báo nhận (ACK) Checksum 16 bít kiểm tra cho cả phần header và dữ liệu. Phương pháp sử dụng được mô tả trong RFC 793: 16 bít của trường kiểm tra là bổ sung của tổng tất cả các từ 16 bít trong gói tin. Trong trường hợp số octet (khối 8 bít) của header và dữ liệu là lẻ thì [...]... tin về Page 11 SYN Flood Attack Tool giao thức của tầng trên không được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn 4 Yêu cầu thực hiện đối với việc viết tool tấn công DDOS dạng Syn flood: - Tạo được gói tin Syn theo đúng format - Gửi được các gói tin SYN đến được địa chỉ yêu cầu trong môi trường Windows SP2 hoặc cao hơn II/ Thực hiện : 1 Chuẩn bị - Tìm hiểu về tấn công Syn flood: nguyên... WinPCap (SharpPCap) IV/ Kết quả: Khởi động chương trình: Page 19 SYN Flood Attack Tool ð Cho phép chọn card mạng, IP đích, cổng, số lượng gói tin sẽ gửi và thời gian trễ (delay) giữa các gói tin Bắt đầu gửi: Hoàn thành: Theo dõi trên WireShark: Page 20 SYN Flood Attack Tool V/ Tài liệu tham khảo - DDOS attack – wikipedia - Codeproject.com - Tài liệu tham khảo từ Internet Page 21 ... tham khảo một số ví dụ trên web - Với PacketX, khi tạo SYN packet sẽ gặp khó khăn trong việc lấy destination MAC vì packetX không hỗ trợ àcó 2 hướng giải quyết: + Sử dụng packetX tạo gói tin arp truy vấn để tìm ra MAC của gateway + Tìm và sử dụng thêm thư viện khác hỗ trợ việc gửi arp và trả về MAC của gateway một cách tự động Page 12 SYN Flood Attack Tool èThực hiện theo phương án thứ hai vì phương án... set 0 TCPHeader[8] = 0x00; TCPHeader[9] = 0x00; TCPHeader[10] = 0x00; TCPHeader[11] = 0x00; //2 byte tiep theo la offset, reserved va control bit TCPHeader[12] = 0x70; Page 15 SYN Flood Attack Tool TCPHeader[13] = 0x02;//flag (SYN) //2 byte tiep theo la window size TCPHeader[14] = 0xff; TCPHeader[15] = 0xff; //2 byte tiep theo la checksum, de bang 0 truoc khi tinh TCPHeader[16] = 0x00; TCPHeader[17]... thức tấn công, cấu trúc gói tin SYN, cách tạo gói tin và gửi gói tin trong môi trường Windows - Tham khảo một số code mẫu trên mạng về tool SYN flood trong môi trường linux hoặc trong môi trường windows từ SP1 trở về trước (chủ yếu được viết bằng C++) 2 Những khó khăn trong quá trình thực hiện và hướng giải quyết : - Với môi trường windows từ SP2 trở lên, việc gửi gói tin SYN thông qua raw socket đã bị... IPHeader[2] = 0x00; IPHeader[3] = 0x30; //2 byte tiep theo la identification IPHeader[4] = (byte)(rand.Next(0, 255)); IPHeader[5] = (byte)(rand.Next(0, 255)); //2 byte tiep la Fragment offset Page 14 SYN Flood Attack Tool IPHeader[6] = 0x40; IPHeader[7] = 0x00; IPHeader[8] = 0x80;//TTL IPHeader[9] = 0x06;//Protocol: TCP //2 byte tiep theo la checksum, de la 0 truoc khi tinh IPHeader[10] = 0x00; IPHeader[11].. .SYN Flood Attack Tool octet cuối được bổ sung với các bít 0 Các bít này không được truyền Khi tính tổng, giá trị của trường kiểm tra được thay thế bằng 0, Nói một cách khác, tất cả các từ 16 bít được cộng với... byte[] tmpTCPHeader = GhepMang(PseudoHeader, TCPHeader); UInt16 TCPChksum = Cal_chksum(tmpTCPHeader); TCPHeader[16] = (byte)(TCPChksum >> 8); TCPHeader[17] = (byte)(TCPChksum & 0x00FF); Page 16 SYN Flood Attack Tool //TAO GOI TIN DE GUI DI byte[] packet = GhepMang(Ethenet, IPHeader); byte[] packetToSend = GhepMang(packet, TCPHeader); return packetToSend; } Ta xây dựng hàm tính checksum cho Header: privateUInt16... GhepMang(byte[] a, byte[] b) { int count = a.Length + b.Length; byte[] kq = newbyte[count]; int x = 0; for (int i = 0; i < a.Length; ++i) { kq[x++] = a[i]; } for (int i = 0; i < b.Length; ++i) Page 17 SYN Flood Attack Tool { kq[x++] = b[i]; } return kq; } Ngoài ra khi tạo packet cần lấy thông tin về MAC và IP của card mạng, MAC của Gateway (modem) để thêm vào packet privatestring GetMACInterface(LibPcapLiveDevice... System.Net.IPAddress ip = device.Interface.GatewayAddress; byte[] phynull = newbyte[6] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; PhysicalAddress phyadd = newPhysicalAddress(phynull); do { Page 18 SYN Flood Attack Tool phyadd = arper.Resolve(ip); } while (phyadd == null); byte[] bytes = phyadd.GetAddressBytes(); for (int i = 0; i < bytes.Length; i++) { MACGateway += bytes[i].ToString("X2"); if (i != bytes.Length . NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO MÔN INTRANET Đề tài: DDOS attack using SYN Flood Tool Giảng viên hướng dẫn: ThS.Phạm Huy Hoàng Sinh viên thực. Hà Nội, tháng 04 năm 2012 SYN Flood Attack Tool Page 2 Mục lục I/ Mở đầu: 3 1. Tấn công từ chối dịch vụ 3 2. Tấn công SYN flood là gì : 4 3. Cấu trúc IP Header và. về SYN Flood Attack Tool Page 12 giao thức của tầng trên không được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn. 4. Yêu cầu thực hiện đối với việc viết tool tấn công DDOS

Ngày đăng: 23/10/2014, 15:08

Từ khóa liên quan

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

Tài liệu liên quan