Việc dò tìm các lỗ hổng bảo mật đóng một vai trò rất quan trọng với các quản trị viên hệ thống, các chuyên gia bảo mật, nhằm tìm ra các biện pháp tăng cường bảo mật cho hệ thống. Tuy nhiên việc tìm thêm các lỗ hổng mới tương đối khó khăn, một phần do các lỗ hổng cũ sau khi công bố một thời gian, các nhà sản xuất sẽ tìm cách “vá” lại những lổ hổng đó, một phần do những người tìm ra những lỗ hổng mới đó không muốn công khai một cách rộng rãi, vì vậy việc sử dụng các công cụ để kiểm tra hay phát hiện các lỗi bảo mật nhằm nâng cao tính an toàn của hệ thống là rất quan trọng. Trong quá trình bảo mật một hệ thống mạng cho công ty hay tổ chức việc sử dụng các công cụ quét lỗ hổng mạng lan là rất cần thiết, vì nó sẽ giúp người quản lý hệ thống mạng dễ dàng tìm ra các lổ hổng để xử lý và khắc phục, tiết kiệm được nhiều thời gian và công sức, cũng như tiết kiệm được chi phí cho công ty hay tổ chức đó.
Trang 1
Giáo viên hướng dẫn (Ký tên)
Trang 2Để hoàn thành bài báo cáo đồ án chuyên ngành này, em xin chân thành cảm
ơn thầy Phạm Duy Lộc đã tận tình hướng dẫn em trong suốt quá trình thực hiện đề tài
Em cũng xin chân thành cảm ơn các thầy (cô) trong khoa công nghệ thông tin
đã tận tâm dạy bảo em trong suốt quá trình học để em có kiến thức nền tảng hoàn thành môn học này
Cuối cùng em xin được gửi tới các thầy, các cô một lời chúc sức khỏe, chúc các thầy cô đạt được nhiều thành công hơn nữa trong công cuộc trồng người
Mặc dù đã cố gắng rất nhiều để hoàn thiện đề tài này nhưng do kinh nghiệm còn rất hạn chế, nên không tránh khỏi những sai sót Em rất mong nhận được sự hướng dẫn và dạy bảo của Thầy để em có thể hoàn thiện hơn về mặt kiến thức
Trang 3Khoa Công nghệ Thông tin
- -
ĐỀ CƯƠNG THỰC HIỆN ĐỒ ÁN Tên đề tài: Nghiên cứu một số công cụ quét lỗ hổng trong mạng LAN
Giáo viên hướng dẫn: Thầy Phạm Duy Lộc
Sinh viên thực hiên:
1
Mục tiêu đề tài:
Giúp sinh viên hệ thống hóa lại kiến thức nền tảng liên quan đã học, đi sâu vào nghiên cứu và khai thác các lỗ hổng bảo mật, từ đó đề xuất ra phương pháp bảo vệ
an toàn cho hệ thống mạng đang hoạt động
Nội dung đề tài: Tiến hành nghiên cứu, tìm hiểu và triển khai demo các công cụ sau:
Metasploit
Nessus
Nmap
Triển khai hệ thống WSUS trong mạng Windows
Viết tài liệu hướng dẫn chi tiết cho sinh viên khóa sau tham khảo
Phần mềm và công cụ sử dụng:
Để hoàn thành đề tài này em đã sử dụng các phần mềm và công cụ sau:
Hệ điều hành Windows Server 2003, Windows Server 2008, Windows 8, Windows 7, Backtrack 5r3
Phần mềm soạn thảo văn bản: Microsoft Office 2013
Trang 4 Các công cụ thực hiện việc quét và khai thác các lỗ hỏng như: Metasploit,
Nessus, Nmap
Dự kiến kết quả đạt được:
Qua quá trình tìm hiều và phân tích mục tiêu cũng như yêu cầu của đề tài em
dự kiến kết quả đạt được là 90%
Tài liệu tham khảo:
1 Hacking Techniques & Intrusion Detection, Dr.Ali Al-Shemery
2 Building Payloads Tutorial, RAPID7
3 Known Credentials Intrusion Quick Start Guide, RAPID7
4 Vulnerability Validation Tutorial, RAPID7
5 Metasploit Community 4.9 User Guide, RAPID7
6 Nessus 6.1 Installation and Configuration Guide, revision 5
7 CEH v7, phiên bản tiếng việt
Trang 5MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ CÁC CÔNG CỤ QUÉT LỖ HỔNG 2
1.1 Khái niệm về lỗ hổng bảo mật 2
1.2 Sơ đồ phát hiện và khai thác lỗ hổng 2
1.3 Các công cụ quét lỗ hổng bảo mật 3
CHƯƠNG 2 TÌM HIỂU CÔNG CỤ METASPLOIT 4
2.1 Giới thiệu Metasploit 4
2.2 Metasploit Framework 5
2.2.1 Kiến trúc của Metasploit Framework 5
2.2.2 Một số thuật ngữ thường dùng 6
2.2.3 Giao diện của Metasploit 9
2.2.4 Môi trường làm việc của Metasploit 12
2.2.5 Tập lệnh trong msfconsole 13
2.2.6 Tìm hiểu payload meterpreter 14
2.2.7 Tiện ích hỗ trợ trong Metasploit 17
2.3 Cài đặt Metasploit 19
2.4 Quét và khai thác lỗ hổng với Metasploit 26
2.4.1 Sử dụng giao diện web scan các host trong mạng Lan 26
2.5 Nhập dữ liệu từ các phần mềm khác 29
2.5.1 Nhập liệu từ Nessus 29
CHƯƠNG 3: MỘT SỐ CÔNG CỤ KHAI THÁC CÁC LỖ HỔNG KHÁC 37
3.1 Tìm hiểu về công cụ Nessus 37
3.1.1 Giới thiệu Nessus 37
Trang 63.1.3 Mô hình Nessus Client – Server 38
3.1.4 Mô hình Nessus Knowledge Base 38
3.1.5 Mô hình Nessus Plugin 39
3.1.6 Khai thác lỗ hổng bảo mật với Nessus 39
3.2 Tìm hiểu về công cụ Nmap 43
3.2.1 Giới thiệu Nmap 43
3.2.2 Cách thức scanning của Nmap 44
3.2.3 Giao diện sử dụng của Nmap 45
3.3 Cách phòng chống các lỗi bảo mật 48
CHƯƠNG 4: TRIỂN KHAI WSUS TRONG MẠNG WINDOWS 49
4.1 Giới thiệu tổng quan 49
4.2 Các thành phần chính trong hệ thống WSUS 49
4.2.1 Một WSUS Server (Small-Sized hoặc Simple Network) 50
4.2.2 Nhiều WSUS Server 50
4.2.3 WSUS Server không có kết nối đến internet 52
4.3 Triển khai chi tiết 53
4.3.1 Cài đặt và join domain 54
4.3.2 Cài đặt Microsoft Report Viewer redistributable 2008 57
4.3.3 Cài IIS và các thành phần yêu cầu cho WSUS 58
4.3.4 Cài đặt WSUS 60
4.3.5 Cấu hình WSUS 63
4.3.6 Cấu hình Client bằng GPO 69
4.3.7 Tạo Computer Group 76
Trang 74.3.9 Xem báo cáo trạng thái trên máy chủ 79
4.3.10 Approve updates 82
KẾT LUẬN 84
HƯỚNG PHÁT TRIỂN 85
DANH MỤC TÀI LIỆU THAM KHẢO 86
PHỤC LỤC 87
Trang 81
MỞ ĐẦU
Việc dò tìm các lỗ hổng bảo mật đóng một vai trò rất quan trọng với các quản trị viên hệ thống, các chuyên gia bảo mật, nhằm tìm ra các biện pháp tăng cường bảo mật cho hệ thống Tuy nhiên việc tìm thêm các lỗ hổng mới tương đối khó khăn, một phần do các lỗ hổng cũ sau khi công bố một thời gian, các nhà sản xuất sẽ tìm cách
“vá” lại những lổ hổng đó, một phần do những người tìm ra những lỗ hổng mới đó không muốn công khai một cách rộng rãi, vì vậy việc sử dụng các công cụ để kiểm tra hay phát hiện các lỗi bảo mật nhằm nâng cao tính an toàn của hệ thống là rất quan trọng
Trong quá trình bảo mật một hệ thống mạng cho công ty hay tổ chức việc sử dụng các công cụ quét lỗ hổng mạng lan là rất cần thiết, vì nó sẽ giúp người quản lý
hệ thống mạng dễ dàng tìm ra các lổ hổng để xử lý và khắc phục, tiết kiệm được nhiều thời gian và công sức, cũng như tiết kiệm được chi phí cho công ty hay tổ chức đó
Em quyết định chọn đề tài này vì nó có tính ứng dụng thực tế rất cao, bên cạnh
đó đề tài này còn giúp em hệ thống lại toàn bộ kiến thức đã được học
Trang 92
CHƯƠNG 1: TỔNG QUAN VỀ CÁC CÔNG CỤ QUÉT LỖ HỔNG
1.1 Khái niệm về lỗ hổng bảo mật
Trong quá khứ, nhiều người xem lổ hổng bảo mật thuộc về lỗi một phần mềm hoặc một phần cứng đã bị mã độc nhiễm vào Tuy nhiên, trong những năm qua, khái niệm trên về lổ hổng bảo mật vẫn không thay đổi, tuy nhiên nó được bổ sung thêm một khái niệm misconfiguration hay còn gọi là lỗi cấu hình sai
Bất kỳ gói phần mềm nào cũng có hàng ngàn lỗi bảo mật Các attacker sẽ tiến hành khai thác sử dụng các lỗ hổng này để tiến hành tấn công các hệ thống, xâm nhập trái phép để thực hiện các hành động phá hoại hoặc chiếm đoạt tài nguyên bất hợp pháp Đây cũng là nguyên nhân các nhà sản xuất phần mềm liên tục đưa ra các bản
vá lỗi
Có nhiều nguyên nhân gây ra nhưng lỗ hổng bảo mật, ta có thể xem xét một vài nguyên nhân như sau: có thể do lỗi của bản thân hệ thống, hoặc phần mềm cung cấp, hoặc do người quản trị yếu kém không hiểu biết sâu sắc về hệ thống và các dịch
vụ cung cấp…
1.2 Sơ đồ phát hiện và khai thác lỗ hổng
Discovery (phát hiện): một nhà nghiên cứu bảo mật hoặc nhà cung cấp phát
hiện ra một khả năng dễ bị tổn thương trong phần mềm
Exploit development Testing
Release
Trang 103
Disclosure (tiết lộ): nhà nghiên cứu bảo mật thông báo một lỗi bảo mật cho
nhà cung cấp
Analysis (phân tích): các nhà nghiên cứu hoặc những người khác trên toàn thế
giới bắt đầu phân tích lỗ hổng để xác định khả năng khai thác của nó
Exploit development (phát triển khai thác): quá trình phát triển khai thác bắt
đầu Điều này đòi hỏi sự hiểu biết về sâu sắc về kiến thức mạng máy tính cũng như lập trình, hệ thống các thanh ghi …
Testing (kiểm tra): đây là giai đoạn các coder kiểm tra mã khai thác đối
với các nền tảng khác nhau, gói dịch vụ (service pack), hoặc các bản vá lỗi
Release (phát hành): Sau khi thử nghiệm khai thác và có được các thông
số cụ thể cần thiết cho nó thực thi thành công, coder sẽ phát hành khai thác riêng tư hoặc được đăng tải trên diễn đàn công cộng
1.3 Các công cụ quét lỗ hổng bảo mật
Để tiến hành xử lý được các lỗ hổng bảo mật thì việc đầu tiên chúng ta cần thực hiện là truy tìm ra các lỗi bảo mật đó trước, tuy nhiên điều này là không hề dễ dàng nếu ta thực hiện một cách thủ công
Từ đó có rất nhiều công cụ ra đời giúp ta có thể thực hiện hiện công việc quét lỗi hệ thống này, ta tiến hành nghiên cứu một số công cụ cơ bản như: Metasploit, Nesus, Nmap
Trang 114
CHƯƠNG 2 TÌM HIỂU CÔNG CỤ METASPLOIT
2.1 Giới thiệu Metasploit
Metasploit project là một dự án an ninh máy tính mã nguồn mở cung cấp thông tin về lỗ hổng bảo mật và hỗ trợ việc thử nghiệm thâm nhập và phát triển IDS (Intrusion Detection Systems_Hệ thống phát hiện xâm nhập) Metasploit đã được tạo
ra bởi HD Moore vào năm 2003 như một công cụ mạng di động bằng cách sử dụng ngôn ngữ kịch bản Perl Sau đó, Metasploit Framework đã được viết lại hoàn toàn bằng ngôn ngữ lập trình Ruby và đã trở thành project Ruby lớn nhất thế giới Nó là một công cụ mạnh mẽ cho các chuyên viên bảo mật điều tra lỗ hổng bảo mật tiềm năng, Metasploit có thể được sử dụng để kiểm tra lỗ hổng của các hệ thống máy tính
để bảo vệ chúng, và nó có thể được sử dụng để đột nhập vào hệ thống từ xa Cũng như nhiều công cụ bảo mật thông tin khác, metasploit cũng có thể được sử dụng cho
cả các hoạt động hợp pháp và các hoạt động trái phép
Ngày 21 Tháng 10 năm 2009 có công bố nói rằng Metasploit project đã được mua lại bởi Rapid7, một công ty bảo mật cung cấp các giải pháp quản lý lỗ hổng Kể
từ khi mua lại Metasploit Framework, Rapid7 đã có thêm ba phiên bản lõi mở độc quyền là Metasploit Express, Metasploit Pro và Metsploit Community Trong đó 2 bản Express và Pro là tính phí còn Community là free Metasploit có thể chạy trên hầu hết các hệ điều hành: Linux, Windows, MacOS
Trang 125
2.2 Metasploit Framework
2.2.1 Kiến trúc của Metasploit Framework
Những thành phần chính trong kiến trúc của một Framework bao gồm:
Rex: là thành phần cơ bản nhất của toàn bộ kiến trúc Framework Rex là viết
tắt của Ruby Extension Library, là một tập hợp các lớp, modun có thể được sử dụng bởi các nhà phát triển để phát triển các dự án hoặc các công cụ cho MSF (Metasploit Framework)
Framework Core: bao gồm một tập các hệ thống con như các modun quản
lý, quản lý phiên, sự kiện điều phối… Khung lõi cũng cung cấp cho ta một giao diện
để chạy các modun và plugins của Framework Khung lõi bao gồm:
Datastore: được hiểu như một môi trường, nó bao gồm một giá trị băm có
thể được sử dụng bởi các modun tham chiếu đến chương trình hay các bằng các giá trị điều khiển Biến môi trường là một trong những giá trị như vậy,
nó được sử dụng bởi các modun khai thác hay bởi các framework để xác định chính xác các hành vi được thực hiện
Trang 136
Event Notification (thông báo sự kiện): cho phép các nhà phát triển đưa ra
các hành động cụ thể với từng sự kiện hay hành động xảy ra Mỗi một sự kiện sẽ có một cách thức xử lý tương ứng với nó
Framework Managers: có nhiệm vụ quản lý các modun, plugin, sessions,
jobs
Framework Base (khung cơ sở): được xây dựng dựa trên khuôn khổ của
khung lõi, cung cấp giao diện để dễ giao tiếp hơn với các module trong framework Một số khung cơ sở:
Configuration: duy trì một cấu hình liên tục và thu thập thông tin về cấu
trúc của tiến trình cài đặt, chẳng hạn như thư mục gốc của quá trình cài đặt
hay các thuộc tính khác
Sessions: những thông tin cơ bản về việc duy trì, kiểm soát các hành vi trong
phiên làm việc của người dùng
Logging: là một tiện ích của MSF cho phép ghi lại các thông tin, các lỗi, gỡ lỗi một cách tổng quát và linh hoạt
2.2.2 Một số thuật ngữ thường dùng
Discovery Scan là một máy quét nội bộ của Metasploit phối hợp Nmap và các
module riêng biệt của Metasploit để quét và truy tìm target Nếu không có Nexpose
hoặc không thể quét dữ liệu để nhập vào Metasploit Community, chúng ta có thể chạy
trình quét để phát hiện và thu thập thông tin của target
Target là hệ thống mà ta muốn khai thác Thuật ngữ target có thể được hiểu
là một máy trạm độc lập, một cụm máy trạm, một dải mạng hay toàn bộ một mạng
Exploit (khai thác) là chức năng chính của MSF, giúp ta thử nghiệm khai thác
các lỗ hổng phần mềm Mỗi một module cung cấp một phương thức khai thác, và được phân loại rõ ràng đối với từng hệ điều hành cũng như phiên bản phần mềm Việc khai thác thông thường dựa vào những điểm yếu hay gặp như: lỗi tràn bộ đệm,
Trang 147
các lỗi trên ứng dụng web (SQL Injection, XSS…), lỗi trong quá trình cấu hình, triển khai hệ thống
Payload (tải trọng) là một đoạn code được xây dựng để hệ thống thực thi Các
Payload này được lựa chọn và cung cấp bởi Framework Ví dụ một reverse shell là
một payload, nó tạo ra một kết nối từ máy nạn nhân tới máy của kẻ tấn công, kẻ tấn công có thể lắng nghe về máy tính nạn nhân thông qua cổng kết nối Một payload cũng có thể được hiểu đơn giản là một số các câu lệnh được thực hiện trên hệ điều hành của máy nạn nhân Dùng lệnh "show payloads" để liệt kê các payload có trong metasploit:
Shell là một giao diện điều khiển, được cung cấp để chúng ta thực hiện truy
cập từ xa vào máy nạn nhân
Shellcode là một tập các câu lệnh được sử dụng như một payload khi thực hiện
khai thác Shellcode thường được viết bằng hợp ngữ (assembly)
Meterpreter là một payload tiên tiến đa chức năng, cung cấp cho chúng ta một
shell tương tác từ Meterpreter shell Chúng ta có thể làm những việc như tải về một tập tin, lấy được mã hash của mật khẩu của tài khoản người dùng, hay xâm nhập vào
Trang 15một module cho phép mở ra một shell trên máy nạn nhân thì đó được coi là một
module exploit
Listener (lắng nghe) được xem là một thành phần trong Metasploit, được dùng
để thực hiện chờ một kết nối Ví dụ: sau khi máy nạn nhận bị khai thác, nó có thể
được kểt nối đến máy tấn công thông qua mạng Internet Listener này sẽ xử lý các
kết nối và chờ trên máy tấn công để có thể được kết nối lại với nhau bằng hệ thống khai thác
Task là một hành động mà Metasploit Community có thể thực hiện, chẳng hạn
như một máy quét, tấn công bruteforce, khai thác, hoặc tạo báo cáo
Project bao gồm các target, task, báo cáo và dữ liệu, là một phần của kiểm tra
xâm nhập Một project đại diện cho một không gian làm việc mà chúng ta sử dụng
để kiểm tra xâm nhập và cấu hình task Mọi kiểm tra xâm nhập đều chạy từ trong một project
Vulnerability là một lỗi bảo mật hoặc điểm yếu trong một ứng dụng hay hệ
thống mà sẽ trở thành mục tiêu của những kẻ tấn công Một hệ thống bị xâm nhập có thể dẫn đến bị mất quyền kiểm soát, tấn công từ chối dịch vụ, truy cập dữ liệu trái phép, đánh cắp mật khẩu, và tràn bộ đệm
Auxiliaries là chức năng mới được bổ sung từ phiên bản v3.0, bổ sung các
module cho việc tìm kiếm, thu thập thông tin, thậm chí là dò tìm lỗ hổng với các phần mềm Cụ thể như sau có các module sau:
module quét các giao thức ( như SMB,HTTP)
Module quét cách cổng port
Trang 16 Module khai thác truy cập quản trị
2.2.3 Giao diện của Metasploit
Metasploit cung cấp cho chúng ta nhiều hơn một giao diện để thực hiện các chức năng cơ bản của nó Giao diện của Metasploit bao gồm cả giao diện điều khiển, dòng lệnh hay đồ họa Ngoài ra, các giao diện hay tiện ích của Metasploit Framework thường được cung cấp trực tiếp thông qua các hàm chức năng Những tiện ích này có thể rất hữu dụng cho việc phát hiện khai thác các lỗ hổng của hệ thống mà không cần
sử dụng toàn bộ Framework
Msfconsole đến nay được xem là môi trường làm việc phổ biến nhất của
Metasploit Framework vì nó được đánh giá cao Sử dụng các dòng lệnh để cấu hình, nên kiểm tra nên nhanh hơn và mềm dẻo hơn, đặc biệt interface này còn hỗ trợ sử dụng phím tab để hoàn thành dòng lệnh giống như cisco IOS nên dễ sử dụng hơn cho người dùng Msfconsole cung cấp tất cả trong một giao diện, hầu hết các tùy chọn và thiết lập có sẵn trong Framework Chúng ta có thể sử dụng tất cả mọi thứ, bao gồm việc lên kế hoạch cho quá trình khai thác, tải các module hỗ trợ, thực hiện điều tra hay tạo một listener
Để bắt đầu làm việc trên giao diện MSFconsole ta tiến hành mở theo đường
dẫn:
Trên BackTrack 5 R3:
======================================================= Backtrack → Exploitation Tools → Network Exploitation Tools →
Metasploit Framework → msfconsole
=======================================================
Trang 1710
Msfcli là giao diện cho phép chạy trực tiếp dòng lệnh, cho phép chuyển hướng
đầu ra từ các công cụ khác vào Msfcli và cho kết quả ra trên các công cụ khác Đường dẫn khởi động msfcli
=========================================================== Backtrack → Exploitation Tools → Network Exploitation Tools → Metasploit Framework → msfcli
===========================================================
Nó cung cấp một số trợ giúp cơ bản để người dùng biết được các chế độ làm
việc, các tùy chọn hay các lỗi có thể khai thác được với câu lệnh msfcli–h
Trang 1811
Msfweb là giao diện đồ họa trên web có sẵn trong MSF Nó không cung cấp
tính năng bảo mật, và được khuyến khích sử dụng trên môi trường Windows Dùng
local host default https://localhost:3790 giao tiếp thân thiện với người dùng thông
qua giao diện web
Msfd cho phép mở ra một giao diện mạng trên msfconsole Ta có thể thực hiện
msfd này bằng cách xác định địa chỉ IP và port của máy mà chúng ta muốn kết nối tới để thực hiện khai thác Để biết các tùy chọn ứng với msfd ta có thể thực hiện lệnh
msfd –h:
Trang 1912
Armitage của Metasploit là giao diện đồ họa tương tác với người dùng được
tạo bởi Raphael Mudge Giao diện này khá ấn tượng với nhiều tính năng phong phú,
đa dạng và miễn phí cho người dùng Để khởi động được giao diện Armitage ta khởi
động bằng đường dẫn sau:
=========================================================== Backtrack → Exploitation Tools → Network Exploitation Tools → Metasploit Framework → armitage
2.2.4 Môi trường làm việc của Metasploit
Metasploit cung cấp cho người dùng hai môi trường làm việc hữu ích:
Global Enviroment: các câu lệnh được thực thi thông qua lệnh setg và
unsetg, những options được gán ở đây sẽ mang tính toàn cục, được đưa vào tất cả các module exploits
Temporary Enviroment: được thực thi thông qua hai lệnh set và unset, môi
trường này chỉ được đưa vào module exploits đang được thực thi, nó không ảnh hưởng đến các module exploits khác
Trang 2013
Chúng ta có thể lưu lại môi trường 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 tải lên thực hiện trở lại khi giao
diện người dùng thực hiện nó
2.2.5 Tập lệnh trong msfconsole
Back : lệnh này dùng khi chúng ta muốn thoát ra khỏi module ta đã chọn trước
đó sau khi hoàn thành công việc, hoặc muốn chuyển sang module khác
Check: lệnh này giúp kiểm tra xem đã cấu hình đúng cho exploit chưa Cho ta
biết kết quả mà không cần phải thực thi exploit đó Nhưng không phải tất cả exploit đều hỗ trợ lệnh này
Connect: lệnh này để kết nối tới một host với địa chỉ ip và port tương ứng Info: cho biết những thông tin của một module hay một exploit nào đó Hiển
thị thông tin cơ bản nhất, bao gồm các option cần thiết
Irb: lệnh này cho phép thao tác trên môi trường của ruby
Jobs: lệnh này cho biết các module đang chạy
Load: lệnh này để load một plugin từ metasploit plugins
Search: giúp ta tìm kiếm exploit, auxiliary, encoder (trong đó nó còn hỗ trợ
một số keyword giúp cải tiến khả năng tìm kiếm như:
name : Modules with a matching descriptive name
path : Modules with a matching path or reference name
platform : Modules affecting this platform
port : Modules with a matching remote port
type : Modules of a specific type (exploit, auxiliary, or post)
app : Modules that are client or server attacks
author : Modules written by this author
cve : Modules with a matching CVE ID
Trang 2114
bid : Modules with a matching Bugtraq ID
osvdb : Modules with a matching OSVDB ID
edb : Modules with a matching ExplCoit-DB ID
Sessions: lệnh này liệt kê tất cả các session đang tồn tại, session ở đây có thể
là của shell hoặc meterpreter
Set: lệnh cho phép ta cấu hình các exploit…
Unset: ngược lại với lệnh set
Setg: 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 nhiều exploit Lệnh này có nghĩa toàn cục, nghĩa là nó
có hiệu lực với tất cả exploit
Show: lệnh này cho phép hiện thị tùy theo tham số đi theo nó Nếu là “show
all” thì nó hiển thị tất cả các module có trong metaploit framework Còn nếu “show exploits”thì nó chỉ hiện thị các exploit có trong module exploit mà thôi Tương tự như các module khác, lệnh show còn cho ta thấy các tham số thuộc tính
Use: lệnh này để chọn và dùng một exploit, auxiliary…
2.2.6 Tìm hiể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à download files từ các remote machine
Net: cho phép xem thông tin mạng của remote machine như IP, route table
Trang 2215
Process: cho phép 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
Trang 242.2.7 Tiện ích hỗ trợ trong Metasploit
Những tiện ích này rất hữu ích trong các trường hợp thực hiện khai thác đặc biệt
Msfpayload là một tiện ích của Metasploit cho phép chúng ta tạo Shellcode,
các mã thực thi và nhiều hơn nữa cho việc thực hiện khai thác bên ngoài Framework Mỗi Shellcode có thể được tạo ra với những định dạng khác nhau như: C, Ruby, JavaScript, hay thậm chí là cả Visual Basic cho các ứng dụng Sau khi chúng ta đã xác định rõ được đầu ra mong muốn, ta có thể thực hiện chèn trực tiếp các payload
Trang 2518
đó vào tập tin HTML để kích hoạt và thực hiện quá trình khai thác Để xem được các
tiện ích có thể lựa chọn cho việc khai thác, chúng ta có thể sử dụng lệnh msfpayload –h:
Shellcode được tạo ra bởi msfpayload với đầy đủ mọi chức năng, nhưng trong
đó có chứa một số byte null như \x00\x0a\x0d Và điều này sẽ tạo ra các mã kiểm tra trước khi thực thi chương trình hay phá vỡ cấu trúc payload Ngoài ra, shellcode sẽ
đi qua một mạng lưới mạng dưới dạng cleartext Như vậy đoạn mã thực thi này có thể bị phát hiện bởi hệ thống IDS hay các phần mềm chống virus Để giải quyết vấn
đề này, các nhà phát triển của Metasploit cung cấp msfencode, có thể giúp đoạn m
thực thi của chúng ta tránh được sự phát hiện của hệ thống IDS hay các phần mềm
diệt virus bằng cách mã hóa các đoạn mã đó Chúng ta có thể nhập lệnh msfencode –
h để xem một danh sách các tùy chọn của msfencode
Trang 2619
2.3 Cài đặt Metasploit
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 Metasploit được xây dựng từ ngôn ngữ hướng đối tượng Perl, với những components được viết bằng C, assembler, và Python.Metasploit có thể chạy trên hầu hết các hệ điều hành: Linux, Windows, MacOS
Hướng dẫn cài đặt chi tiết công cụ Metasploit trên môi trường Microsoft windows, khi dùng hệ điều hành linux ta nên dùng backtrack vì hệ điều hành này đã tích hợp rất nhiều công cụ quét, khai thác lỗ hổng bảo mật, trong đó có metasploit
Truy cập trang web http://www.metasploit.com/ để tải gói cài đặt của
Metasploit, có 2 phiên bản là Metasploit pro và Metasploit Community Phiên bản Metasploit Pro cho phép dùng thử 14 ngày, phiên bản Metasploit Community phục
vụ cho việc nghiên cứu và nó miễn phí Chức năng của phiên bản Metasploit Community bị giới hạn so với phiên bản pro
Trang 2720
Sau khi tải về thành công gói cài đặt Metasploit, ta tiến hành cài đặt bình thường như các phần mềm khác Kích đôi vào phần mềm chọn next để tiếp tục, tích vào ô I accept the agreement để đồng ý như hình sau, chọn next để tiếp tục quá trình cài đặt
Chọn thư mục để cài đặt phần mềm, có thể để mặc định, ở đây mình để mặc định và nhấn next
Trang 2821
Hộp thoại nhắc nhở chúng ta tắt chương trình diệt virut và tường lửa, các chương trình diệt virut sẽ hiểu công cụ Metasploit là virut, khi đã tắt hết tường lửa và chương trình diệt virut ta tiến hành kích next
Trang 2922 Thiết lập cổng cho metasploit service, mặc định là 3790, kích next
Chọn server name và ngày hết hạn của nó, để mặc định tiếp tục kích next
Trang 3023 Quá trình cài đặt của phần mềm
Nhấn finish để hoàn thành việc cài đặt phần mềm vào máy tính
Trang 3124
Sau khi kết thúc trình duyệt web mở lên và đi tới giao diện mở đầu khi mới vào chương trình như sau:
Kích vào địa chỉ https://localhost:3790/ Tiến hành nhập các thông tin để đăng
ký tài khoản metasploit Username và password này sẽ được sử dụng khi chúng ta đăng nhập vào metasploit
Sau khi nhập đầy đủ các thông tin ta kích vào create account để tạo tài khoản, trình duyệt chuyển đến trang yêu cầu nhập key để active chương trình, key này được gửi đến mail khi ta đăng ký tải phần mềm
Trang 3326
kiểm tra hết mà vẫn gặp lỗi, tiến hành cài thêm Microsoft Visual C++ 2008 Redistributable Package vào (máy tính của mình phải cài thêm Microsoft Visual C++ 2008)
2.4 Quét và khai thác lỗ hổng với Metasploit
2.4.1 Sử dụng giao diện web scan các host trong mạng Lan
Sử dụng trình duyệt truy cập vào https://localhost:3790/ Để truy cập được ta phải dùng username và password đã đăng ký
Tạo một project mới như sau:
Trang 3528 Quá trình scan đang được tiến hành
Sau khi scan xong để xem các host tìm được ta chọn vào Analysis → Hosts
Trang 36Sau khi scan xong chọn Export sang file Nessus để nhập vào Metasploit:
Trang 3730
Đã có file export từ Nessus, ta chuyển sang Metasploit để Import vào.Tạo projetc mới, sau đó chọn chức năng Import:
Trang 3831
Chọn file vừa export từ Nesssus, nhấn Import Data
Khi nhập data xong sẽ thấy các host xuất hiện trong thẻ Hosts của Metasploit:
Chuyển sang thẻ Vulnerabilities để xem các lỗ hổng mà Nessus đã scan được
Ở đây, trên Windows server 2003, đã scan được rất nhiều lỗi bảo mật nghiêm trọng