NAT slipstreaming, một cuộc tấn công bỏ qua cho phép truy cập vào bất kỳ dịch vụ TCP / UDP nào

Samy Kamkar (một nhà nghiên cứu bảo mật nổi tiếng, được biết đến với việc tạo ra một số thiết bị tấn công tinh vi, chẳng hạn như phần mềm ghi lại thao tác bàn phím trong bộ sạc điện thoại USB) đã giới thiệu một kỹ thuật tấn công mới gọi là "NAT slipstreaming".

Cuộc tấn công cho phép, khi mở một trang web trong trình duyệt, thiết lập kết nối từ máy chủ của kẻ tấn công đến bất kỳ cổng UDP hoặc TCP nào trên hệ thống của người dùng nằm sau bộ chuyển đổi địa chỉ. Bộ công cụ tấn công được công bố trên GitHub.

Phương pháp này dựa trên việc đánh lừa cơ chế theo dõi kết nối ALG (Application Level Gateway) trong các bộ chuyển đổi địa chỉ hoặc tường lửa, được sử dụng để tổ chức chuyển tiếp NAT cho các giao thức sử dụng nhiều cổng mạng (một cổng cho dữ liệu và một cổng cho điều khiển), chẳng hạn như SIP, H323, IRC DCC và FTP.

Cuộc tấn công này áp dụng cho người dùng kết nối với mạng bằng địa chỉ nội bộ trong phạm vi intranet (192.168.xx, 10.xxx) và cho phép gửi bất kỳ dữ liệu nào đến bất kỳ cổng nào (không có tiêu đề HTTP).

Để thực hiện một cuộc tấn công, nạn nhân chỉ cần thực thi đoạn mã JavaScript do kẻ tấn công chuẩn bị , ví dụ như bằng cách mở một trang trên trang web của kẻ tấn công hoặc xem một quảng cáo độc hại trên một trang web hợp pháp.

Ở giai đoạn đầu tiên, kẻ tấn công thu thập thông tin về địa chỉ nội bộ của người dùng, thông tin này có thể được xác định bằng WebRTC hoặc, nếu WebRTC bị vô hiệu hóa, bằng các cuộc tấn công vét cạn với thời gian phản hồi được đo lường khi yêu cầu một hình ảnh ẩn (đối với các máy chủ hiện có, việc yêu cầu hình ảnh sẽ nhanh hơn so với các máy chủ không tồn tại do thời gian chờ trước khi trả về phản hồi TCP RST).

Ở giai đoạn thứ hai, mã JavaScript được thực thi trong trình duyệt của nạn nhân tạo ra một yêu cầu HTTP POST lớn (không vừa trong một gói tin) gửi đến máy chủ của kẻ tấn công bằng cách sử dụng số cổng mạng không chuẩn để bắt đầu điều chỉnh các tham số phân mảnh TCP và kích thước MTU trong ngăn xếp TCP của nạn nhân.

Để đáp trả, máy chủ của kẻ tấn công trả về một gói TCP với tùy chọn MSS (Maximum Segment Size), tùy chọn này xác định kích thước tối đa của gói tin nhận được. Trong trường hợp UDP, thao tác tương tự, nhưng nó dựa vào việc gửi một yêu cầu WebRTC TURN lớn để kích hoạt phân mảnh ở cấp độ IP.

«NAT Slipstreaming khai thác trình duyệt của người dùng kết hợp với cơ chế theo dõi kết nối Application Level Gateway (ALG) được tích hợp trong NAT, bộ định tuyến và tường lửa bằng cách chuỗi trích xuất IP nội bộ thông qua một cuộc tấn công theo thời gian hoặc WebRTC, phát hiện phân mảnh Kamkar cho biết trong một bài phân tích về IP và MTU từ xa tự động, tạo kích thước gói TCP, lạm dụng xác thực TURN, kiểm soát chính xác các giới hạn gói và nhầm lẫn giao thức do lạm dụng trình duyệt "

Ý tưởng chính là , khi biết các tham số phân mảnh, bạn có thể gửi một yêu cầu HTTP lớn, phần đuôi của nó sẽ nằm trong gói tin thứ hai . Đồng thời, phần đuôi đến của gói tin thứ hai được chọn để loại trừ các tiêu đề HTTP và được cắt bớt chỉ còn dữ liệu hoàn toàn tương ứng với một giao thức khác mà NAT traversal hỗ trợ.

Trong giai đoạn thứ ba, sử dụng thao tác trên, mã JavaScript tạo và gửi một yêu cầu HTTP được chọn đặc biệt (hoặc TURN cho UDP) đến cổng TCP 5060 của máy chủ của kẻ tấn công, sau khi phân mảnh, sẽ được chia thành hai gói: gói có tiêu đề HTTP và một phần dữ liệu và gói SIP hợp lệ với IP nội bộ của nạn nhân.

Hệ thống theo dõi kết nối trong ngăn xếp mạng sẽ coi gói tin này là sự khởi đầu của một phiên SIP và sẽ cho phép chuyển tiếp gói tin đến bất kỳ cổng nào do kẻ tấn công lựa chọn, với giả định rằng cổng đó được sử dụng để truyền dữ liệu.

Cuộc tấn công có thể được thực hiện bất kể trình duyệt nào được sử dụng . Để giải quyết vấn đề, các nhà phát triển của Mozilla đã đề xuất chặn khả năng gửi yêu cầu HTTP đến các cổng mạng 5060 và 5061, vốn liên quan đến giao thức SIP.

Các nhà phát triển của công cụ Chromium, Blink và WebKit cũng có ý định thực hiện một biện pháp bảo vệ tương tự.

Nguồn: https://samy.pl


Thêm vào danh sách nguồn ưu tiên trên Google.