Giới thiệu công cụ Metasploit Framework
Chào cả nhà !!!
Trong bài này mình sẽ giới thiệu cho các bạn một công cụ trợ giúp trong việc để kiểm tra, tấn công và khai thác lỗi của các dịch vụ. Mình sẽ chia làm hai phần:
1. Metasploit Framework là gì?
Metasploit Framework là một môi trường dùng để kiểm tra, tấn công và khai thác lỗi của các service. Ban đầu Metasploit được xây dựng từ ngôn ngữ hướng đối tượng Perl với những component được viết bằng C và Python sau đó được viết lại vằng ruby.
Đây là một công cụ mã nguồn mở phát triển nhằm sử dụng các shellcode để tấn công, khai thác khai thác lỗi của các dịch vụ Metasploit có thể chạy trên hầu hết các hệ điều hành: Linux, Windows, MacOS.
Các tính năng chính:
Hỗ trợ giao diện người dùng với 2 dạng:
Ví dụ: msf> setg LPORT 80
msf> setg LHOST 172.16.8.2
3. Hướng dẫn sử dụng
Trước hết mình sẽ nói qua về những câu lệnh, tùy chọn khác nhau để mọi người có thể nắm được nhiệm vụ của lệnh đấy. Sau đó mình sẽ nói về các bước để khai thác một mục tiêu cụ thể. Và cuối cùng là ví dụ về một kịch bản khai thác.
Nội dung của các câu lệnh khi ta sử dụng giao diện msfconsole:
msf>
Các bước để khai thác một mục tiêu:
Bước 1: Chọn module exploit: lựa chọn chương trình, dịch vụ lỗi mà Metasploit có hỗ trợ để khai thác.
Chú ý nên cập nhật thường xuyên các lỗi dịch vụ trên www.metasploit.com hoặc qua script msfupdate.bat.
Bước 2: Cấu hình module exploit đã chọn
Bước 3: Xem lại những options vừa cấu hình:
show targets
Exploit sẽ liệt kê ra những mục tiêu như: winxp, winxp SP1, win2000, win2000 SP1.
Bước 5: Lựa chọn payload
Payload là đoạn code mà sẽ chạy trên hệ thống remote machine.
Trong bài này mình sẽ giới thiệu cho các bạn một công cụ trợ giúp trong việc để kiểm tra, tấn công và khai thác lỗi của các dịch vụ. Mình sẽ chia làm hai phần:
- Phần 1: Giới thiệu về công cụ và hướng dẫn sử dụng.
- Phần 2: Ví dụ minh họa khai thác một lỗi dịch vụ.
1. Metasploit Framework là gì?
Metasploit Framework là một môi trường dùng để kiểm tra, tấn công và khai thác lỗi của các service. Ban đầu Metasploit được xây dựng từ ngôn ngữ hướng đối tượng Perl với những component được viết bằng C và Python sau đó được viết lại vằng ruby.
Đây là một công cụ mã nguồn mở phát triển nhằm sử dụng các shellcode để tấn công, khai thác khai thác lỗi của các dịch vụ Metasploit có thể chạy trên hầu hết các hệ điều hành: Linux, Windows, MacOS.
Các tính năng chính:
- 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.
Hỗ trợ giao diện người dùng với 2 dạng:
- Console interface: Đây là giao diện sử dùng các dòng lệnh để cấu hình, kiểm tra do vậy tốc độ nhanh hơn và mềm dẻo hơn. 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.
- Global Enviroment: Được thực thi thông qua 2 câu lệnh setg và unsetg, những tùy chọn được gán ở đây sẽ mang tính toàn cục, được đưa vào tất cả các module khai thác.
- Temporary Enviroment: Được thực thi thông qua 2 câu lệnh set và unset, enviroment này chỉ được đưa vào module khai thác đang load hiện tại, không ảnh hưởng đến các module khai thác khác.
Ví dụ: msf> setg LPORT 80
msf> setg LHOST 172.16.8.2
3. Hướng dẫn sử dụng
Trước hết mình sẽ nói qua về những câu lệnh, tùy chọn khác nhau để mọi người có thể nắm được nhiệm vụ của lệnh đấy. Sau đó mình sẽ nói về các bước để khai thác một mục tiêu cụ thể. Và cuối cùng là ví dụ về một kịch bản khai thác.
Nội dung của các câu lệnh khi ta sử dụng giao diện msfconsole:
- Chuyển sang công việc khác.
msf>
- Check: Lệnh này giúp ta kiểm tra đã cấu hình đúng cho khai thác chưa, mọi việc đã hoàn thành chưa. Cho ta biết kết quả mà không cần phải thực thi khai thác đó. Nhưng không phải tất cả mọi mã khai thác đều hỗ trợ lệnh này.
- Connect: Lệnh này giống như một bản netcat thu nhỏ đc cho vào metasploit được hỗ trợ với ssl, proxy, pivoting... Với việc dùng câu lệnh connect với địa chỉ ip và port tương ứng, chúng ta có thể connect tới một host từ metasploit giống như khi dùng với netcat hoặc telnet vậy.
- Info: Lệnh này cho biết những thông tin chi tiết của một module (hay một mã khai thác nào đó ). Hiển thị cho ta thông tin cơ bản nhất, bao gồm cả 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.
- Search: Lệnh này giúp ta tìm kiếm exploit, auxiliary, encoder. Trong đó nó còn hỗ trợ một số keywork giúp cải tiến khả năng 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 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 thường thì ta phải set nhiều lần. Nhưng nếu ta để cho các option này có ý nghĩa toàn cục. Thì việc lặp lại là không cần. Nó có hiệu lực cho mọi exploit, auxiliary. Đó là ý nghĩa của setg (global set). Để hủy thì ta dùng unsetg. Nếu muốn lưu việc cấu hình này lại 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 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 cùng với các tác vụ tự động. Phân loại trong auxiliary module: module quét các giao thức (như SMB, HTTP), module quét các port, wireless, IPV6, DOS, Server modules, Module khai thác truy cập quản trị.
- Exploits: Là một module dùng để khai thác các dịch vụ.
- Payloads: Trước tiên ta cần hiểu Payload là gi ? Ta có thể hiểu một cách đơn giản thì nó là một đoạn code thực thi trên máy nạn nhân, dùng để thực hiện một số hoạt động nào đó, hoặc dùng để kết nối về máy của người tấn công. Vậy làm sao để có cái Payload này trên máy của nạn nhân ? Có 2 phương pháp chủ yếu được dùng. Đó là gửi cho nạn nhân thông qua việc phân tính một lỗi, lỗ hổng nào đó trên hệ thống của nạn nhân, từ đó đột nhập và gửi đoạn payload này cho nạn nhân. Kiểu thứ 2 là gửi trực tiếp cho nạn nhân, chờ đợi nạn nhân sơ ý nhận nó (kĩ thuật social engineering).
- 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.
Các bước để khai thác một mục tiêu:
Bước 1: Chọn module exploit: 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.
Chú ý nên cập nhật thường xuyên các lỗi dịch vụ trên www.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 đó.
Bước 3: Xem lại những options vừa cấu hình:
- check: kiểm tra xem những option đã được cấu hình chính xác chưa.
- show targets: những mục tiêu được cung cấp bởi module đó.
- set: xác định mục tiêu.
show targets
Exploit sẽ liệt kê ra những mục tiêu như: winxp, winxp SP1, win2000, win2000 SP1.
Bước 5: Lựa chọn payload
Payload là đoạn code mà sẽ chạy trên hệ thống remote machine.
- 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 tên payload module.Sau khi lựa chọn payload nào, dùng lệnh show options để xem những options của payload đó.
- show advanced: xem những advanced options 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.
Chỉnh sửa lần cuối bởi người điều hành: