banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận mạng và thiết bị mạng Inject packet  XML
  [Question]   Inject packet 17/02/2008 11:43:46 (+0700) | #1 | 115079
hoanglinh9466
Member

[Minus]    0    [Plus]
Joined: 21/05/2007 23:44:11
Messages: 16
Offline
[Profile] [PM]
Lần trước em post bài hỏi mà ko có ai trả lời. Bây h em đã inject được 1 packet vào 1 tcp session. Nhưng vẫn còn nhiều vấn đề. Em tham khảo riêng ý kiến của anh Mr.Khoai (vì post lên sợ lại chả có ai trả lời) và có mấy cái email hướng dẫn nay post lên cho mọi người đọc và xem có giúp được em ko smilie

Em dùng 1 máy chạy client http, em làm CT khác (cũng chạy trên máy ấy luôn) dùng winpcap bắt 1 gói tin GET của client gửi đi, chỉnh sửa hearder cho đúng (em biết là đã điền đúng hết, dùng wireshark theo dõi ko thấy báo lỗi gì mà) và chờ khi kết nối đang idle thì gửi gói tin này đi, vấn đề là khi gửi đi thì server gửi gói tin ack báo nhận, và http client cũng nhận được gói tin này luôn nên nó gửi đi 1 gói tin báo nhận nốt -> lỗi luôn.
Đây là file lưu lại quá trình theo dõi dùng wireshark: http://www.box.net/shared/0yi9gygcog
Gói tin thứ 4 là gói tin GET do http client gửi đi. Gói tin thứ 10 là gói tin thứ 4 em capture và sửa các field như id, sequence, checksum... rồi dùng winpcap gửi đi. Em muốn vừa inject packet mà vẫn duy trì được kết nối.

Mr.Khoai wrote:

Xin chúc mừng,

Bạn đã làm rất chi tiết và rất cụ thể. Có thể nói là bạn đã inject packet thành công vào một TCP session, và bạn hoàn toàn có khả năng hijack TCP session này. Một loạt các DUP ACK mà bạn nhận được là một ACK flood, một tình trạng rất quen thuộc khi bạn hijack/inject TCP session.

Như vậy, bạn hãy thử nghĩ xem, có cách nào khiến client thật phải close connection và ignore hết các gói mà server gửi về không? Gợi ý: Thường khi kết nối có một số lỗi khiến mình phải đóng một connection như port không mở, hoặc network không thông vân vân. Các lỗi đó dùng cái gì để thông báo cho các hosts?

Sâu hơn một tý, bạn đã chèn một gói tin cho server, nhưng client không biết -> DUP ACK flood. Vậy, có cách nào để bạn chèn một gói rác cho client, và update các fields như seq number, ack number, vân vân cho bên client không? Có cách nào để client không đóng connection, mà lại không nhận được gì từ server thật? Gợi ý: Cách cho client tạm thời không nhận được gì từ server phải nằm ở, hoặc dưới link layer. Các cú động chạm đến IP layer đều có thể làm động đến IP identifier. Và, bạn phải xử client trước khi server gửi lại ACK cho bạn, nếu không client cũng nhận được cái ACK này.

Lần nữa, khoai thấy bạn đã có rất đầy đủ thông tin trong file pcap của bạn. Bạn nên đưa lên forum thảo luận để bà con cùng tham khảo. Khoai ít thấy có các topic chuyên sâu về các fields và các kỹ thuật ở tầng TCP/IP. Các email thảo luận giữa bạn và khoai cũng rất có thể sẽ có ích cho các bạn khác.

khoai  


Em muốn sự trao đổi giữa client và server vẫn diễn ra được, có thể chậm đi một tí, VD như server gửi cho client và cần client trả lời, client có thể trả lời được, nhưng mình vẫn inject packet được và lấy những gì mình cần ! Ai chỉ dẫn cho em cụ thể hơn một tí, chứ hướng dẫn của anh khoai với gà con mới đi được bước đầu tiên như em thì còn khó quá !!!
[Up] [Print Copy]
  [Question]   Re: Inject packet 18/02/2008 17:35:44 (+0700) | #2 | 115249
Mr.Khoai
Moderator

Joined: 27/06/2006 01:55:07
Messages: 954
Offline
[Profile] [PM]
Chào hoanglinh9466,

Khoai tiếp tục gợi ý cho bạn: Một máy khi muốn send packet đến destination IP thì đầu tiên nó phải tìm cho ra next hop (hop tiếp theo) là gì. Nếu destination IP này nằm trong cùng LAN segment, next hop có thể chính là destination, nhưng nếu destination không nằm trong cùng LAN segment, next hop sẽ là default gateway.

Với cơ chế CSMA/CD thì làm sao một máy biết được một Ethernet frame là dành cho nó? Có cách nào khiến một máy tính không nhận một Ethernet frame (mà trên lý thuyết là dành cho nó) hay không?

Sau khi trả lời các câu hỏi lý thuyết trên, bạn sẽ tìm ra cách làm sao cho tạm thời, default gateway không liên lạc gì với client thật. Vậy, bạn sẽ có cách gửi một loạt các gói rác đến client thật để cập nhật các fields như TCP ACK, seq. Ngay sau đó, client này sẽ ACK lại, và sẽ lại gửi trả lời cho server với các TCP và IP fields thích hợp. Vậy là bạn có thể inject traffic vào một TCP session.

khoai
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|