Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)Nghiên Cứu Lỗ Hổng Tiềm Tàng Trong Hệ Thống Xác Thực Remote Desktop (tt)
Trang 1LỜI NÓI ĐẦU
Trong những năm gần đây, vấn đề bảo mật đang trở thành đề tài nóng, đặc biệt đối với các doanh nghiệp ứng dụng Công nghệ thông tin (CNTT) nhằm hỗ trợ các hoạt động kinh doanh thì vấn đề an toàn an ninh thông tin càng trở nên quan trọng Đối với nhiều doanh nghiệp vấn đề này còn mang tính sống còn như trong lĩnh vực ngân hàng, thương mại điện tử Một sự cố về an ninh thông tin có thể gây thiệt hại nặng nề về tài chính và uy tín của doanh nghiệp
Chính vì thế, việc nghiên cứu các kỹ thuật, các công cụ tấn công mới luôn là một vấn đề nóng, được rất nhiều các tổ chức, cá nhân quan tâm Luận văn nghiên cứu kỹ thuật tấn công nghe lén vào một công cụ được quản trị viên trong các hệ thống sử dụng rất nhiều, đó là công cụ Remote Desktop (RD) với Remote Desktop Protocol (RDP)
Trang 2Chương 1 - TỔNG QUAN VỀ REMOTE DESKTOP
1.1 Giới thiệu về Remote Desktop Protocol
Remote Desktop Protocol (RDP) là giao thức được phát triển bởi Microsoft, giúp truy cập từ xa tới các máy tính qua mạng một cách dễ dàng
và thuận tiện Khi RDP-Client kết nối tới server và hoàn thành việc chứng thực, client lúc này sẽ có quyền điều khiển server thông qua giao diện Desktop
1.2 Các phương thức chứng thực trong RDP
Bao gồm RDP Security (Basic) sử dụng mã hóa RDP có sẵn với 4 mức mã hóa, SSL (TLS 1.0) và cuối cùng là Network Authentication Level với Credential Security Support Provider (CredSSP) Protocol
1.3 Network Authentication Level (NLA)
NLA đòi hỏi client phải thực hiện chứng thực trước khi kết nối khi thiết lập phiên kết nối, quá trình này có tên gọi là “front authentication” Ngay sau đó, server cũng phải chứng thực với client để tạo phiên kết nối
1.4 Giao thức chứng thực NT LAN Manager (NTLM) sử dụng giữa client và DC
NTLM là giao thức chứng thực theo kiểu challenge-response Hình dưới đây thể hiện quá trình tương tác giữa NTLM client và NTLM server trong môi trường chứng thực tập trung
Trang 3Hình 1.1: Chứng thực NTLM trong Active Directory/ Pass-through
authentication
Noninteractive authentication, xảy ra khi người dùng sau khi đã đăng nhập nhưng cần được cấp quyền để truy cập tới các tài nguyên như các ứng dụng trên server thường bao gồm 3 thành phần: client, server và domain controller thực hiện việc chứng thực thay cho server
1.5 Tổng quan về Credential Security Support Provider
(CredSSP)
CredSSP được sử dụng để ngăn chặn việc người dùng gửi thông tin chứng thực tới những unauthorized server Hình dưới đây thể hiện sự truyền thông giữa CredSSP client và CredSSP server
Trang 4Hình 1.2: Truyền thông giữa CredSSP client và CredSSP server
Để có thể MITM giữa client và server, attacker cần phải có hoặc server SSL certificate hoặc phải có password của người muốn remote Dẫn đến với NLA, tấn công MITM gần như bất khả thi và hiện tại chưa có nghiên cứu nào đưa ra phương pháp tấn công MITM với NLA
1.6 Giới thiệu về Simple and Protected Generic Security Service Application Program Interface Negotiation Mechanism
(SPNEGO)
SPNEGO cung cấp một khung chung cho hai bên tham gia việc chứng thực để có thể cùng xác định một cơ chế chứng thực chung, và để làm cho giao thức bảo mật trở nên trong suốt với các giao thức của ứng dụng sử dụng SPNEGO
Trang 51.7 NTLM dùng trong SPNEGO
Mặc dù CredSSP có thể dùng SPNEGO với cả hai giao thức chứng thực là Kerberos và NTLM Nhưng Windows CredSSP client sẽ không bao giờ sử dụng Kerberos Điều này được nhắc tới trong tài liệu MS-CSSP, phần 1.4: Relationship to Other Protocols Như vậy, tất cả các phiên CredSSP sẽ sử dụng NTLM
1.8 Các phiên bản của Remote Desktop cùng các lỗ hổng
Hiện nay với một số điều kiện nhất định, có thể thực hiện việc tấn công MITM với Remote Desktop Protocol Portcullis Labs cũng phát triển một công cụ nghe lén đóng vai trò như một RDP proxy để thực hiện việc relay qua lại giữa client và server trong phiên RDP
Khi người dùng bỏ qua cảnh báo khi kiểm tra chứng thực của server không đúng thì MITM mới có thể tiến hành được
Trang 6Chương 2 - ĐỀ XUẤT PHƯƠNG PHÁP
TẤN CÔNG MITM VỚI NLA
2.1 Lý thuyết hóa bài toán xác thực Remote Desktop
RD sử dụng NLA chính là sự kết hợp của SSL và SPNEGO Vì thế nói đến bài toán xác thực trong RD là nói đến cơ chế chứng thực sử dụng
mã hóa bất đối xứng và SPNEGO
Hình 2.1: Mô hình lý thuyết của thuật toán mã hóa
bất đối xứng
Ở phần bên trái, bên gửi sử dụng hàm một chiều của bên nhận B (với thuật toán mã hóa E và khóa công khai của B là kB) cho tin nhắn plaintext
m và gửi ciphertext cho bên nhận là B
Ở phía bên phải, B với khóa private kB-1 có thể thực hiện việc giải
mã tin nhắn
Sau khi thiết lập phiên TLS/SSL, việc chứng thực NTLM trong NLA
sẽ được mô tả như sau:
Trang 7Client sẽ thực hiện thuật toán mã hóa E với mã hash mật khẩu người dùng kClientHash tạo ra ciphertext C1 và gửi tới cho server
Server cũng sẽ thực hiện thuật toán mã hóa E với mã hash mật khẩu người dùng lấy từ SAM database tạo ra ciphertext C2
Server sau khi nhận được C1 từ client sẽ tiến hành so sánh với C2 Nếu C1 và C2 giống nhau, việc chứng thực sẽ được xem như thành công Khi attacker có thể làm cho admin thay vì kết nối tới RDP server thì lại kết nối tới một SSL relay proxy mà mình kiểm soát(DNS Poisoning, ARP Spoof ) thì việc tấn công MITM sẽ theo hình dưới
Hình 2.2: Kiểu tấn công MITM cũ
Trang 8Nếu việc chứng thực giữa client và server lúc này sử dụng NLA, cho
dù admin có bỏ qua cảnh báo sai certificate, thì "font authentication" sẽ bị fail do certificate của MITM không giống certificate của RDP server dẫn đến bước kiểm tra certificate trong CredSSP sẽ thất bại
Bài toán đặt ra: Giả sử attacker đã chiếm được 2 máy trong domain, gọi là máy A1 và máy A2 Một máy Windows server là mục tiêu mà attacker muốn chiếm có cung cấp dịch vụ RDP và Admin sử dụng RDP client để quản trị server này Server lúc này chỉ cho phép sử dụng RDP với NLA Mục tiêu là làm sao để nghe lén được phiên kết nối RDP giữa Admin và Server và từ đó lấy được những thông tin quan trọng
2.2 TLS/SSL proxy trong tấn công MITM với RDP
Kết nối The Transport Layer Security (TLS)/Secure Sockets Layer (SSL) thực hiện việc chứng thực server dựa trên X.509 certificates và mã hóa tất cả các dữ liệu truyền thông giữa client và server ver theo mô hình end-to-end
TLS/SSL proxy đóng vai trò vừa như một client vừa như một server, gọi là Proxy-Client và Proxy-Server Proxy-Server sẽ gửi/nhận dữ liệu từ phía client và Proxy-Client sẽ gửi/nhận dữ liệu từ phía Server
2.3 Tấn công Man-In-The-Middle
Khái niệm tấn công MITM khá đơn giản và không giới hạn ở trong lĩnh vực bảo mật máy tính hay thế giới online Ở mức đơn giản nhất, người tấn công chỉ cần đứng ở giữa hai người đang giao tiếp với nhau và người
Trang 9tấn công có thể đọc được thông điệp được truyền giữa hai người và ở mức cao hơn là có thể giả mạo được một trong hai người kia
2.4 Cách tạo một RDP NLA/CredSSP server giả mạo để user kết nối tới
Tấn công MITM với NLA sẽ được thực hiện bằng cách sử dụng một máy để thực hiện thay việc chứng thực với Domain Controller (DC) Như vậy, không cần có server CA hay username/password của người dùng, phiên kết nối giữa client và MITM cũng sẽ được thiết lập Mô hình tấn công MITM sẽ theo như hình sau
Hình 2.3: Kiểu tấn công MITM mới với RDP NLA
Bước 1: Admin sử dụng RDP client để kết nối tới RDP server Bước 2: Thiết lập một TLS/SSL proxy relay trên máy A1 với public/private key được lấy từ A2
Bước 3: MITM lúc này có nhiệm vụ thiết lập TLS session với A2, sau đó relay truyền thông giữa RDP client và A2
Trang 10Bước 4: A2 sau khi nhận được yêu cầu chứng thực sẽ thực hiện NTLM noninteractive authentication tới DC để kiểm tra user từ MITM có hợp lệ
Sau khi hoàn tất “font authentication”, MITM lúc này có thể thực hiện:
Ngắt kết nối và ngưng giả mạo RDP server, người dùng lúc này sẽ thử kết nối lại và kết nối tới RDP server thật
Hoặc dùng username/password lấy từ phiên RDP relay, tạo một session mới với RDP thật và relay lại cho RDP client
2.4 Tóm tắt phương pháp tấn công
Phương pháp tấn công MITM đã trình bày ở trên dựa vào cơ chế chứng thực NTLM Noninteractive trong môi trường Active Directory Chứng thực NTLM lúc này xảy ra giữa RDP client và DC qua trung gian là RDP server
Lúc này việc kiểm tra sẽ diễn ra tại Domain Controller thay vì diễn
ra tại RDP Server:
ClientHash’ được tạo ra từ mật khẩu của người dùng trong cơ sở dữ
liệu của DC Domain Controller sẽ lưu giữ tất cả mật khẩu của người dùng trong Domain
Điều này dẫn tới, chỉ cần người dùng cung cấp đúng mật khẩu (tạo ra ClientHash), pha chứng thực sẽ được hoàn thành (C1 = C2) cho dù RDP
Trang 11server không hề có lưu trữ bất cứ thông tin nào về người dùng đó (chứng thực tập trung)
Việc tấn công MITM với RDP NLA có thể thực hiện được khi có đủ
3 điều kiện như sau:
Được thực hiện trong môi trường chứng thực tập trung Active Directory Client thay vì kết nối tới server thật thì phải kết nối được tới TLS/SSL proxy Người dùng bỏ qua cảnh báo sai server certificate khi bắt đầu phiên kết nối
Trang 12Chương 3 - THỰC NGHIỆM VÀ BIỆN PHÁP PHÒNG CHỐNG
3.1 Thực nghiệm phương pháp tấn công
3.1.1 Hệ thống thực nghiệm
Những máy tham gia vào mô hình tấn công sẽ có cấu hình như sau:
Bảng 3.1: Những máy tham gia vào mô hình tấn công
RDP Client Windows 7 192.168.146.129 TLS/SSL Proxy Windows 7 192.168.146.133 RDP server giả mạo Windows 7 192.168.146.131
DC Windows 2008 R2 192.168.146.128
RDP client phiên bản 6.1 sẽ được sử dụng
RDP client sẽ đượng dùng cấu hình mặc định
Hình 3.1: Cấu hình mặc định của RDO client
Mô hình tấn công thực nghiệm sẽ như sau:
Trang 13Hình 3.2: Mô hình tấn công
Trong mô hình trên, TLS/SSL Proxy và Fake RDP server là 2 máy
mà attacker kiểm soát Mọi dữ liệu qua 2 máy này sẽ được theo dõi
3.1.2 Thực nghiệm và kết quả
Người dùng/Người quản trị sẽ dùng Remote Desktop Client để kết nối tới RDP server
Hình 3.3: Giao diện RDP client khi bắt đầu kết nối
Giả sử trong trường hợp này, địa chỉ RDP server đã được giả mạo thành 192.168.146.133 Khi client kết nối tới TLS/SSL proxy, sẽ có cảnh báo sau:
Trang 14Hình 3.4: Cảnh báo khi client kết nối tới TLS/SSL proxy
Tại đây, nếu như client chọn “No”, phiên RDP sẽ ngay lập tức ngắt kết nối, và tấn công MITM sẽ không thể thực hiện được
Nếu người dùng chọn “Yes”, tấn công MITM lúc này chắc chắn sẽ thành công, tại TLS/SSL proxy, nơi chạy công cụ tấn công sẽ thông báo như hình 3.8:
Hình 3.5: Kết quả xuất ra của công cụ tấn công MITM mới
Trang 15Sau khi quá trình chứng thực giữa client và server thanh công, công
cụ MITM này sẽ lần lượt ghi lại 15 gói tin đầu tiên được gửi đi giữa client
và server, trong nội dung 15 gói tin này chắc chắn có chứa mật khẩu của người dùng Sau khi đạt mục đích, công cụ sẽ tiến hành ngắt kết nối giữa client và server
Công cụ mô phỏng tấn công chỉ dừng lại ở việc ghi lại 15 gói tin đầu tiên, nhưng với thông tin chứng thực đã lấy được, hoàn toàn có thể tạo thêm một kết nối tới RDP server thật sự và tiến hành relay gữa client với server thật này
3.2 Các phương pháp hạn chế
Điều quan trọng nhất để tấn MITM với RDP thành công chính là do người dùng bỏ qua cảnh báo sai server certificate
Cách tốt nhất là cấu hình chọn “Do not connect” khi không thể kiểm tra server certificate ngay lập tức kết nối sẽ bị ngắt
Hình 3.6: Kết nối sẽ bị ngắt khi kiểm tra server certificate không đúng
Trang 16Khi không thể tạo được kết nối với client, quá trình relay sẽ không thể thực hiện được, dẫn đến tấn công MITM lúc này sẽ thất bại
Ngoài ra, có thể phòng tránh việc kết nối tới MITM Proxy thay vì kết nối tới server thật theo một số cách như sau:
Người quản trị nên chú ý bảo vệ các DNS server có trong hệ thống Tiến hành sử dụng The Domain Name System Security Extensions (DNSSEC) để tránh bị tấn công DNS poisoning dẫn đến các server bị giả mạo DNSSEC sẽ tạo ra mỗi chứ ký riêng cho mỗi DNS record để đảm bảo rằng những record gửi từ server tới client sẽ không bị chỉnh sửa
Sử dụng địa chỉ MAC tĩnh để giảm bớt khả năng bị tấn công ARP poisoning Như thế, attacker sẽ không thể giả mạo địa chỉ của RDP server
để người dùng kết nối tới server giả mạo này Việc tấn công MITM trong trường hợp này chắc chắn sẽ thất bại
Trang 17KẾT LUẬN
Luận văn đã nghiên cứu về Remote Desktop Protocol cùng phương thức chứng thực của nó: Network Authentication Level Hay còn gọi là cơ chế chứng thực “front authentication” Trong đó, cả server và client phải được chứng thực với nhau trước khi phiên kết nối được thiết lập Bằng việc gắn cả hai cơ chế chứng thực TLS/SSL và SPNEGO, RDP giúp đảm bảo cho client và server định danh lẫn nhau trong phiên chứng thực Có thể nói, RDP với NLA chính là một cơ chế hiệu quả để bảo vệ phiên khỏi các phương thức tấn công MITM thông thường, ngay cả khi người dùng chọn
bỏ qua cảnh báo sai server certificate trong phiên TLS/SSL
Tuy nhiên, khi ở trong môi trường chứng thực tập trung Active Directory, cơ chế chứng thực Noninteractive NTLM được sử dụng trong NLA, dẫn đến việc attacker có thể tạo một TLS/SSL proxy và một RDP server giả mạo để thực hiện tấn công MITM Phương pháp tấn công MITM mới đã được đưa ra và chứng minh có thể thực hiện bằng cách tạo
ra một công cụ tấn công MITM chạy mô phỏng thành công
Luận văn đã đưa ra được cách khai thác lỗ hổng với NLA + Pass-through Authentication (mà cụ thể là trong môi trường Active Directory) Tất cả những cách tấn công trước đây đều chỉ đi theo hướng hạ xuống mức bảo mật thấp hơn Nhưng khi cấu hình server chỉ cho phép sử dụng NLA thì chưa có cách tấn công nào khác làm được
Trang 18Từ phương pháp tấn công mới, luận văn đã đưa ra một số phương pháp giúp hạn chế kiểu tấn công này như: cấu hình kiểm tra và ngắt kết nối khi server không có trong trust CA, phòng tránh bị tấn công DNS poisoning, ARP poisoning