2012-10-18 23 views
9

Tôi đang làm việc trên một khuôn khổ thử nghiệm trang web và tôi muốn có thể giả mạo người dùng ip. Tôi đã đọc, phần mềm đó như Loadrunner có thể làm điều này, và tôi muốn có thể làm điều này là tốt.Làm thế nào để giả mạo một địa chỉ IP bằng cách sử dụng một ổ cắm?

Hướng dẫn về cách sử dụng ổ cắm thông thường có thể được tìm thấy here, nhưng nếu tôi muốn giả mạo ip, tôi sẽ phải bằng cách nào đó chỉnh sửa tiêu đề ip. Điều này được thực hiện trên cấp độ ổ cắm, hoặc là có một cấp độ khác sâu hơn trong. Net, mà sẽ cho phép tôi làm điều này?

Trả lời

9

Bạn không thể nữa, như truy cập vào ổ cắm thô đã bị hạn chế trong các phiên bản máy tính để bàn của Windows:

Trên Windows 7, Windows Vista, Windows XP với Service Pack 2 (SP2) và Windows XP với Gói Dịch vụ 3 (SP3), khả năng gửi lưu lượng qua ổ cắm thô đã bị hạn chế theo một số cách:

  • Không thể gửi dữ liệu TCP qua ổ cắm thô.
  • UDP datagrams với địa chỉ nguồn không hợp lệ không thể được gửi qua ổ cắm thô. Địa chỉ nguồn IP cho bất kỳ gói dữ liệu UDP đi nào phải tồn tại trên một giao diện mạng hoặc datagram bị loại bỏ. Sự thay đổi này đã được thực hiện để hạn chế khả năng mã độc hại tạo ra các tấn công từ chối dịch vụ phân tán và hạn chế khả năng gửi các gói tin giả mạo (các gói TCP/IP có địa chỉ IP nguồn giả mạo).
  • Không được phép gọi hàm bind với ổ cắm thô cho giao thức IPPROTO_TCP.
    Lưu ý Chức năng bind với ổ cắm thô được phép cho các giao thức khác (IPPROTO_IP, IPPROTO_UDP hoặc IPPROTO_SCTP, ví dụ).

(Từ Dev Center - Desktop - TCP/IP Raw Sockets)

Bạn có thể tạo một socket thô khá dễ dàng:

Socket s = new Socket(ip.AddressFamily, SocketType.Raw, ProtocolType.Ip); 

Tại thời điểm đó nó vào bạn để xây dựng các gói tin phù hợp (đó sẽ là một câu hỏi riêng biệt nếu bạn không có tài liệu hướng dẫn cách thực hiện việc này theo cách thủ công)

+0

điều này có nghĩa là quyền truy cập vào ổ cắm thô được bật trên các phiên bản máy chủ của cửa sổ? –

+2

Có, chỉ các phiên bản máy chủ mới cho phép bạn giả mạo nguồn gốc của các gói (vì các máy chủ có thể phải làm điều này cho mục đích định tuyến) – PhonicUK

+0

Bạn có thể cung cấp một ví dụ sẽ hoạt động trên máy chủ Windows 2008 không? –

1

LoadRunner chỉ có thể giả mạo địa chỉ IP khi địa chỉ IP thực tế s tồn tại trên Load Generator. Vì vậy, nếu tôi có 200 địa chỉ IP được gán cho máy chủ của mình thì tôi có thể phân phối tải của mình trên các địa chỉ IP này thay vì có giao diện mạng chi phí thấp nhất hoặc giao diện mạng chính và mạng phụ trong hệ điều hành. Điều này đúng không chỉ của LoadRunner mà còn các công cụ kiểm tra hiệu suất ứng dụng khác giả mạo, địa chỉ cần được gán cho máy chủ tạo tải.

Nếu bạn đang tìm kiếm các giải pháp giả mạo mà không cần gán địa chỉ IP cho máy chủ cho mục đích thử nghiệm thì bạn có thể xem xét các công cụ kiểm tra hiệu suất mạng, đặc biệt là các giải pháp dựa trên khung gầm, từ các công ty như Spirent và Ixia. Các giải pháp mạng này cũng có thể tạo ra hàng chục nghìn địa chỉ MAC không có thật để đi với các địa chỉ IP không có thật nếu cần thiết.

Các vấn đề liên quan