1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Học phần: An toàn mạng Bài báo cáo: Tìm hiểu về công cụ Metasploit trong ứng dụng Web

36 40 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Công Cụ Metasploit Trong Ứng Dụng Web
Tác giả Phạm Hồng Quyên
Người hướng dẫn TS. Đặng Minh Tuấn
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài báo cáo
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 3,65 MB

Cấu trúc

  • I. Tổng quan về Metasploit (8)
    • 1. Khái niệm cơ bản [1] (8)
    • 2. Lịch sử phát triển [1] (8)
    • 3. Các tính năng chính [2] (8)
    • 4. Các thành phần [2] (8)
  • II. Hướng dẫn sử dụng Metasploit Framework (9)
    • 1. Một số thuật ngữ cơ bản (9)
    • 2. Sử dụng các lệnh cơ bản trong Metasploit [3] (11)
    • 3. Meterpreter (18)
      • 3.1. Giới thiệu về Meterpreter [4] (18)
      • 3.2. Meterpreter scripts [5] (20)
  • III. Demo sử dụng Metasploit (21)
    • 1. Quét ứng dụng web bằng WMAP (21)
    • 2. Tạo Web backdoor payload với Metasploit (27)
  • IV. Đánh giá (31)
    • 1. Ưu nhược điểm (31)
      • 1.1. Ưu điểm (31)
      • 1.2. Nhược điểm (32)
    • 2. So sánh với Nmap [6] (32)
      • 2.1. Các điểm so sánh (32)
      • 2.2. Bảng điểm đánh giá tổng thể (34)
  • KẾT LUẬN (35)
  • TÀI LIỆU THAM KHẢO (36)

Nội dung

Tổng quan về Metasploit

Khái niệm cơ bản [1]

Metasploit, hay còn gọi là Dự án Metasploit, là một công cụ quan trọng trong lĩnh vực bảo mật máy tính, cung cấp thông tin về các lỗ hổng bảo mật Nó chủ yếu được sử dụng cho việc kiểm thử xâm nhập (Penetration Testing) và phát triển hệ thống phát hiện xâm nhập (IDS - Intrusion Detection System).

Metasploit Framework là một công cụ mã nguồn mở mạnh mẽ, sử dụng shellcode (payload) để tấn công các máy có lỗ hổng Nó sở hữu cơ sở dữ liệu phong phú với hàng ngàn shellcode và exploit cho nhiều hệ điều hành, chương trình và dịch vụ khác nhau Qua thời gian, Metasploit liên tục cập nhật các exploit mới vào cơ sở dữ liệu, giúp nâng cao khả năng kiểm thử an ninh hệ thống.

Metasploit Framework là một công cụ mạnh mẽ được tích hợp sẵn trong hệ điều hành Kali Linux Bạn có thể tải xuống phiên bản mới nhất dành cho các hệ điều hành Linux, MacOS và Windows từ trang web của nhà phát triển Rapid7 tại địa chỉ https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers.

Lịch sử phát triển [1]

Metasploit, được phát triển bởi H D Moore, một chuyên gia bảo mật mạng và lập trình viên nguồn mở, ra đời vào năm 2003 như một công cụ kiểm thử thâm nhập bằng ngôn ngữ Perl Đến năm 2007, Metasploit Framework đã được viết lại hoàn toàn bằng Ruby Vào ngày 21 tháng 10 năm 2009, dự án này đã được Rapid7, một công ty chuyên cung cấp giải pháp bảo mật quản lý lỗ hổng, mua lại.

Các tính năng chính [2]

Metasploit có ba tính năng chính sau đây:

- Quét cổng để xác định các dịch vụ đang hoạt động trên máy chủ

- Xác định các lỗ hổng dựa trên phiên bản của hệ điều hành và phiên bản các phần mềm cài đặt trên hệ điều hành đó

- Thực nghiệm khai thác các lỗ hổng đã được xác định.

Các thành phần [2]

Metasploit hỗ trợ giao diện người dùng với hai dạng:

Giao diện console sử dụng file msfconsole.bat cho phép người dùng cấu hình và kiểm tra thông qua các dòng lệnh, mang lại tốc độ nhanh hơn và tính linh hoạt cao hơn.

- Web interface sử dụng file msfweb.bat Giao diện này dùng để giao tiếp với người dùng thông qua giao diện web

Metasploit Framework gồm hai môi trường sau:

Global Environment được thiết lập thông qua hai lệnh setg và unsetg, với các tùy chọn này có hiệu lực toàn cục và được áp dụng cho tất cả các module exploit.

Temporary Environment được thiết lập bằng hai lệnh set và unset, cho phép môi trường này chỉ áp dụng cho module exploit đang được tải hiện tại mà không ảnh hưởng đến các module khác.

Chúng ta có thể lưu môi trường đã cấu hình bằng lệnh save, và môi trường này sẽ được lưu trữ tại /.msf/config Khi giao diện được khởi động lại, môi trường sẽ được tải trở lại.

Để tối ưu hóa quy trình cấu hình cho các module exploits, các thành phần có cấu hình giống nhau như LHOST, LPORT và PAYLOAD nên được thiết lập ở chế độ Global Environment Điều này giúp giảm thiểu việc cấu hình lại nhiều lần và tiết kiệm thời gian cho người dùng.

Ví dụ: msf> setg LPORT 80 msf> setg LHOST 172.16.8.2

Hướng dẫn sử dụng Metasploit Framework

Một số thuật ngữ cơ bản

Để sử dụng hiệu quả Metasploit Framework, người dùng cần nắm vững các thuật ngữ quan trọng thường xuất hiện trong quá trình sử dụng công cụ này, trong đó có "Module".

Công cụ Metasploit Framework sở hữu nhiều module, là các phần mềm có thể được sử dụng trực tiếp trong nền tảng này Metasploit chia các module thành ba loại chính.

- Exploit module có nhiệm vụ mở một shellcode trên một mục tiêu để thực hiện các cuộc tấn công ví dụ như là buffer overflow, code injection,

- Auxiliary module dùng để thực hiện một hành động như scanning hay system enumeration

- Post-exploitation module cho phép thu thập các thông tin sau khi khai thác hoặc có thêm quyền truy cập tới mục tiêu đã được khai thác

Ngoài ra còn có một số module khác như: No-operation payload (NOP), Endcoder

Vulnerable target là một máy hoặc thiết bị có lỗ hổng bảo mật chưa được vá hay khắc phục Nó làm cho vật chủ dễ bị tấn công hơn

Exploit là hành vi khai thác lỗ hổng trong hệ thống, ứng dụng hoặc dịch vụ, cho phép kẻ tấn công đạt được mục đích mà nạn nhân không hay biết Những phương thức khai thác phổ biến hiện nay bao gồm Brute Force, SQL Injection và Buffer Overflow.

Discovery scan là quá trình rà quét thám hiểu trong Metasploit, kết hợp với các công cụ như Nmap, NeXpose và một số module của Metasploit Quá trình này giúp phát hiện các cổng và dịch vụ đang hoạt động trên máy mục tiêu.

Payload là mã độc mà hệ thống được yêu cầu thực hiện, được chọn và phân phối bởi framework Có hai loại payload chính: reverse shell và bind shell, bên cạnh đó còn có thể là một số lệnh được thực thi trên máy tính của nạn nhân.

- Reverse shell payload: Reverse shell là một payload tạo kết nối từ máy tính nạn nhân và “đảo ngược” lại máy tính của attacker

Bind shell là một loại payload cho phép kết nối giữa cửa sổ dòng lệnh và một cổng lắng nghe (listening port) trên máy tính mục tiêu, trong khi đó máy tính tấn công sẽ kết nối đến listener để thực hiện các thao tác.

Là một môi trường thực thi dòng lệnh cung cấp cho bạn quyền truy nhập vào một mục tiêu từ xa

Một listener trong Metasploit là thành phần chịu trách nhiệm chờ đợi kết nối từ các mục tiêu khai thác hoặc máy tính tấn công, đồng thời quản lý các kết nối này.

Meterpreter là một payload mạnh mẽ và linh hoạt, cho phép người dùng truy cập vào một shell tương tác Trong shell Meterpreter, bạn có thể thực hiện nhiều thao tác như tải lên tệp tin, thu thập mã băm của tài khoản người dùng và chuyển hướng tấn công sang các mục tiêu khác trong cùng một mạng, được gọi là kỹ thuật pivoting.

Sau khi truy cập vào máy, việc thu thập thông tin nhạy cảm như tên người dùng và mật khẩu là rất quan trọng Điều này cũng có thể được thực hiện nhằm mục đích kiểm tra, giúp phân tích xem hệ thống trong tổ chức có đang sử dụng mật khẩu mạnh hay không.

Sử dụng các lệnh cơ bản trong Metasploit [3]

Tại giao diện cửa sổ terminal, sử dụng câu lệnh msfconsole để khởi tạo Metasploit Framework

Hình 1 Khởi chạy Metasploit Framework ở chế độ console

Bởi vì tính đồ sộ của công cụ Metasploit nên chúng ta sử dụng lệnh show x với x là các valid parameter như all, encoders, nops, exploits, payloadsm auxiliary, post,

12 plugins, info, options để có thể hiện ra những thông tin chi tiết của từng loại module cụ thể msf> show options

Hình 2 Thực thi câu lệnh show options trong Metasploit

Với tham số options, câu lệnh trong Metasploit trở nên đặc biệt hơn, vì các options này kiểm soát các cài đặt cần thiết cho từng chức năng trong module cụ thể Khi chạy lệnh show options trong một module đã chọn, Metasploit chỉ hiển thị các options áp dụng cho module đó Ngược lại, nếu lệnh show options không được thực hiện trong một module, nó sẽ hiển thị những options toàn cục có sẵn.

Hình 3 Thực thi câu lệnh search trong Metasploit

Câu lệnh này cho phép chúng ta tìm kiếm các tấn công cụ thể, module phụ trợ hoặc payload dựa trên các từ khóa như: aka, author, arch, và mỗi từ khóa đều được giải thích chi tiết bên cạnh.

Ví dụ, nếu chúng ta muốn tìm kiếm tất cả các thông tin liên quan về hình thức tấn công bruteforce, ta sử dụng lệnh: msf> search bruteforce

Hình 4 Tìm kiếm các thông tin liên quan đến bruteforce

Câu lệnh search trên sẽ trả về tất cả các module sẵn có và tồn tại trong Metasploit với sáu cột dữ liệu chi tiết đặc trưng:

1 # – Các module liên quan sẽ được đánh số thứ tự

2 Name – Tên của các module có liên quan đến từ khóa tìm kiếm

3 Disclosure Date – Thời gian mà module được tiết lộ

4 Rank – Bậc xếp hạng của module Có tất cả sáu bậc xếp hạng trong Metasploit, tùy vào từng bậc xếp hạng mà có thể chỉ ra module đó có gây ra ảnh hưởng, tác động gì tới hệ thống hay không

- Low: Việc khai thác sẽ không làm ảnh hưởng đến các nền tảng chung

- Average: Khai thác không đáng tin cậy và không có khả năng khai thác hệ thống mục tiêu

Khai thác thông tin là một phương pháp đáng tin cậy, tuy nhiên, nó phụ thuộc vào một phiên bản cụ thể Những phương pháp này không tự động nhận diện các mục tiêu phù hợp.

- Good: Khai thác có mục tiêu mặc định và là trường hợp phổ biến đối với một loại phần mềm cụ thể

Các lần khai thác có mục tiêu mặc định và tự động phát hiện mục tiêu phù hợp, sử dụng địa chỉ trả lại dành riêng cho ứng dụng sau khi kiểm tra phiên bản.

- Excellent: Khai thác không làm hỏng dịch vụ Các khai thác thường có xếp hạng này là chèn SQL, thực thi CMD và khai thác ứng dụng web

5 Check – Với hai giá trị Yes hoặc No để thể hiện xem lỗ hổng này đã được hỗ trợ hay chưa

6 Description – Một đoạn mô tả thông tin ngắn gọn về module tìm kiếm

Bạn có thể kết hợp nhiều tham số trong lệnh tìm kiếm để thu hẹp phạm vi tìm kiếm theo nhu cầu Chẳng hạn, lệnh msf> search mysql type:auxiliary sẽ hiển thị toàn bộ thông tin về loại auxiliary liên quan đến cơ sở dữ liệu MySQL.

Hình 5 Tìm kiếm với nhiều từ khóa kết hợp trong câu lệnh search

Lỗ hổng Eternal Blue ms17_010, được khai thác trong vụ tấn công WannaCry toàn cầu vào năm 2017, là một ví dụ điển hình về các lỗ hổng bảo mật Để tìm kiếm lỗ hổng này, bạn có thể sử dụng lệnh msf> search ms17_010.

Hình 6 Tìm kiếm với từ khóa ms17_010 trong câu lệnh search

Sử dụng lệnh use để load được module mong muốn msf> use auxiliary/scanner/smb/smb_ms17_010

Tất cả các lệnh auxiliary và exploit sẽ được thực hiện sau dấu nhắc này Bạn có thể sử dụng lệnh search hoặc use bất kỳ lúc nào trong một auxiliary hoặc exploit để chuyển đổi giữa các auxiliary, exploit hoặc module.

To utilize the desired module in Metasploit, enter the command "show options" at the command prompt This will display the specific options for the auxiliary module (scanner/smb/smb_ms17_010), as illustrated in the accompanying image.

Hình 8 Xem các tùy chọn khai thác msf> show payloads

Như với show options, khi chạy lệnh này trong dấu nhắc lệnh của một module, Metasploit chỉ hiển thị những payloads thích hợp với module đó

Hình 9 Liệt kê các payload trong module khai thác

Next, enter the command "set payload windows/shell/reverse_tcp" to select the reverse_tcp payload By re-entering the command "show options," additional options will be displayed as shown below.

Payload reverse_tcp là một loại payload cho phép kết nối ngược từ máy tính bị tấn công đến máy tính của hacker hoặc người kiểm thử qua một địa chỉ IP và cổng xác định Tùy thuộc vào loại tấn công khai thác, có những tham số quan trọng mà người dùng cần chú ý.

- RHOST: Địa chỉ IP của máy nạn nhân mà ta muốn khai thác

RPORT là địa chỉ cổng dịch vụ SMB của máy nạn nhân, đóng vai trò quan trọng trong việc giao tiếp giữa các ứng dụng và tiến trình trong một hệ thống mạng Giao thức này giúp các thành phần trong mạng tương tác hiệu quả với nhau.

- LHOST: Địa chỉ IP local của máy thực hiện khai thác

- LPORT: Địa chỉ cổng dịch vụ SMB của máy đi khai thác

Trong reverse payloads, kết nối được khởi tạo bởi máy mục tiêu và sau đó kết nối đến kẻ tấn công, giúp vượt qua tường lửa hoặc cấu hình mạng NAT Các tham số RPORT và LPORT có thể giữ nguyên giá trị cổng mặc định mà không cần chỉnh sửa thêm Sử dụng lệnh "msf> show targets" để xem các mục tiêu khả dụng.

Sau khi chọn một lỗ hổng để khai thác, bạn có thể sử dụng lệnh để hiển thị tất cả các mục tiêu khả thi cho việc khai thác Thành công của việc khai thác phụ thuộc vào mục tiêu cụ thể được nhắm đến Nếu không chọn một mục tiêu cụ thể, Metasploit sẽ tự động thử từng mục tiêu và phát hiện một cách tự động, điều này không được khuyến khích Việc phát hiện tự động có thể không hoạt động hiệu quả và kích hoạt không đúng khai thác, dẫn đến sự cố dịch vụ.

Hình 11 Liệt kê các mục tiêu khả thi để khai thác

Khi mô tả module từ các lệnh show và search không đầy đủ, bạn có thể sử dụng lệnh info theo sau tên module để xem thêm thông tin chi tiết như các tùy chọn cơ bản, mục tiêu và nhiều thông tin khác có sẵn trong module.

Hình 12 Câu lệnh info cho từng module exploit

Meterpreter

Meterpreter là một payload phổ biến trong các cuộc tấn công hệ điều hành Windows, có thể áp dụng cho hầu hết các phiên bản hiện nay Sau khi khai thác thành công, nó trở thành một remote shell cho phép hacker thực hiện các lệnh tấn công và sử dụng các công cụ trên hệ thống mục tiêu Meterpreter cung cấp nhiều chức năng như quản lý file, upload/download, chụp ảnh màn hình, chụp ảnh webcam và ghi âm Để xem tất cả các câu lệnh trong Meterpreter, người dùng có thể sử dụng lệnh "meterpreter> help" Các câu lệnh được sắp xếp theo các mục lớn, giúp người dùng dễ dàng tìm kiếm và sử dụng.

- Core Commands: nhóm lệnh chính

- File System Commands: nhóm lệnh quản lý file

- Networking Commands: nhóm lệnh quản trị mạng

- System Commands: nhóm lệnh hệ thống

- User Interface Commands: nhóm lệnh giao diện người dùng

- Webcam Commands: nhóm lệnh điều khiển webcam

- background lưu lại session và thoát khỏi Meterpreter trở về msf

- migrate thay đổi PID của tiến trình malware

- exit và close đóng session và thoát khỏi Meterpreter

Quản lý file và thao tác với file trên Meterpreter cũng tương tự như các lệnh trên Linux, tuy nhiên lại phân ra thành ba nhóm lệnh con

Nhóm lệnh thao tác trên mục tiêu:

- cat dùng để xuất nội dung file ra terminal

- cd dùng để chuyển thư mục thực thi

- edit dùng để chỉnh sửa nội dung một file

- getwd và pwd dùng để hiển thị thực thi hiện hành

- ls [folder] dùng để xuất ra danh sách các file và thư mục

- mkdir dùng để tạo thư mục mới

- cp dùng để sao chép file đến địa chỉ mới và đổi tên (nếu có)

- mv dùng để di chuyển file đến địa chỉ mới và đổi tên (nếu có)

- rm dùng để xóa file

- rmdir dùng để xóa thư mục rỗng

- search dùng để tìm kiếm file hoặc thư mục

Nhóm lệnh thao tác trên Local:

Các lệnh trong nhóm này được thực hiện trên hệ thống Local, cụ thể là máy Kali Linux Chúng tương tự như các lệnh trên Remote, chỉ khác là có thêm chữ "l" ở đầu câu lệnh.

- getlwd, lpwd cho biết địa chỉ thư mục đang thực hiện

- lcd dùng để di chuyển thư mục thực thi hiện hành

- upload dùng để tải lên một tập tin từ local lên mục tiêu

- download dùng để tải xuống một tập tin từ remote về local

Nhóm này gồm các lệnh xem thông tin về hệ thống mạng

- arp dùng để liệt kê địa chỉ IP và MAC trong mạng

- ifconfig và ipconfig dùng để hiển thị cấu hình card mạng của mục tiêu

- netstat dùng để liệt kê các kết nối của mục tiêu

Các lệnh quản lý hệ thống máy tính của mục tiêu:

- clearev dùng để xóa event log trên máy tính nạn nhận, thường dùng để xóa dấu vết sau khi tấn công

- getpid dùng để xem PID của tiến trình chạy malware Có thể sử dụng lệnh migrate để thay đổi

Lệnh ps được sử dụng để hiển thị thông tin chi tiết về các tiến trình đang hoạt động trên hệ thống, bao gồm PID, PPID, tên tiến trình, kiến trúc phần mềm, người dùng khởi chạy và thư mục chứa của chúng.

- kill dùng để tắt một tiến trình đang chạy

- suspend dùng để tạm dừng hoặc tiếp tục một tiến trình

- reboot dùng để khởi động lại máy mục tiêu

- shutdown dùng để tắt máy mục tiêu

Chụp ảnh màn hình, webcam và ghi âm

Phần này bao gồm hai nhóm lệnh từ User Interface Commands và Webcam Commands

- screenshot dùng để chụp ảnh màn hình máy tính của mục tiêu

- run webcam [option] dùng để điều khiển webcam mục tiêu

- run sound_recorder [option] dùng để ghi âm máy tính mục tiêu

- run dùng để khởi chạy một script, nếu bạn muốn xem danh sách các script thì hãy gõ run rồi ấn hai lần nút Tab trên bàn phím

- checkvm dùng để kiểm tra mục tiêu là máy ảo hay máy thật Nếu không sử dụng được, bạn có thể dùng post/windows/gather/checkvm trên Metasploit

- shell dùng để mở chương trình MS-DOS và điều khiển nó

Metasploit cung cấp nhiều script hữu ích trong Framework, hỗ trợ người dùng sau khi đã thành công thỏa thuận với mục tiêu Khi bạn có được một session với mục tiêu, các script trong Meterpreter có thể được sử dụng để tùy chỉnh theo nhu cầu của bạn.

- checkvm dùng để kiểm tra xem mục tiêu đã khai thác của bạn có phải là máy ảo hay không

GetCountermeasure được sử dụng để kiểm tra cấu hình bảo mật trên hệ thống nạn nhân, đồng thời có khả năng vô hiệu hóa các biện pháp bảo mật như phần mềm diệt virus, tường lửa và nhiều biện pháp khác.

- getgui kích hoạt RDP (Remote Desktop Protocol) trên hệ thống đích nếu nó bị vô hiệu hóa

- get_local_subnets dùng để lấy subnet mask của máy nạn nhân Đây là một thông tin rất hữu ích dùng cho kỹ thuật pivoting

- gettelnet dùng để kích hoạt telnet trên máy nạn nhân nếu nó chưa được kích hoạt

- killav dùng để vô hiệu hóa các chương trình diệt virus (AV) trên máy nạn nhân

- remotewinenum dùng để liệt kê các thông tin về hệ thống của nạn nhân thông qua wmic, ghi chú nơi mà logs được lưu trữ

- scraper dùng để lấy thêm thông tin về hệ thống, bao gồm cả registry.

Demo sử dụng Metasploit

Quét ứng dụng web bằng WMAP

Metasploit không chỉ nổi tiếng với việc tìm kiếm và khai thác lỗ hổng, mà giờ đây còn cho phép quét các lỗ hổng thông qua plugin WMAP WMAP là một công cụ quét lỗ hổng ứng dụng web mạnh mẽ có sẵn trong Kali Linux và được tích hợp vào Metasploit Framework Trong bài lab này, chúng ta sẽ sử dụng DVWA (Damn Vulnerable Web Application) làm mục tiêu để thực hành.

Để bắt đầu, bước đầu tiên là thiết lập cơ sở dữ liệu Metasploit, vì plugin cụ thể này yêu cầu nó để hoạt động Metasploit sử dụng hệ thống cơ sở dữ liệu PostgreSQL, giúp theo dõi lượng lớn thông tin trong quá trình thử nghiệm thâm nhập Việc này cho phép nhập và xuất kết quả quét từ các công cụ khác, đồng thời lưu trữ thông tin xác thực, dịch vụ và dữ liệu quan trọng đã phát hiện.

Bạn có thể khởi tạo cơ sở dữ liệu cho Metasploit bằng cách sử dụng lệnh msfdb init trong terminal, thao tác này sẽ tạo ra cơ sở dữ liệu và người dùng mặc định để Metasploit có thể tương tác.

Hình 13 Khởi tạo cơ sở dữ liệu

Tiếp theo, khởi động dịch vụ PostgreSQL với service postgresql start

Hình 14 Khởi động dịch vụ PostgreSQL

Bây giờ có thể kích hoạt Metasploit bằng cách gõ msfconsole

Cuối cùng, có thể kiểm tra xem cơ sở dữ liệu đã được tải và hoạt động bình thường chưa bằng cách sử dụng lệnh db_status

Hình 15 Kiểm tra trạng thái cơ sở dữ liệu

Thật dễ dàng để tải plugin WMAP bằng lệnh load wmap

Từ đây, gõ ? để hiển thị menu trợ giúp của Metasploit, sẽ thấy các lệnh cho WMAP và mô tả của chúng ở đầu menu

Hình 17 Hiển thị các lệnh cùng mô tả cho WMAP

Bước 3 Thêm trang web để quét

Để hiển thị các tùy chọn có sẵn, hãy nhập lệnh phù hợp Bắt đầu quản lý các trang web mà bạn muốn quét bằng cách sử dụng wmap_sites.

Hình 18 Các tùy chọn cho lệnh wmap_sites Để thêm một trang web, sử dụng wmap_sites với cờ -a theo sau là địa chỉ trang web cần quét

Hình 19 Thêm địa chỉ trang web cần quét

Bây giờ có thể liệt kê các trang có sẵn bằng cách sử dụng wmap_sites với cờ -l

Hình 20 Liệt kê các trang web có sẵn

Bước 4 Chỉ định URL mục tiêu

Tiếp theo cần đặt URL mục tiêu cụ thể muốn quét bằng cách sử dụng câu lệnh wmap_targets

Hình 21 Các tùy chọn cho lệnh wmap_targets

Bạn có thể xác định mục tiêu bằng cách sử dụng wmap_targets với cờ -t theo sau là URL Để liệt kê các mục tiêu đã được xác định, hãy sử dụng wmap_targets với cờ -l.

Hình 22 Xác định và liệu kê các mục tiêu được xác định

Gõ wmap_run tại dấu nhắc lệnh để xem các tùy chọn cho lệnh này

Hình 23 Các tùy chọn cho lệnh wmap_run

Có thể sử dụng wmap_run với cờ -t để liệt kê tất cả các mô-đun đã bật trước khi quét mục tiêu

Hình 24 Liệt kê các mô-đun được bật sử dụng lệnh wmap_run -t

Bài viết liệt kê tất cả các mô-đun đã được kích hoạt, trong đó có một số tính năng bị vô hiệu hóa, chẳng hạn như mô-đun SSL, do địa chỉ mục tiêu không sử dụng Để có mô tả chi tiết về bất kỳ mô-đun nào, bạn có thể sử dụng lệnh info kèm theo đường dẫn đầy đủ của mô-đun đó.

Hình 25 Thông tin cụ thể về một mô-đun được liệt kê

Để bắt đầu quá trình quét, sử dụng lệnh wmap_run với cờ -e, cho phép chạy tất cả các mô-đun thay vì chỉ một mô-đun cụ thể Thời gian hoàn thành quét sẽ phụ thuộc vào trang web mục tiêu và số lượng mô-đun được kích hoạt.

Hình 26 Quá trình quét với lệnh wmap_run -e

Hình 27 Kết thúc quá trình quét và trả về thời gian quét

Cuối cùng, gõ lệnh wmap_vulns -l để hiển thị kết quả quét

Hình 28 Kết quả hiển thị sau khi quét

Những phát hiện thú vị về mục tiêu đã được ghi nhận, cho phép thu thập thêm thông tin về các lỗ hổng đã được báo cáo Với vai trò là những người kiểm thử thâm nhập, chúng ta có thể tiến hành điều tra chi tiết từng phát hiện và xác định khả năng tồn tại của các phương pháp tấn công tiềm ẩn.

WMAP có thể không mang lại nhiều thông tin chi tiết như các công cụ quét lỗ hổng bảo mật khác, nhưng nó lại tích hợp sẵn với Metasploit Framework, giúp người dùng dễ dàng sử dụng và triển khai.

27 dàng sử dụng nó mà không cần cài đặt Điều đó làm nó trở thành trình quét trang web hoặc ứng dụng web rất hữu ích.

Tạo Web backdoor payload với Metasploit

Metasploit cung cấp nhiều loại payload cho chức năng post-exploitation thông qua cửa hậu dựa trên tệp Trong bài lab này, người đọc sẽ giả định rằng họ đã phát hiện lỗ hổng trên máy chủ cho phép tải tệp lên mà không có whitelist Máy chủ LAMP có địa chỉ IP 162.243.85.82, trong khi Metasploit đang hoạt động trên máy tính với IP NAT nội bộ là 192.168.4.211.

Để tạo một bind payload PHP Meterpreter, chúng ta sẽ sử dụng công cụ msfvenom, một phần của Metasploit Framework, nhằm tạo ra một shell PHP Meterpreter cơ bản Msfvenom đã thay thế các công cụ cũ hơn như msfpayload và msfencode trong việc tạo và mã hóa các payload khác nhau Hãy sử dụng lệnh msfvenom để kiểm tra hoạt động của công cụ này.

Có thể xem danh sách các payload có sẵn trong Msfvenom bằng lệnh sau: msfvenom -l payloads

Hình 29 Danh sách các payload có sẵn trong msfvenom

Kết quả đã được rút gọn do có quá nhiều payload để hiển thị, nhưng chúng ta sẽ sử dụng payload php/meterpreter/bind_tcp, lắng nghe trên một cổng chỉ định trên máy chủ bị xâm nhập và trả về shell Meterpreter khi có kết nối Để tạo payload này dưới dạng tập lệnh PHP, trước tiên cần xem các tùy chọn cấu hình có sẵn bằng cách sử dụng đối số payload-options để liệt kê các tùy chọn và -p để chọn payload Câu lệnh sẽ là: msfvenom -p php/meterpreter/bind_tcp payload-options.

Hình 30 Kết quả trả về của câu lệnh msfvenom -p php/meterpreter/bind_tcp payload-options

Bây giờ sẽ tạo payload của mình và đặt LPORT thành 60000

Hình 31 Tạo payload và thiết lập LPORT

Để khai thác lỗ hổng, người dùng có thể tải lên tệp php-msf.php vào webroot của máy chủ dễ bị tấn công hoặc vào bất kỳ thư mục nào có thể truy cập trong webroot Đồng thời, cần thiết lập một trình xử lý payload để gửi yêu cầu đến bind payload, cho phép lắng nghe kết nối Cuối cùng, hãy kích hoạt msfconsole và thiết lập trình xử lý payload để thiết lập kết nối với bind shell khi thực thi.

Hình 32 Tạo trình xử lý payload

Có thể xác minh cấu hình này bằng cách chạy lệnh show options trong console

Hình 33 Kiểm tra lại cấu hình đã thiết lập

Thực thi PHP Meterpreter đã tải lên thông qua Apache và trình duyệt web để khởi động trình xử lý Kết quả sẽ là một phiên Meterpreter hoạt động qua PHP.

Hình 34 Meterpreter thông qua PHP

Sau khi có MSF, người dùng có thể thực hiện nhiều thao tác, bao gồm việc nhận quyền truy cập shell lệnh gốc và trích xuất thông tin hệ thống.

Hình 35 Thông tin về hệ thống và shell dòng lệnh thông qua meterpreter

Các payload gốc dựa trên PHP thường không ổn định, dẫn đến việc phiên có thể bị kết thúc sau một thời gian Điều này gây ra các thông báo lỗi phổ biến khi xử lý payload, ảnh hưởng đến hiệu suất và tính khả dụng của ứng dụng.

Để khắc phục lỗi thường gặp với các payload dựa trên PHP, có thể tạo payload riêng cho Linux hoặc bất kỳ máy chủ nào đang hoạt động Quy trình tạo payload Linux Meterpreter tương tự như payload PHP Meterpreter trước đó Sử dụng payload linux/x86/meterpreter/bind_tcp, cấu hình LPORT thành 50000 và lưu đầu ra dưới tên linux-msf.backdoor.

Hình 37 Tạo payload Linux Meterpreter

Sau khi hoàn tất, khởi động lại Meterpreter và tải lên payload Linux gốc để thực thi, nhằm có được một phiên Meterpreter ổn định hơn Đầu tiên, cần tải lên payload Linux và chạy phiên MSF hiện tại ở chế độ nền.

Hình 38 Tải payload Linux và chạy nền phiên msf hiện tại

Sau đó, định cấu hình lại trình xử lý và chạy nó trong nền với exploit –j

Hình 39 Cấu hình lại trình xử lý và chạy với lệnh exploit -j

Quay lại phiên PHP ban đầu và sau đó thực thi payload Linux

Hình 40 Thực thi payload Linux sau khi quay lại phiên PHP ban đầu

Và nhận được phiên Linux Meterpreter ổn định hơn

Sử dụng Meterpreter giúp kiểm soát và thu thập thông tin quan trọng một cách dễ dàng thông qua các tập lệnh tiện ích như enum_configs, enum_network và nhiều công cụ khác.

Hình 42 Kết quả của tập lệnh enum_configs

Đánh giá

Ưu nhược điểm

Metasploit Framework là một công cụ mạnh mẽ và được ưa chuộng trong kiểm thử thâm nhập, tuy nhiên cũng có những ưu và nhược điểm riêng như bất kỳ phần mềm nào khác Dưới đây là một số nhận xét của tôi về Metasploit Framework.

- Metasploit là phần mềm mã nguồn mở, có thể dễ dàng tải và cài đặt

- Cộng đồng sử dụng Metasploit rất là lớn, thuận tiện cho việc trao đổi học tập, giải đáp khó khăn, thắc mắc,

- Được hỗ trợ và tích hợp sẵn ở trong hầu như tất cả các hệ điều hành phổ biến hiện nay như: Windows, Linux, MacOS,

- Liên tục cập nhật về các thông tin lỗ hổng mới

Metasploit Framework là một công cụ mạnh mẽ với nhiều thành phần và module riêng biệt, đi kèm với tài liệu chi tiết Tuy nhiên, do quy mô lớn của nó, người mới bắt đầu có thể gặp khó khăn trong việc tiếp cận và hiểu rõ Để thành thạo Metasploit, người dùng cần kiên trì và dành thời gian để tìm hiểu.

- Nhiều module hiếm khi được sử dụng, đôi khi là không cần thiết

Để khai thác tối đa tiềm năng của Metasploit, người dùng cần đầu tư vào phiên bản premium, với mức giá khoảng 5000 USD mỗi năm.

So sánh với Nmap [6]

Cả Metasploit và Nmap đều là những công cụ kiểm thử xâm nhập mạnh mẽ, nhưng chúng phục vụ các mục đích khác nhau Nmap chuyên về phát hiện và ánh xạ mạng, giúp kiểm kê các thiết bị và dịch vụ trong hệ thống Ngược lại, Metasploit được sử dụng để gắn các payload bất chính, cho phép thực hiện các cuộc tấn công vào máy chủ một cách hiệu quả.

Cả Metasploit và Nmap đều có nguồn gốc từ dòng lệnh, nhưng không phải ai cũng dễ dàng sử dụng chúng nếu thiếu kỹ năng kỹ thuật Metasploit, sản phẩm bán thương mại của Rapid7, được trang bị giao diện đồ họa người dùng (GUI) thân thiện hơn, trong khi Nmap cung cấp nhiều GUI khác nhau, mặc dù chúng thường đơn giản và dễ sử dụng.

Cả Metasploit và Nmap đều thu hút đông đảo người ủng hộ từ cộng đồng Metasploit, được Rapid7 mua lại vào năm 2007, vẫn tiếp tục được duy trì công khai, trong khi Nmap cùng với ứng dụng GUI Zenmap cũng được phát triển liên tục bởi cộng đồng người dùng.

Nmap hiện có phiên bản 7.30, với lịch sử phát hành chi tiết trên trang web dự án Trong khi đó, phiên bản ổn định hiện tại của Metasploit là 4.12, kèm theo các ghi chú phát hành hàng tuần từ Rapid7.

Cả Nmap và ứng dụng GUI Zenmap đều có sẵn miễn phí dưới dạng mã nguồn mở, có thể tải xuống từ trang web nmap.org Tại đây, người dùng cũng có thể tìm thấy nhiều tài nguyên hữu ích khác như hướng dẫn cài đặt, tài liệu tham khảo và một nửa của Ebook "Nmap Network Scanning - The Official Nmap Project Guide to Network Discovery and Security Scanning".

Các phiên bản Metasploit Framework và Community có thể tải xuống từ trang web Rapid7, trong khi mã nguồn cốt lõi được lưu trữ trên GitHub Ngoài ra, nhiều nguồn hỗ trợ cộng đồng miễn phí cũng có sẵn trên trang web của công ty Đối với các tính năng nâng cao và hỗ trợ doanh nghiệp, người dùng có thể lựa chọn với một khoản phí.

API và Khả năng mở rộng

Metasploit Remote API cho phép thực thi và kích hoạt các dịch vụ của Metasploit Framework và Metasploit Pro, trong khi API Nmap Scripting Engine cung cấp thông tin về máy chủ đích như trạng thái cổng và kết quả phát hiện phiên bản Cả hai dịch vụ đều có khả năng mở rộng hoàn toàn nhờ vào việc sử dụng mã nguồn mở.

Tích hợp bên thứ ba

Metasploit cung cấp nhiều plugin cho phép tích hợp với các giải pháp bảo mật phổ biến như Nexpose, Nessus và OpenVAS Trong khi đó, Nmap thường được kết hợp với các sản phẩm khác, nhờ vào việc tổ chức mẹ của nó tạo ra doanh thu thông qua việc cấp phép công nghệ cho các dịch vụ thương mại khác.

Các công ty sử dụng

Nmap và Metasploit là hai công cụ phổ biến được sử dụng rộng rãi bởi cá nhân và tổ chức trên toàn cầu, từ IBM đến Google Nhiều công ty lớn như Rodale, TriNet, Porter Airlines và BlackLine cũng áp dụng Metasploit trong hoạt động của mình Việc làm quen với những công cụ này có thể gặp phải đường cong học tập nhất định.

Cả hai công cụ yêu cầu trình độ trung cấp về kỹ thuật để vận hành, điều này không quá bất ngờ vì kiểm thử xâm nhập không phải là công việc dành cho người mới Tuy nhiên, việc có tài trợ từ công ty mang lại những lợi ích nhất định; giao diện người dùng thân thiện với doanh nghiệp của Metasploit giúp người dùng dễ dàng làm quen và sử dụng hiệu quả hơn.

Cả Metasploit và Nmap đều hoạt động tốt khi nói đến bảo mật chu vi trang web 2.2 Bảng điểm đánh giá tổng thể

Bảng 1 Đánh giá tổng thể giữa Metasploit và Nmap

Hỗ trợ cộng đồng 5 / 5 1 / 5 Đánh giá phát hành 5 / 5 3 / 5 Định giá và Hỗ trợ 4 / 5 3 / 5

API và Khả năng mở rộng 4 / 5 5 / 5

Tích hợp bên thứ ba 4 / 5 1 / 5

Các công ty sử dụng 5 / 5 5 / 5 Đường cong học tập 4 / 5 4 / 5

Ngày đăng: 09/02/2022, 14:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] L. X. Kiên, "NÂNG CẤP ỨNG DỤNG KHAI THÁC CÁC LỖ HỔNG AN NINH METASPLOIT FRAMEWORK," Đại học Công nghệ, 2020 Sách, tạp chí
Tiêu đề: NÂNG CẤP ỨNG DỤNG KHAI THÁC CÁC LỖ HỔNG AN NINH METASPLOIT FRAMEWORK
Tác giả: L. X. Kiên
Nhà XB: Đại học Công nghệ
Năm: 2020
[2] hungp, "Giới thiệu công cụ Metasploit Framework," 13 February 2015. [Online]. Available: https://whitehat.vn/threads/gioi-thieu-cong-cu-metasploit-framework.4203/. [Accessed 15 December 2021] Sách, tạp chí
Tiêu đề: Giới thiệu công cụ Metasploit Framework
Tác giả: hungp
Năm: 2015
[3] P. Eockhoutte, Penetration Testing - A hands-on introduction to Hacking, No Starch Press, 2014 Sách, tạp chí
Tiêu đề: Penetration Testing - A hands-on introduction to Hacking
Tác giả: P. Eockhoutte
Nhà XB: No Starch Press
Năm: 2014
[4] P.Nhâm, "Sử dụng Kali Linux để pentest phần 4: Hướng dẫn sử dụng payload Meterpreter," thekalitools, 2017. [Online]. Available: https://www.thekalitools.com/2017/03/huong-dan-su-dung-payload-meterpreter.html. [Accessed 15 December 2021] Sách, tạp chí
Tiêu đề: Sử dụng Kali Linux để pentest phần 4: Hướng dẫn sử dụng payload Meterpreter
Tác giả: P.Nhâm
Nhà XB: thekalitools
Năm: 2017
[5] O.Security, "Existing Scripts," 2019. [Online]. Available: https://www.offensive- security.com/metasploit-unleashed/existing-scripts/. [Accessed 15 December 2021] Sách, tạp chí
Tiêu đề: Existing Scripts
[6] K. Sen, "Metasploit vs Nmap for Ethical Hacking," 25 August 2021. [Online]. Available: https://www.upguard.com/blog/metasploit-vs-nmap-for-ethical-hacking. [Accessed 15 December 2021] Sách, tạp chí
Tiêu đề: Metasploit vs Nmap for Ethical Hacking
Tác giả: K. Sen
Nhà XB: UpGuard
Năm: 2021

HÌNH ẢNH LIÊN QUAN

Hình 1. Khởi chạy Metasploit Framework ở chế độ console - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 1. Khởi chạy Metasploit Framework ở chế độ console (Trang 11)
Hình 3. Thực thi câu lệnh search trong Metasploit - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 3. Thực thi câu lệnh search trong Metasploit (Trang 12)
Hình 2. Thực thi câu lệnh show options trong Metasploit - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 2. Thực thi câu lệnh show options trong Metasploit (Trang 12)
Hình 4. Tìm kiếm các thông tin liên quan đến bruteforce - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 4. Tìm kiếm các thông tin liên quan đến bruteforce (Trang 13)
Hình 5. Tìm kiếm với nhiều từ khóa kết hợp trong câu lệnh search - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 5. Tìm kiếm với nhiều từ khóa kết hợp trong câu lệnh search (Trang 14)
Hình 6. Tìm kiếm với từ khóa ms17_010 trong câu lệnh search - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 6. Tìm kiếm với từ khóa ms17_010 trong câu lệnh search (Trang 14)
Hình 7. Sử dụng lệnh use với module mong muốn - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 7. Sử dụng lệnh use với module mong muốn (Trang 15)
Hình 9. Liệt kê các payload trong module khai thác - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 9. Liệt kê các payload trong module khai thác (Trang 16)
Hình 10. Chọn payload reverse_tcp - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 10. Chọn payload reverse_tcp (Trang 16)
Hình 12. Câu lệnh info cho từng module exploit - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 12. Câu lệnh info cho từng module exploit (Trang 17)
Hình 11. Liệt kê các mục tiêu khả thi để khai thác - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 11. Liệt kê các mục tiêu khả thi để khai thác (Trang 17)
Hình 15. Kiểm tra trạng thái cơ sở dữ liệu - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 15. Kiểm tra trạng thái cơ sở dữ liệu (Trang 22)
Hình 20. Liệt kê các trang web có sẵn - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 20. Liệt kê các trang web có sẵn (Trang 23)
Hình 24. Liệt kê các mô-đun được bật sử dụng lệnh wmap_run -t - Học phần: An toàn mạng Bài báo cáo:  Tìm hiểu về công cụ Metasploit trong ứng dụng Web
Hình 24. Liệt kê các mô-đun được bật sử dụng lệnh wmap_run -t (Trang 24)
w