[Question] Gửi gói tin mạo danh không được ??? |
31/08/2007 11:06:26 (+0700) | #1 | 82409 |
hoanglinh9466
Member
|
0 |
|
|
Joined: 21/05/2007 23:44:11
Messages: 16
Offline
|
|
(Không biết post bài vào đâu nên cho vào đây, ko đúng thì mong các mod mov dùm)
Sử dụng thư viện winpcap em đã làm 1 chương trình bắt các gói tin và có thể gửi lại y nguyên nội dung gói tin đó. Sau đây là quá trình kểm tra:
Dùng 1 chương trình kết nối với 1 server, ở đây em dùng linhz96.brinkster.net, và gửi gói tin lấy nội dung 1 trang web, dùng CT sử dụng winpcap để bắt gói tin này, sau đó dùng winpcap để gửi gói tin ấy đi, nếu như nhận lại gói tin có nội dung của trang web thì tức là đã thành công, nhưng kết quả lại không như vậy.
Gói tin thứ nhất là gói tin thật dùng để lấy nội dung trang web:
HEADER:
45 00 00 61 0E 21 40 00 80 06 83 22 C0 A8 01 02 E..a.!@...."....
41 B6 65 F3 04 B3 00 50 F7 B3 7C 2A 4F B8 74 B4 A.e....P..|*O.t.
50 18 FC 90 BF D8 00 00 P.......
DATA:
47 45 54 20 2F 67 65 74 61 64 64 72 2E 61 73 70 GET /getaddr.asp
20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A HTTP/1.1..Host:
6C 69 6E 68 7A 39 36 2E 62 72 69 6E 6B 73 74 65 linhz96.brinkste
72 2E 6E 65 74 0D 0A 0D 0A r.net....
Gói tin thứ hai em không biết là cái gì (chắc là để xác nhận là server đã nhận gói tin do client gửi đến:
HEADER:
45 00 00 28 B6 CC 40 00 3B 06 1F B0 41 B6 65 F3 E..(..@.;...A.e.
C0 A8 01 02 00 50 04 B3 4F B8 74 B4 F7 B3 7C 63 .....P..O.t...|c
50 10 16 D0 F2 29 00 00 P....)..
DATA:
Gói tin thứ ba là nội dung trả về của trang web:
HEADER:
45 00 01 4D B6 CD 40 00 3B 06 1E 8A 41 B6 65 F3 E..M..@.;...A.e.
C0 A8 01 02 00 50 04 B3 4F B8 74 B4 F7 B3 7C 63 .....P..O.t...|c
50 18 16 D0 10 BB 00 00 P.......
DATA:
48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D HTTP/1.1 200 OK.
0A 44 61 74 65 3A 20 54 68 75 2C 20 33 30 20 41 .Date: Thu, 30 A
75 67 20 32 30 30 37 20 31 34 3A 31 35 3A 33 30 ug 2007 14:15:30
20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 4D 69 GMT..Server: Mi
63 72 6F 73 6F 66 74 2D 49 49 53 2F 36 2E 30 0D crosoft-IIS/6.0.
0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 41 .X-Powered-By: A
53 50 2E 4E 45 54 0D 0A 43 6F 6E 74 65 6E 74 2D SP.NET..Content-
....
Gói tin thứ tư giống gói tin thứ 2, chắc cũng để xác nhận:
HEADER:
45 00 00 28 0E 22 40 00 80 06 83 5A C0 A8 01 02 E..(."@....Z....
41 B6 65 F3 04 B3 00 50 F7 B3 7C 63 4F B8 75 D9 A.e....P..|cO.u.
50 10 FB 6B 0C 69 00 00 P..k.i..
DATA:
Gói tin thứ 5 là gói tin giống y hệt gói tin thứ nhất, nhưng do chương trình dùng winpcap bắt được và gửi đi:
HEADER:
45 00 00 61 0E 21 40 00 80 06 83 22 C0 A8 01 02 E..a.!@...."....
41 B6 65 F3 04 B3 00 50 F7 B3 7C 2A 4F B8 74 B4 A.e....P..|*O.t.
50 18 FC 90 BF D8 00 00 P.......
DATA:
47 45 54 20 2F 67 65 74 61 64 64 72 2E 61 73 70 GET /getaddr.asp
20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A HTTP/1.1..Host:
6C 69 6E 68 7A 39 36 2E 62 72 69 6E 6B 73 74 65 linhz96.brinkste
72 2E 6E 65 74 0D 0A 0D 0A r.net....
Gói tin thứ 6 là gói tin trả về của server (không giống gói tin thứ 2)
HEADER:
45 00 00 34 B6 CE 40 00 3B 06 1F A2 41 B6 65 F3 E..4..@.;...A.e.
C0 A8 01 02 00 50 04 B3 4F B8 75 D9 F7 B3 7C 63 .....P..O.u...|c
80 10 16 D0 D2 F7 00 00 ........
DATA:
01 01 05 0A F7 B3 7C 2A F7 B3 7C 63 ......|*..|c
Vấn đề là ở gói tin thứ 6 ấy, có phải server đã biết là gói tin gửi đi không do đúng chương trình đã tạo kết nối với nó gửi đi không ???, gói tin này nghĩa là gì ??? Ai giải thích hộ em với !!! |
|
|
|
|
[Question] Re: Gửi gói tin mạo danh không được ??? |
31/08/2007 18:44:02 (+0700) | #2 | 82447 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Không hiểu phần trình bày của bồ lắm nhưng việc inject 1 packet vào giữa một xuất truy cập (giữa client và server) không đơn giản muốn inject là inject bởi vì giữa client và server có những thoả thuận + quy định trong suốt quá trình trao đổi.
- Nếu máy của bồ đóng vai trò là người đứng giữa hai đầu hoặc (và) đã đồng ý ngay từ đầu về những thỏa thuận, quy định kia thì có thể được.
- Nếu máy của bồ đứng ở một bên, bồ phải xác định được sequence numbers, checksum, options và nhiều thứ khác đã được đồng ý giữa client và server. Ngay cả như thế, bồ còn phải kiểm soát timing thế nào để có thể gởi packet đúng lúc không thì packet bồ inject đi sau packet của client đã gởi thì nó sẽ bị hủy.
Bồ nên tìm hiểu sâu hơn về TCP và tính chất trao đổi của chúng trước khi đi vào cõi này không thì... tẩu hỏa nhập ma ráng chịu ) |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Gửi gói tin mạo danh không được ??? |
02/09/2007 08:17:04 (+0700) | #3 | 82789 |
hoanglinh9466
Member
|
0 |
|
|
Joined: 21/05/2007 23:44:11
Messages: 16
Offline
|
|
Em biết sai đâu rồi, ngay cả khi gửi 2 gói tin có phần dữ liệu giống nhau thì các field ip_id, ip_checksum trong ip header, sequence, acknowledge, window, checksum trong tcp header vẫn khác nhau giữa các gói. Vậy làm thế nào để biết hay tính ra được giá trị của các field này hả anh, em đọc rfc nhưng mà nó nói khó hiểu quá. |
|
|
|
|
[Question] Gửi gói tin mạo danh không được ??? |
02/09/2007 09:46:13 (+0700) | #4 | 82805 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
Chào hoanglinh9466,
Có vẻ như bạn muốn hijack một TCP session đã được kết nối thành công giữa server và clients. Để hijack thành công, bạn cần có các yếu tố sau:
1. Bạn phải có khả năng nằm giữa và sniff hoàn toàn các gói tin đi từ client (người tạo kết nối) đến phía server (người nhận kết nối)
2. Bạn nên poison cả hai đầu của kết nối để đảm bảo sau khi bạn inject packet của bạn vào thì phía client không nhận được các gói tin của server gửi trả lời cho bạn.
3. Field source IP và source port và destination IP, destination port phải thích hợp với socket mà bạn muốn inject vào. Các thông tin này bạn có thể thấy được từ các thông tin được sniff.
4. windows, checksum (ip, tcp) bạn có thể tự khởi tạo và tính toán cho đúng với từng gói tin. Tuỳ seq number + ack number vân vân, giá trị checksum phải được tính riêng cho từng gói ip, và từng tcp segment.
5. Seq number + ACK number mà bạn phải gửi ra thì bạn có thể biết được từ gói tin mới nhất mà server gửi ra ngoài cho client.
khoai |
|
|
|
|
[Question] Gửi gói tin mạo danh không được ??? |
03/09/2007 00:33:25 (+0700) | #5 | 82888 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
2 anh Khoai, em thấy điểm 4 và 5 của anh thì bắt buộc ta phải can thiệp vào gói tin IP. Mà nếu như thế, ở góc độ lập trình buộc chúng ta phải can thiệp vào mức lõi của hệ điều hành đúng kô anh :? |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: Gửi gói tin mạo danh không được ??? |
03/09/2007 04:09:30 (+0700) | #6 | 82924 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Nói thêm: RFC không quy định thuật toán cụ thể cho việc tính sequencing và checksum cho packets. Cái này tùy vào ứng dụng cụ thể của từng hệ điều hành. Bởi thế, muốn biết thì phải xem code hoặc tài liệu cụ thể của từng hệ điều hành. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Gửi gói tin mạo danh không được ??? |
04/09/2007 06:28:45 (+0700) | #7 | 83164 |
hoanglinh9466
Member
|
0 |
|
|
Joined: 21/05/2007 23:44:11
Messages: 16
Offline
|
|
conmale wrote:
Nói thêm: RFC không quy định thuật toán cụ thể cho việc tính sequencing và checksum cho packets. Cái này tùy vào ứng dụng cụ thể của từng hệ điều hành. Bởi thế, muốn biết thì phải xem code hoặc tài liệu cụ thể của từng hệ điều hành.
Thế cho window thì thuật toán cụ thể thế nào hả anh, còn field id trong ip header điền thế nào cũng được đúng ko ???
to K4i: đã nói là dùng winpcap rồi mà |
|
|
|
|
[Question] Gửi gói tin mạo danh không được ??? |
04/09/2007 07:36:24 (+0700) | #8 | 83181 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
uh, tớ chưa dùng wincap bao giờ ). Lúc nãy liếc thử thì thấy wincap cung cấp thư viện cho việc can thiệp vào gói tin IP, hoanglinh9466 thử đọc document của wincap xem |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: Gửi gói tin mạo danh không được ??? |
04/09/2007 10:31:33 (+0700) | #9 | 83209 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
hoanglinh9466 wrote:
Thế cho window thì thuật toán cụ thể thế nào hả anh, còn field id trong ip header điền thế nào cũng được đúng ko ???
to K4i: đã nói là dùng winpcap rồi mà
ip id không thể "điền sao cũng được" mà phải thích hợp với id của gói tin đi trước. field này dùng để loại bỏ các gói ip bì lý do nào đó, bị loop hoặc lạc trong khi send, bên sender gửi lại một gói khác, và sau đó thì gói ban đầu cũng đến được chỗ người nhận. Lúc đó, người nhận có thể dùng field id để xác nhận là mình có gói đó rồi, và không cần process gói vừa nhận được.
Có nhiều thuật toán để tiến hành tính cái id này, nhưng thường thì các OS chỉ tính theo kiểu cộng 1 vào ip sequence của gói trước.
K4i wrote:
2 anh Khoai, em thấy điểm 4 và 5 của anh thì bắt buộc ta phải can thiệp vào gói tin IP. Mà nếu như thế, ở góc độ lập trình buộc chúng ta phải can thiệp vào mức lõi của hệ điều hành đúng kô anh
Hello K4i,
Các field của TCP có thể được thay đổi tuỳ thích nếu mình bắt kernel giao cho mình gói TCP ở dạng raw ip. Các ip field thì mình phải tương tác đến tầng ip của networking stack. Winpcap là một lib được thiết kế để giúp mình có một interface gọn gàng và tương tác tốt với kernel.
khoai |
|
|
|
|
[Question] Gửi gói tin mạo danh không được ??? |
05/09/2007 22:25:27 (+0700) | #10 | 83462 |
|
xikenet
Member
|
0 |
|
|
Joined: 13/05/2005 15:46:16
Messages: 127
Location: Hell which was made in Heaven
Offline
|
|
Hi! Tui kô biết nhiều, nhưng học thì cũng biết chút ít, nên có comment này, lỡ có sai thì đừng chửi tui, ma chỉ giáo dùm.
Tuy là các gói đều broadcast wa mạng, nhưng chỉ có máy có MAC và IP phù hợp nhận dạng wa Seg và ACK, đó là "truyền dữ liệu có bắt tay trước", va sẽ có những thỏa thuận giữa 2 máy. Nên muốn can thiệp vào hoặc biết được gói tin nào và tiếp tục ACK thứ mấy thì DESt host mới chấp nhận.
Hồi trước học 1 ông thầy ngừoi Đức, ông ấy và bạn đã viết ra 1 ct, nó co thể khai báo ở Switch và nạc danh MAC của VICTIM, re-route lại và dùng như vậy để capture tất cả các gói về máy và có thể chuyển gói hoặc kô chuyển tới máy VICTIM. Tụi tui xin hoài mà ổng kô cho. cũng tức thiệt...
Wincap thì tui cũng có dùng rồi nhưng kô thích lắm.Tui thường xài ethereal (Unix) hoặc wireshark hơn. Cũng có phân tích rồi làm đủ thứ nhưng kô được vì trình độ chưa tới. Xin đừng chê cười... |
|
|
|