J2TEAM Security: A must-have extension for Chrome users. Install now!

Kỹ thuật tấn công Pass the Hash và cách phòng chống

Kỹ thuật tấn công Pass the Hash và cách phòng chống | Juno_okyo's Blog
Phân tích kỹ thuật tấn công Pass the Hash
Cách thức hoạt động của kỹ thuật tấn công Pass the Hash và minh họa các quá trình sử dụng thành công giá trị hash của mật khẩu lấy được mà không cần phải crack để có các nội dung đã được che giấu của nó.


1. Giới thiệu

Trong vai trò là một chuyên gia bảo mật, bạn thường tập trung thời gian vào việc đảm bảo cho các chính sách mật khẩu sao cho tỉ mỉ và đủ phức tạp để làm sao chúng không bị crack bởi các cá nhân với mục đích xấu. Thực tế là, mật khẩu của hệ thống Windows có thể bị crack một cách khá dễ dàng bằng cách thức trong bài viết này http://www.windowsecurity.com/articles/How-Cracked-Windows-Password-Part1.html. Trong bài viết này, chúng tôi cung cấp cho các bạn một cái nhìn tổng quan về cách thức các mật khẩu được hash, được lưu trữ và cách thức kẻ tấn công thực hiện nhằm break các mật khẩu này.

Bạn nghĩ sao nếu chúng tôi nói rằng trong các tình huống thích hợp chúng tôi thậm chí không cần phải crack các mật khẩu của bạn mà vẫn có thể có được quyền truy nhập vào hệ thống như thể chúng tôi đang sử dụng username và mật khẩu của bạn. Tình huống này không liên quan đến một số cải tiến mở rộng của khai thác 0-day hay các thủ thuật đánh lừa bạn click vào một đường dẫn trong email giả mạo. Việc này này được thực hiện một cách rất đơn giản với kỹ thuật có tên gọi Pass the Hash. Trong bài viết này, chúng ta sẽ xem xét cách thức hoạt động của kỹ thuật này, và minh họa các quá trình sử dụng cách giá trị hash của mật khẩu lấy được và sử dụng chúng thành công để có được quyền truy nhập hệ thống mà không cần crack để có các nội dung đã được che dấu của chúng. Và luôn luôn, bên cạnh giới thiệu kỹ thuật tấn công chúng tôi sẽ giới thiệu một số ký thuật phát hiện và phòng chống để làm sao bạn không trở thành nạn nhân của kỹ thuật tấn công này.

2. Hash ở mức gói dữ liệu
Mỗi khi bạn tạo một mật khẩu cho một tài khoản trong Windows, nó sẽ chuyển đổi mật khẩu đó thành một chuỗi giá trị hash. Giá trị hash là kết quả của một hàm mật mã thực hiện trên một chuỗi dữ liệu có độ dài tùy ý, sau đó thực hiện một hàm mã hóa toán học trên chuỗi dữ liệu này, kết quả là một chuỗi có độ dài cố định. Kết quả cuối cùng thay vì mật khẩu có dạng “Password123” bạn sẽ có được một chuỗi giá trị hash dạng
“94354877D5B87105D7FEC0F3BF500B33”. Một số nguyên nhân của việc này. Đầu tiên, mật khẩu của bạn sẽ không lưu trữ trên đĩa cứng dưới dạng văn bản rõ mà ai cũng có thể truy cập được. Thứ hai, mật khẩu của bạn sẽ không truyền dưới dạng văn bản rõ khi truyền qua mạng trong trường hợp bạn phải thực hiện thao tác xác thực với các thiết bị khác (máy chủ Domain Controller chẳng hạn). Chúng tôi sẽ không nói lại cách các giá trị hash được tạo ra trong bài viết này, bạn có thể xem thêm tại đây http://www.windowsecurity.com/articles/How-Cracked-Windows-Password-Part1.html

Mỗi khi bạn truy cập vào một tài nguyên nào đó trên một máy tính được bảo vệ bởi cơ chế xác thực username và mật khẩu bạn sẽ phải thực hiện một yêu cầu xác thực khở tạo bởi máy chủ. Thông thường, bạn cần cung cấp username và mật khẩu. Khi bạn nhập mật khẩu, máy tính của bạn sẽ thực hiện hàm hash lên mật khẩu và gửi trình kết quả cho máy chủ, máy chủ sẽ tiến hành so sánh với giá trị hash có sẵn trong cơ sở dữ liệu xác thực. Nếu các giá trị hash khớp nhau, bạn được cấp quyền truy nhập.




Hình 1. Một phiên xác thực thông thường

1. User thử truy cập tài nguyên
2. Server gửi yêu cầu xác thực
3. User cung cấp username và mật khẩu
4. Mật khẩu được cung cấp được chuyển thành giá trị hash
5. Giá trị hash được gửi đến server
6. Server kiểm tra giá trị hash dựa vào giá trị đã có trong cơ sở dữ liệu
7. Quyền truy cập tài nguyên được cung cấp

Bây giờ chúng ta xem xét một kịch bản khác. Điều gì xảy ra khi chúng ta thiết lập một kết nối thủ công tới máy chủ có tài nguyên mà chúng ta muốn truy cập, dĩ nhiên là thay vì cung cấp username và mật khẩu không có đặc quyền thì chúng ta cung cấp cho nó username quản trị và giá trị hash của mật khẩu của quản trị mà chúng ta đánh cắp được. Những gì chúng ta vừa thực hiện sẽ cho phép ta có quyền truy cập của quản trị vào máy chủ mục tiêu.

Cần nhớ rằng, tất cả những gì máy chủ quan tâm là việc nhận được một giá trị hash trùng khớp với giá trị hash nó mong đợi. Điều này có nghĩa là bạn không cần phải thực hiện hàm hash một chiều lên mật khẩu mà chỉ cần cung cấp giá trị hash của mật khẩu cho máy chủ, đây là điểm mấu chốt của kỹ thuật tấn công này.




Hình 2. Chuyển giá trị hash trực tiếp đến máy chủ mục tiêu

1. Hacker thử truy cập tài nguyên
2. Server gửi yêu cầu xác thực
3. Hacker cung cấp username và giá trị hash của mật khẩu đánh cắp được
4. Giá trị hash được gửi đến server
5. Server kiểm tra giá trị hash dựa vào giá trị đã có trong cơ sở dữ liệu
6. Quyền truy cập tài nguyên được cung cấp

3. Sử dụng Metasploit để thực hiện tấn công Pass the Hash

Trên đây là các lý thuyết của kỹ thuật tấn công Pass the Hash, bây giờ chúng ta sẽ thực hiện nó. Trong thử nghiệm này chúng ta sẽ chuyển một giá trị hash lấy được của một người dùng có đặc quyền quản trị đến hệ thống nạn nhân. Để thực hiện tấn công này, chúng ta cần hai thứ. Một là, giá trị hash của mật khẩu của user có quyền quản trị. Có nhiều cách để lấy được giá trị hash này, tham khảo http://www.windowsecurity.com/articles/How-Cracked-Windows-Password-Part2.html. Hai là, một công cụ để thực hiện tấn công - ở đây chúng ta sử dụng metasploit.

Với giá trị hash lấy được và metasploit trong tay chúng ta bắt đầu thực hiện tấn công.

Một số module sử dụng trong metasploit để thực hiện tấn công Pass the Hash:
- Psexec
- shell_reverse_tcp

Các thông tin cần thiết để thực hiện tấn công:
- Địa chỉ IP của nạn nhân
- Hash đánh cắp của nạn nhân
- Username của nạn nhân
- Địa chỉ IP của máy tính thực hiện tấn công

Thực hiện tấn công thành công



Hình 3. Tấn công Pass the Hash thành công

4. Phòng chống tấn công Pass the Hash

Kỹ thuật tấn công Pass the Hash là khó phát hiện và ngăn chặn do cách thức nó khai thác vào quy trình xác thực. Có một số cách phòng chống như sau:

- Sử dụng hệ thống phát hiện xâm nhập
- Cách ly các hệ thống nhạy cảm
- Sử dụng giải pháp xác thực thay thế (xác thực đa nhân tố)
- Hạn chế truy nhập với quyền quản trị

5. Kết luận

Pass the Hash là một kỹ thuật rất dễ thực hiện và rất nguy hiểm cho nạn nhân. Như những gì bạn thấy qua bài viết này, tất cả những gì cần thiết để thực hiện cuộc tấn công là thông tin về giá trị hash và một công cụ phổ biến. Khi đó, kẻ tấn công có tất cả những gì hắn cần để làm tê liệt hoàn toàn cơ sở hạ tầng của bạn. Hy vọng rằng với những hiểu biết về kỹ thuật tấn công này cũng như các chiến lược phát hiện và ngăn chặn mà chúng ta đã thảo luận bạn sẽ có sự chuẩn bị tốt hơn để phòng chống và ứng xử với kỹ thuật tấn công này.

Bài viết của tác giả Chris Sanders được lược dịch bởi hvthang. Nguồn từ Windowsecurity.com
Link gốc: http://www.windowsecurity.com/articles/Dissecting-Pass-Hash-Attack.html?printversion

Nguồn bài dịch: HVA
Leader at J2TEAM. Website: https://j2team.dev/

Đăng nhận xét

Cảm ơn bạn đã đọc bài viết!

- Bạn có gợi ý hoặc bình luận xin chia sẻ bên dưới.

- Hãy viết tiếng Việt có dấu nếu có thể!