Trong phần này, chúng ta sẽ tìm hiểu lệnh cơ bản của Metasploit và cách sử dụng khai thác trên một máy dễ bị tấn công là Metasploitable. Một số lệnh cơ bản của Metasploit là tìm kiếm, quay lại, thông tin, trợ giúp và thoát.
Metasploit là gì ?
Metasploit là một mã nguồn mở, một hệ thống tấn công mạng, công cụ phát triển cho các nghiên cứu an ninh mạng và kiểm tra bảo mật. Nó cung cấp cho các nhà an ninh mạng, nhà phát triển phần mềm và các nhà kiểm tra bảo mật một nền tảng để phát triển, chạy và kiểm tra các chiến dịch tấn công mạng. Metasploit cung cấp cho các nhà an ninh mạng thông tin về các lỗ hổng bảo mật của hệ thống và cung cấp các công cụ để tấn công các hệ thống để phát hiện và sửa chữa các lỗ hổng này.
Metasploit được sử dụng làm gì ?
Metasploit là một nền tảng kiểm thử an ninh mạng được sử dụng để tìm kiếm, phát hiện và khai thác lỗ hổng bảo mật trong hệ thống máy tính. Nó được sử dụng bởi các kiểm thử an ninh để xác định mức độ nghiêm trọng của lỗ hổng và tìm cách sửa chữa chúng. Metasploit còn cung cấp một kết nối đến các công cụ và dữ liệu để giúp các nhà bảo mật kiểm soát và giải quyết các vấn đề bảo mật.
Ai nên sử dụng metasploit
Metasploit thường được sử dụng bởi các nhà bảo mật mạng, nghiên cứu viên bảo mật, và các kỹ sư phần mềm để gỡ rối và phát hiện các lỗ hổng bảo mật trong mạng lưới hoặc hệ thống. Tuy nhiên, việc sử dụng Metasploit cần thận trọng và chỉ nên thực hiện bởi những người có kiến thức và kinh nghiệm về bảo mật mạng, vì nếu sử dụng sai có thể dẫn đến việc gây hại cho hệ thống hoặc mạng lưới.
Kiến trúc của metasploit
Metasploit là một mô-đun mã nguồn mở được sử dụng cho các nghiên cứu an ninh mạng và kiểm tra bảo mật. Nó có một kiến trúc modular cho phép người dùng tải các mô-đun mới và tùy chỉnh các chức năng của nó.
Metasploit có một giao diện dòng lệnh để cho phép người dùng tạo và chạy các tác vụ tấn công. Nó cung cấp các mô-đun để tấn công các mục tiêu và tận dụng các lỗ hổng bảo mật. Nó cũng có một giao diện web để cho phép người dùng tương tác với mô-đun một cách dễ dàng hơn.
Kiến trúc của Metasploit bao gồm các phần sau:
- Thư viện lỗ hổng: Chứa các mô-đun để tìm kiếm các lỗ hổng trong các hệ thống.
- Định hình lỗ hổng: Chứa các mô-đun để tìm kiếm các lỗ hổng trong hệ thống và xác định cách tấn công chúng.
- Tấn công: Chứa các mô-đun để thực hiện các tác vụ tấn công.
- Công cụ phụ trợ: Chứa các mô-đun để hỗ trợ các tác vụ tấn công.
Back và exit commands
Trong Metasploit, lệnh sử dụng kích hoạt một mô-đun cụ thể và trên cơ sở mô-đun đó, nó thay đổi nội dung của msfconsole.
Trong ảnh chụp màn hình ở trên, nội dung của dòng lệnh được thay đổi thành phần khai thác có tên là realvnc_client. Bây giờ thông tin của khai thác này có thể được truy xuất, các tham số yêu cầu của khai thác có thể được thiết lập và tham số có thể chạy ngược lại mục tiêu.
Việc sử dụng lệnh back sẽ được yêu cầu nếu chúng ta muốn để lại nội dung của phần khai thác và chuyển về msfconsole. Chúng ta sẽ quay lại msfconsole sau khi sử dụng lệnh back. Bây giờ chúng ta có thể chuyển sang một mô-đun khác của Metasploit bằng cách sử dụng lại lệnh sử dụng. Msfconsole sẽ được đóng bằng cách sử dụng lệnh thoát. Sau lệnh này, chúng tôi sẽ quay lại thiết bị đầu cuối của Kali Linux.
Xem thêm 20+ công cụ khai thác lỗ hổng bảo mật của kali linux
Help command
Danh sách tất cả các lệnh có thể có, bao gồm cả mô tả, được đưa ra bởi lệnh trợ giúp. Nếu chúng ta chọn bất kỳ hoạt động khai thác nào, chúng ta có thể nhận được danh sách lệnh khai thác bằng cách sử dụng lệnh trợ giúp, được hiển thị như sau:
Info command
Khi chúng tôi chọn một khai thác bằng lệnh sử dụng, chúng tôi có thể sử dụng lệnh thông tin để nhận thông tin như tác giả mục tiêu có sẵn, tên, nền tảng và nhiều thông tin khác. Bây giờ chúng ta sẽ thực hiện một khai thác có tên là ie_execcommand_uaf bằng cách sử dụng lệnh info:
Search Command
Metasploit chứa một số lượng lớn các khai thác khác nhau, khoảng 1.500 và các khai thác mới được thêm vào thường xuyên. Vì vậy, nó trở nên rất quan trọng để biết về số lần khai thác bằng cách sử dụng chức năng tìm kiếm. Chức năng tìm kiếm sẽ được sử dụng rất dễ dàng bằng cách áp dụng lệnh tìm kiếm, theo sau là cụm từ tìm kiếm. Ví dụ: giả sử chúng ta muốn biết việc khai thác liên quan đến Flash player, vì vậy chúng ta sẽ sử dụng flash làm cụm từ tìm kiếm. Trong ảnh chụp màn hình sau, chúng tôi sử dụng lệnh tìm kiếm theo sau là đèn flash, như được hiển thị bên dưới:
Trong ảnh chụp màn hình ở trên, chúng ta có thể thấy rằng phần mềm flash player có rất nhiều cách khai thác và tất cả các cách khai thác đều được hiển thị ở trên.
Xem thêm Kiểm tra lỗ hổng bảo mật Command Injection
Lệnh sử dụng Metasploit
Chúng tôi đã học cách sử dụng các lệnh Metasploit, được sử dụng để kích hoạt khai thác trên msfconsole. Chúng ta cũng đã học lệnh sử dụng để thay đổi ngữ cảnh của dòng lệnh để khai thác. Bây giờ chúng ta sẽ tìm hiểu về tham số khai thác, cách hiển thị chúng bằng cách sử dụng lệnh set và cách thay đổi chúng. Làm thế nào chúng ta có thể hiển thị mục tiêu, né tránh, nâng cao và tùy chọn trọng tải cũng sẽ tìm hiểu trong phần này. Các tham số có sẵn cho chương trình lệnh sẽ được hiển thị bằng lệnh hiển thị trợ giúp, như hình dưới đây:
Option
Nếu dòng lệnh nằm trong ngữ cảnh của một khai thác, các tham số có sẵn cho một khai thác sẽ được hiển thị bằng lệnh hiển thị tùy chọn. Bây giờ chúng ta sẽ sử dụng khai thác có tên là adobe_flash_shader_drawing_fill với lệnh sử dụng như sau:
msf > Use exploit/multi/browser/ adobe_flash_shader_drawing_fill
Tiếp theo là các tùy chọn hiển thị lệnh
msf > show options
Trong ảnh chụp màn hình ở trên, có tổng cộng 6 tùy chọn được bao gồm trong khai thác flash và require 2 tham số:
- Retries
- SRVHOST (Required)
- SRVPORT (Required)
- SSL
- SSLCert
- URLPath
Trong tùy chọn mô-đun, mục tiêu hiện được chọn sẽ được trả về bằng lệnh hiển thị tùy chọn. Đối với khai thác đã chọn, 0 là mục tiêu mặc định, là Windows.
Bây giờ chúng ta sẽ sử dụng lệnh set để thay đổi các giá trị mặc định. Tên tùy chọn và giá trị mới sẽ tuân theo lệnh đã đặt:
Giá trị của SRVHOST sẽ được thay đổi thành 192.168.0.100 bằng cách sử dụng lệnh Đặt SRVHOST 192.168.0.100. Cổng 8080 sẽ được thay đổi thành 80 bằng cách sử dụng lệnh Đặt SRVPORT 80.
Giá trị đã thay đổi của SRVHOST và SRVPORT có thể được xác minh lại bằng cách sử dụng lệnh tùy chọn hiển thị. Sử dụng lệnh set, chúng ta có thể thay đổi các giá trị của Boolean. Lệnh set sẽ được theo sau bởi tên tùy chọn và true hoặc false.
Xem thêm Các công cụ khai thác Post Exploitation trên kali
Show payloads
Để khai thác, một danh sách các trọng tải tương thích sẽ được msfconsole trả về bằng cách sử dụng tùy chọn tải trọng hiển thị. Trong ví dụ cụ thể về khai thác trình phát flash, một số trọng tải tương thích được trả về bởi msfconsole như sau:
Bây giờ chúng ta sẽ sử dụng lệnh set để sử dụng payload nhất định với tên payload như sau:
Set payload linux/x86/exec
Trong ảnh chụp màn hình ở trên, chúng tôi đã đặt tải trọng là linux / x86 / exec.
Show targets
Danh sách hệ điều hành có lỗ hổng trong cách khai thác đã chọn được khôi phục bằng lệnh hiển thị mục tiêu.
Đối với khai thác có tên adobe_flash_shader_drawing_fil, kết quả sau sẽ được trả về khi chúng tôi chạy lệnh hiển thị mục tiêu như sau:
Hệ điều hành Linux và Windows được nhắm mục tiêu bởi khai thác này. Nếu chúng ta muốn biết thêm thông tin về việc khai thác và mục tiêu, lệnh thông tin có thể đã sử dụng. Bây giờ chúng ta sẽ sử dụng lệnh set để đặt mục tiêu với ID mục tiêu như sau:
set target 1
Danh sách tải trọng có thể được giảm bớt bằng cách đặt mục tiêu vì nó sẽ chỉ hiển thị những tải trọng mà mục tiêu có vẻ tương thích:
Show advanced
Để khai thác, nếu chúng ta muốn xem xét các tùy chọn nâng cao, chúng ta có thể sử dụng lệnh show advanced như sau:
Nếu chúng ta muốn thay đổi cài đặt nâng cao, chúng ta sẽ sử dụng lệnh set với các tham số nâng cao và giá trị mới như sau:
Set displayablepayloadhandler true
Show encoders
Bộ mã hóa tương thích sẽ được trả về bằng lệnh chương trình mã hóa. IPS / IDS đơn giản bị bộ mã hóa né tránh, chúng đang tìm kiếm các byte nhất định trong tải trọng của chúng tôi như sau:
Chúng tôi sẽ sử dụng lệnh set với tên bộ mã hóa để sử dụng bộ mã hóa.
Xem thêm Web mining – các kiến thức về web mining
Show nops
Danh sách các trình tạo NOP sẽ được trả về bằng lệnh show nops. NOP là viết tắt của No Operation. Nếu chúng ta muốn bỏ qua chữ ký IDS / IPS đơn giản của xe trượt NOP thông thường, NOP sẽ được sử dụng để thay đổi kiểu của xe trượt NOP. Sử dụng kiến trúc CPU, bộ tạo NOP sẽ khởi động.
Chúng ta phải sử dụng lệnh set với tên của trình tạo NOP nếu chúng ta muốn sử dụng trình tạo NOP. Bộ tạo NOP sẽ lấy lá chắn NOP khi chúng tôi khởi chạy khai thác.
Show evasion
Nếu chúng ta muốn hiển thị danh sách các kỹ thuật né tránh, chúng ta có thể sử dụng lệnh ẩn hiện.
Chúng ta sẽ sử dụng lệnh set với các tham số của lượt né và giá trị mới để thay đổi cài đặt của lượt trốn.
Các lệnh metasploit exploit execution
Giả sử chúng tôi đang khai thác và chúng tôi đã đặt tất cả các tùy chọn cần thiết, bao gồm tải trọng và cài đặt nâng cao như mã hóa, tùy chọn trốn tránh và trình tạo NOP. Trong trường hợp đó, việc khai thác được thiết lập để được thực thi. Sử dụng hai lệnh giống như exploit và run, chúng ta có thể thực hiện khai thác. Trong msfconsole, chúng ta phải gõ exploit hoặc run và payload sẽ chạy.
Metasploit interface
Để thực hiện chức năng cơ bản của Metasploit như dòng lệnh, giao diện đồ họa và bảng điều khiển, nó cung cấp nhiều giao diện. Các chức năng bên trong của khung Metasploit có quyền truy cập trực tiếp do các tiện ích cung cấp. Nếu chúng ta muốn khai thác phát triển thì những tiện ích này là vô giá. Những tiện ích này cũng sẽ là vô giá khi chúng ta không muốn sự linh hoạt của toàn bộ khuôn khổ. Chúng ta có thể truy cập vào khung công tác Metasploit theo nhiều cách khác nhau như MsfGUI, Armitage, Msfconsole, Metasploit Pro, Msfweb và Msfcli.
MSFconsole
Khung công tác Metasploit có phần phổ biến nhất, được đặt tên là Msfconsole. Trong khuôn khổ, loại công cụ này được hỗ trợ tốt, nhiều tính năng và linh hoạt nhất. Trong một khuôn khổ, tồn tại một giao diện tất cả trong một tiện dụng, được Msfconsole cung cấp cho hầu hết mọi cài đặt và tùy chọn. Có như vậy ước mơ khai thác của chúng ta mới có điểm dừng. Sử dụng Msfconsole, chúng ta có thể làm bất cứ điều gì chống lại toàn bộ mạng như thực hiện liệt kê, khởi chạy khai thác, tạo trình lắng nghe, tải các mô-đun phụ trợ hoặc chạy khai thác hàng loạt.
Nếu có sự thay đổi liên tục trong khuôn khổ Metasploit, mạng con của lệnh vẫn tương đối không đổi. Chúng tôi có thể cập nhật bất kỳ thay đổi nào nếu chúng tôi đã thành thạo các kiến thức cơ bản về msfconsole. Msfconsole quan trọng trong hầu hết mọi phần của hướng dẫn này.
Bây giờ chúng ta có thể nhập bất kỳ lệnh nào mà chúng ta quan tâm với lệnh trợ giúp để truy cập các tệp trợ giúp của msfconsole. Giả sử chúng ta muốn giao tiếp với máy chủ, chúng ta có thể sử dụng trợ giúp cho lệnh kết nối, được hiển thị trong ảnh chụp màn hình sau. Danh sách tài liệu kết quả chứa mô tả công cụ, cách sử dụng và các cờ tùy chọn khác nhau.
Chúng ta có thể đặt msfconsole theo sau là -h để truy cập tất cả các tệp trợ giúp của msfconsole. Sau khi thực hiện lệnh này, danh sách tài liệu kết quả sẽ giống như sau:
MSFcli
Để cung cấp quyền truy cập vào khuôn khổ, các phương pháp tiếp cận khác nhau được Msfconsole và Msfcli sử dụng. Msfconsole cung cấp một cách tương tác, thân thiện với người dùng để truy cập tất cả các tính năng. Mặc dù tập lệnh được msfcli ưu tiên và nó cũng đặt khả năng diễn giải với các công cụ khác dựa trên bảng điều khiển. Nó sử dụng một dòng lệnh để chạy trực tiếp thay vì sử dụng một trình thông dịch duy nhất cho khuôn khổ. Sử dụng dòng lệnh, chúng ta có thể chuyển hướng đến msfcli từ các công cụ khác và nó hướng đầu ra của msfcli tới các công cụ dòng lệnh khác. Việc khởi chạy các mô-đun phụ trợ và khai thác cũng được hỗ trợ bởi Msfcli. Đối với khuôn khổ, nếu các khai thác mới được phát triển và các mô-đun được thử nghiệm thì sẽ rất thuận tiện. Nếu chúng ta biết về các tùy chọn và cách khai thác mà chúng ta cần để khai thác duy nhất, nó sẽ trở thành một công cụ tuyệt vời. Msfconsole dễ tha thứ hơn so với msfcli. Msfcli cung cấp một lệnh msfcli -h để cung cấp một số trợ giúp cơ bản, như được hiển thị ở đây:
Nếu chúng ta đang tìm hiểu về Metasploit và gặp khó khăn ở đâu đó, chúng ta có thể thêm ký tự O vào cuối chuỗi bất kỳ lúc nào chúng ta phát hiện ra bất kỳ vấn đề nào. Sử dụng chữ cái này, chúng tôi có thể thấy tất cả các tùy chọn có sẵn trong một mô-đun. Ví dụ, giả sử rằng chúng ta đang mắc kẹt trong mô-đun ms08_067_netapi. Bây giờ chúng ta sẽ thêm ký tự O sau mô-đun để xem các tùy chọn khả dụng như sau:
Việc thực thi ở trên chỉ định rằng ba tùy chọn được yêu cầu bởi mô-đun, tức là, RHOST, RPORT và SMBPIPE. Bây giờ chúng ta sẽ thấy các trọng tải có sẵn bằng cách thêm P như sau:
Đối với khai thác của chúng tôi, tất cả các tùy chọn bắt buộc đã được thiết lập. Bây giờ ở cuối chuỗi đối số msfcli, chúng tôi sẽ thêm ký tự E và chạy khai thác của chúng tôi như sau:
Trong quá trình thực hiện ở trên, từ hệ thống từ xa, chúng ta đã nhận được một dấu nhắc lệnh Window thành công.
Xem thêm Selenium IDE- xác định phần tử html cho testing website
Armitage
Metasploit có một thành phần tên là Armitage. Nó được tạo ra bởi Raphael Mudge và nó có giao diện người dùng đồ họa, rất tương tác. Giao diện người dùng này có sẵn miễn phí, nhiều tính năng và rất ấn tượng. Trong hướng dẫn này, chúng tôi sẽ không nói sâu về armitage, nhưng nó có nhiều điều đáng nói để khám phá. Trong phần này, chúng ta sẽ tìm hiểu về nội dung và chi tiết của Metasploit. Nếu chúng ta có thể hiểu hoạt động của framework, GUI sẽ trở nên tuyệt vời đối với chúng ta.
Chúng tôi sẽ chạy lệnh armitage để khởi chạy armitage. Tại thời điểm khởi động, chúng ta phải chọn Start MSF. Bằng cách sử dụng này, phiên bản Metasploit và armitage có thể được kết nối.
/opt/framework3/msf3# armitage
Khi armitage bắt đầu chạy, chúng ta có thể nhấp vào menu để truy cập chức năng Metasploit khác và thực hiện một cuộc tấn công cụ thể. Ví dụ: khai thác trình duyệt (phía máy khách) được hiển thị trong ảnh chụp màn hình sau: