Bộ công cụ Metasploit là bộ công cụ khai thác lỗ hổng không thể thiếu của các hacker cũng như Penetration Tester. Metasploit không phải là một công cụ mà là một Framework tập hợp rất nhiều chương trình cũng như công cụ phục vụ cho việc tấn công, kiểm tra độ an toàn và bảo mật của hệ thống. 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 server. 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 bằng Ruby. Đây là một ứng dụng mã nguồn mở phát triển nhằm sử dụng các shellcode để tấn công, 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 như Linux, Windows, MacOS… Thử nghiệm thâm nhập mã nguồn mở Metasploit Framework Rapid7 là một dự án được Hoa Kỳ tài trợ và công cụ kiểm thử cho Metasploit Framework có tên Metasploit Community Edition đã được phát hành. Metasploit Community Edition là công cụ kiểm tra thâm nhập có giới hạn cung cấp sức mạnh của Metasploit Framework với giao diện người dùng đồ hoạ được thêm vào để dễ dàng điều hướng và khai thác. Metasploit Community Edition có sẵn bản miễn phí trên mạng. Community Editioin dựa trên Metasploit Framework, một sự kết hợp của giao diện người dùng cơ bản có sẵn trong các phiên bản thương mại. Sử dụng thử nghiệm thâm nhập cơ bản, GUI đơn giản, cung cấp các môđun import như một Browse. Bạn có thể xác minh bất kỳ lỗ hổng khai thác nào, quản lý luồng dễ bị tấn công và bảo vệ dữ liệu và cũng có thể nhập báo cáo quét lỗ hổng của bên thứ ba. Nó được thiết kế cho sinh viên và doanh nghiệp nhỏ, những người muốn mô phỏng một cách an toàn các cuộc tấn công mạng bằng khai thác cơ bản và phát hiện mạng. Metasploit hỗ trợ những trình duyệt: • Chrome 8+ • Firefox 4+ • Internet Explorer 9+ Bạn có thể download chương trình tại www.metasploit.com I.2. Các tính năng chính: Một giao diện người dùng đồ họa đơn giản, giúp việc đánh giá tính dễ bị xâm nhập và đánh giá an ninh dễ dàng hơn các giải pháp thay thế dựa trên dòng lệnh. Phát hiện mạng, cho phép người dùng lập bản đồ các mạng của họ bằng cách xác định các máy chủ, quét các cổng mở và lấy dấu vân tay các hệ điều hành và dịch vụ của họ. Tích hợp với các máy quét dễ bị tấn công, do đó quét dữ liệu từ Rapid7 Nexpose, Nmap và hàng tá các giải pháp khác có thể được nhập trực tiếp vào Metasploit Community. Các quá trình quét Nexpose cũng có thể được bắt đầu và đặt vị trí nhập trực tiếp từ bên trong Metasploit Community. Khai thác cơ bản, cho phép người dùng xác minh những lỗ hổng nào có thể khai thác được và phải được khắc phục và những lỗ hổng nào không được khai thác. Điều này làm tăng năng suất và giảm chi phí của một chương trình quản lý dễ bị xâm nhập và giúp ngăn ngừa sự vi phạm dữ liệu. Trình duyệt module, tận dụng cơ sở dữ liệu lớn nhất thế giới về khai thác đảm bảo chất lượng để người dùng có thể dễ dàng tìm ra cách khai thác đúng. Mỗi môđun bao gồm một bảng xếp hạng độ tin cậy, chỉ ra tỷ lệ thành công điển hình và tác động đến hệ thống mục tiêu. Các chuyên gia bảo mật và CNTT có thể dễ dàng nâng cấp từ Metasploit Community lên Metasploit Pro, tiếp tục làm việc với giao diện quen thuộc trên cài đặt hiện tại. Metasploit Pro có thêm nhiều khả năng mạnh như khai thác thông minh, kiểm tra mật khẩu, quét ứng dụng Web, hậu khai thác, kỹ thuật xã hội, hợp tác nhóm, báo cáo toàn diện và hỗ trợ cấp doanh nghiệp. I.3. Các thành phần Hỗ trợ giao diện người dùng : o 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. o Web Interface: Giao tiếp với người dùng thông qua giao diện web. Sử dụng file msfweb.bat. o Command line interface: dùng msfcli.bat Phần Enviroment : o 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. o 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. Bạn có thể lưu lại enviroment mình đã cấu hình thông qua lệnh save. Môi trường đó sẽ được lưu trong .msfconfig và sẽ được load trở lại khi user interface được thực hiện Những thành phần nào có cấu hình giống nhau giữa các exploits module như là: LPORT, LHOST, PAYLOAD thì bạn nên cấu hình ở chế độ Global Enviroment để không phải cấu hình lại nhiều lần.
Trang 1TRƯỜNG ĐẠI HỌC KHOA CÔNG NGHỆ THÔNG TIN
-*** -AN NINH MẠNG
ĐỀ TÀI 6: NGHIÊN CỨU TRIỂN KHAI BỘ CÔNG CỤ METASPLOIT
(phiên bản community Edition với các modul: Network discovery, Vulnerability Scanner
import, Basic Exploitation, Module Browser)
Giảng Viên Hướng Dẫn:
Sinh Viên thực hiện:
Nhóm 9
Mạng Máy Tính K58.
Trang 2MỤC LỤC
I Giới thiệu:
I.1 Giới thiệu chung
- Bộ công cụ Metasploit là bộ công cụ khai thác lỗ hổng không thể thiếu của các hacker cũng như Penetration Tester Metasploit không phải là một công cụ mà là một Framework tập hợp rất nhiều chương trình cũng như công cụ phục vụ cho việc tấn công, kiểm tra độ an toàn và bảo mật của hệ thống
- 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
Trang 3- Thử nghiệm thâm nhập mã nguồn mở "Metasploit Framework" Rapid7 là một dự án được Hoa Kỳ tài trợ và công cụ kiểm thử cho Metasploit Framework có tên "Metasploit
Community Edition" đã được phát hành Metasploit Community Edition là công cụ kiểm tra thâm nhập có giới hạn cung cấp sức mạnh của Metasploit Framework với giao diện người dùng
đồ hoạ được thêm vào để dễ dàng điều hướng và khai thác Metasploit Community Edition có sẵn bản miễn phí trên mạng
- Community Editioin dựa trên Metasploit Framework, một sự kết hợp của giao diện người dùng cơ bản có sẵn trong các phiên bản thương mại Sử dụng thử nghiệm thâm nhập cơ bản, GUI đơn giản, cung cấp các mô-đun import như một Browse Bạn có thể xác minh bất kỳ lỗ hổng khai thác nào, quản lý luồng dễ bị tấn công và bảo vệ dữ liệu và cũng có thể nhập báo cáo quét lỗ hổng của bên thứ ba
- Nó được thiết kế cho sinh viên và doanh nghiệp nhỏ, những người muốn mô phỏng một cách an toàn các cuộc tấn công mạng bằng khai thác cơ bản và phát hiện mạng
- Metasploit hỗ trợ những trình duyệt:
• Chrome 8+
• Firefox 4+
• Internet Explorer 9+
- Bạn có thể download chương trình tại www.metasploit.com
I.2 Các tính năng chính:
- Một giao diện người dùng đồ họa đơn giản, giúp việc đánh giá tính dễ bị xâm nhập và đánh giá an ninh dễ dàng hơn các giải pháp thay thế dựa trên dòng lệnh
- Phát hiện mạng, cho phép người dùng lập bản đồ các mạng của họ bằng cách xác định các máy chủ, quét các cổng mở và lấy dấu vân tay các hệ điều hành và dịch vụ của họ
- Tích hợp với các máy quét dễ bị tấn công, do đó quét dữ liệu từ Rapid7 Nexpose, Nmap
và hàng tá các giải pháp khác có thể được nhập trực tiếp vào Metasploit Community Các quá trình quét Nexpose cũng có thể được bắt đầu và đặt vị trí nhập trực tiếp từ bên trong Metasploit Community
- Khai thác cơ bản, cho phép người dùng xác minh những lỗ hổng nào có thể khai thác được và phải được khắc phục - và những lỗ hổng nào không được khai thác Điều này làm tăng năng suất và giảm chi phí của một chương trình quản lý dễ bị xâm nhập và giúp ngăn ngừa sự vi phạm dữ liệu
Trang 4I.3 Các thành phần
- Hỗ trợ giao diện người dùng :
o 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
o Web Interface: Giao tiếp với người dùng thông qua giao diện web Sử dụng file msfweb.bat
o Command line interface: dùng msfcli.bat
- Phần Enviroment :
o 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
o 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
Bạn có thể lưu lại enviroment mình đã cấu hình thông qua lệnh save Môi trường đó sẽ được lưu trong /.msf/config và sẽ được load trở lại khi user interface được thực hiện
Những thành phần nào có cấu hình giống nhau giữa các exploits module như là: LPORT, LHOST, PAYLOAD thì bạn nên cấu hình ở chế độ Global Enviroment để không phải cấu hình lại nhiều lần
II Hướng dẫn cài đặt
II.1 Yêu cầu
Để cài đặt được Metasploit, ổ cứng phải còn trống khoảng 30GB-40GB bao gồm cả Snapshot trong quá trình thực hành hệ thống; RAM tối thiểu 4G Ram nhưng để tốt nhất nên chọn RAM 8G; CPU Core 2 Dou trở lên
II.2 Cài đặt
Sau khi download bản Metasploit Community Edition, chúng ta tiến hành cài đặt, giao
diện cài đặt xuất hiện và chọn Next
Trang 5Tiếp theo, tích chọn ô I accept the agreement và chọn Next
Chọn ổ lưu file Metasploit và tiếp tục chọn Next
Trang 6Tiếp tục chọn Next cho đến khi xuất hiện giao diện chạy file cài đặt
Quá trình cài đặt hoàn tất, chọn Finish và tích chọn Access Metasploit Web UI
Trang 7Sau khi kết thúc cài đặt, trình duyệt Web mở lên và xuất hiện giao diện mở đầu của Metasploit
Trang 8Click vào link: https://localhost:3790/ sẽ dẫn đến trang tạo tài khoản để login vào
Metasploit Điền Username, Password sử dụng và một số thông tin bổ sung, rồi chọn Create Account:
Trình duyệt chuyển đến trang nhập key để active chương trình, key này được gửi miễn phí đến mail khi tải phần mềm Sau khi điền key nhấn Activate License:
Trang 9Chương trình Metasploit được hoàn thành cài đặt, và đây là giao diện sử dụng chương trình:
Trang 10III Hướng dẫn sử dụng
Trước hết sẽ tìm hiểu qua về những câu lệnh, tùy chọn khác nhau để có thể nắm được nhiệm vụ của lệnh đấy Sau đó sẽ tìm hiều 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
III.1 Nội dung của các câu lệnh khi ta sử dụng giao diện 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
(i) Ví dụ: msf payload(reverse http) > back
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
Ví dụ: msf > connect 118.69.228.254 22
- 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
Trang 11giao 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
III.2 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 đó.
Một vài module còn có những tùy chọn nâng cao, bạn có thể xem bằng cách gõ dòng
lệnh show advanceds.
- 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.
- Bước 4: Lựa chọn target: lựa chọn hệ điều hành nào để thực hiện.
show targets: những mục tiêu được cung cấp bởi module đó.
set: xác định mục tiêu.
Ví dụ: smf> use windows_ssl_pct
show targets
Exploit sẽ liệt kê ra những mục tiêu như: winxp, winxp SP1, win2000, win2000 SP1
Trang 12III.3 Giới thiệu payload meterpreter
Meterpreter, viết tắt từ Meta – Interpreter là một advanced payload có trong Metasploit framework Mục đích của nó là để cung cấp những tập lệnh để khai thác, tấn công các máy remote computers Nó được viết từ các developers dưới dạng shared object (DLL) files
Meterpreter và các thành phần mở rộng được thực thi trong bộ nhớ, hoàn toàn không được ghi lên đĩa nên có thể tránh được sự phát hiện từ các phần mềm chống virus Meterpreter cung cấp một tập lệnh để chúng ta có thể khai thác trên các remote computers
Fs: cho phép upload và dowload files từ các remote machine.
Net: cho phép xem thông tin mạng của remote machine như IP, route table.
Process: cho phpes tạo các processes mới trên remote machine.
Sys: cho phép xem thông tin hệ thống của remote machine
Sử dụng câu lệnh:
Câu lệnh use dùng để load những module mở rộng của meterpreter như: Fs, Net, Process…
use –m module1,module2,module3 [ -p path ] [ -d ]
Câu lệnh cho phép load các thư viện của remote machines
loadlib –f library [ -t target ] [ -lde ]
Lệnh read cho phép xem dữ liệu của remote machine trên channel đang kết nối
Read channel_id [length]
Lệnh write cho phép ghi dữ liệu lên remote machine
Write channel_id
Đóng channel mà đã kết nối với remote computer
Close channel_id
Bắt đầu một phiên làm việc với channel vừa thiết lập với remote
Interact channel_id
Trang 13 Sử dụng module Fs: cho phép upload và download files từ các remote machine.
Cd directory : giống lệnh cd của commandline.
Getcwd : cho biết thư mục đang làm việc hiện tại.
Liệt kê các thư mục và tập tin
Ls [filter_string]
Up load file
Upload srcl [src2…] dst
Download file
Download srcl [src2 …] dst
- Sử dụng module Net:
Xem bảng định tuyến
ipconfig
route
Cho phép tạo port forward giữa host và remote machine
portfwd [ -arv ] [ -L laddr ] [ -l lport ] [ -h rhost ] [ -p rport ] [ -P ]
- Sử dụng module Process:
Câu lệnh execute cho phép bạn tạo ra một process mới trên remote machine và sử dụng process đó để khai thác dữ liệu
execute -f file [ -a args ] [ -Hc ]
Hủy những process đang chạy trên máy remote machine
kill pid1 pid2 pid3
Trang 14 Cho biết thông tin về computername, Os
sysinfo
Trang 15III.4 Scan các host trong mạng bằng Metasploit
Tạo Project mới: chọn New Project
• Điền tên project và dải mạng sẽ scan:
Trang 16• Sau khi tạo project quá trình scan bắt đầu:
• Dải địa chỉ sẽ scan từ 172.16.1.1 đến 172.16.1.10:
Trang 17• Quá trình scan :
• Các host trong mạng mà chương trình tìm được sau khi scan xong
Trang 18• Các host tìm được :