MS-17-010
Introduction
MS17-010 là lỗ hổng bảo mật trong giao thức SMB (Server Message Block), thường là SMBv1, cho phép kẻ tấn công thực thi mã từ xa trên máy nạn nhân.
Lỗ hổng này còn được gọi là EternalBlue, xảy ra trên các hệ thống Windows, trải dài từ Windows XP đến Windows 10 version 1607.
Ransomware WannaCry khét tiếng năm 2017 đã lợi dụng lỗ hổng MS17-010 này để tấn công các hệ thống chưa được vá lỗi và lây lan ra toàn thế giới.
Technical Specifications
Các CVE liên quan: CVE-2017-0143, CVE-2017-0144, CVE-2017-0145, CVE-2017-0146, CVE-2017-0147, CVE-2017-0148
Cách thức tấn công: Kẻ tấn công khai thác SMB qua cổng 445 của máy nạn nhân. Attacker sẽ gửi các gói tin đặc biệt đến nạn nhân gây buffer overflow –> kích hoạt lỗ hổng, dẫn đến kẻ tấn công có thể RCE
Các phiên bản Windows bị ảnh hưởng
- Windows XP
- Windows 7, 8, 10 (trước khi vá)
- Windows Server 2003, 2008, 2012, 2016
Microsoft đã phát hành bản vá cho các hệ điều hành Windows bị ảnh hưởng. Tuy nhiên, các hệ thống không được vá hoặc không cập nhật thường xuyên vẫn dễ bị khai thác.
Attack Simulation
Sử dụng công cụ metasploit để tiến hành tấn công mô phỏng
Requirement
Ta sẽ sử dụng 2 máy bao gồm:
- Máy attacker: Kali Linux, 192.168.174.132
- Máy victim: Windows 7, 192.168.174.144
Reconnaissance
Trước tiên, ta thực hiện ping giữa 2 máy để đảm bảo rằng 2 máy có thể giao tiếp được với nhau.
Để thực hiện scan lỗi SMB17-010 EternalBlue có thể thực hiện 2 cách:
- Nmap
- Metasploit
Cách 1: Sử dụng Nmap
Chạy nmap -sS -sV 192.168.174.144 để xác định các cổng đang mở và phiên bản của dịch vụ ở máy nạn nhân.
Chạy nmap -sS -p 445 --script smb-vuln-ms17-010.nse 192.168.174.144 để để quét mục tiêu xem có bị lỗ hổng MS17-010 hay không
=> Xác nhận tồn tại lỗ hổng MS17-010
Cách 2: Sử dụng Metasploit
Ta tiến hành các bước sau:
- Chạy
msfconsole - Chọn module quét:
use auxiliary/scanner/smb/smb_ms17_010 - Thiết lập địa chị IP mục tiêu:
set rhosts 192.168.174.144 - Bắt đầu quét:
run
Exploiting
Để thực hiện truy cập vào máy victim, ta sử dụng metasploit và dùng search ms17 để tìm các module liên quan
Ta dùng module exploit/windows/smb/ms17_010_eternalblue
Kiểm tra các giá trị của module này với lệnh show options. Có 3 giá trị mà chúng ta cần phải thay đổi đó là RHOSTs, LHOST và LPORT.
RHOSTs: IP của victimLHOST: IP của attackerLPORT
Sau khi tấn công thành công, ta có thể thực thi một số hành động sau:
- Cài phần mềm độc hại như ransomware, trojan, hoặc backdoor để duy trì quyền truy cập vào hệ thống.
- Ví dụ để upload file, ta dùng lệnh:
upload <filename>
- Ví dụ để upload file, ta dùng lệnh:
- Sử dụng lệnh
shellđể điều khiển máy victim từ xa. - Theo dõi nạn nhân: keylogging, sử dụng camera của nạn nhân
Detection and Prevention
Detection
Giám sát lưu lượng mạng: Dùng công cụ như Wireshark để kiểm tra các gói SMB có nội dung bất thường hoặc có dấu hiệu của khai thác MS17-010.
- Kiểm tra các lưu lượng bất thường qua cổng 445
- Có thể theo dõi tần suất gửi yêu cầu SMB
- Xem xét các yêu cầu SMB negotiation hoặc trans2 để xác định lưu lượng có thể chứa mã khai thác
Phân tích log –> Kiểm tra các tiến trình lạ: Các cuộc tấn công thường kích hoạt các tiến trình lạ trên máy nạn nhân (như các phiên shell hoặc các phần mềm độc hại chạy ẩn).
- Theo dõi Event Windows hoặc sử dụng Sysmon để kiểm tra các kết nối và quá trình bất thường.
- Tìm kiếm các dấu hiệu đăng nhập, lỗi hệ thống, hoặc các hành vi đáng ngờ khác.
Event 4624, Logon type: 5 đã có phiên đăng nhập được thực hiện bằng service
Sysmon, Event ID 1 - Giám sát các process mới để xem có process nào lạ được khởi chạy không
Sysmon, Event ID 10 - Ghi nhận các truy cập đến tiến trình khác, đặc biệt là các tiến trình nhạy cảm như LSASS để lấy cắp thông tin xác thực. Đây có thể là dấu hiệu của EternalBlue khai thác thành công
Prevention
- Sử dụng anti-virus và thường xuyên cập nhật các bản vá lỗi
- Vô hiệu hóa giao thức SMBv1
- Giao thức SMBv1 đã lỗi thời và không an toàn. Có thể tắt SMBv1 để giảm thiểu nguy cơ bị tấn công:
- Windows 10 và các phiên bản mới hơn đã vô hiệu hóa SMBv1 mặc định, nhưng nên kiểm tra để đảm bảo.
- Kiểm soát cổng 445 bằng firewall
- Chặn cổng 445 từ bên ngoài để ngăn chặn truy cập trái phép vào giao thức SMB từ mạng bên ngoài.
- Giới hạn quyền truy cập SMB trong nội bộ mạng và chỉ cho phép các kết nối cần thiết.
- Backup dữ liệu thường xuyên
- Đảm bảo backup định kỳ dữ liệu quan trọng để có thể khôi phục nhanh chóng trong trường hợp bị tấn công.
References
https://nvd.nist.gov/vuln/detail/cve-2017-0143
https://www.sentinelone.com/blog/eternalblue-nsa-developed-exploit-just-wont-die/








