Quét Lỗ hổng Bảo mật
Tài liệu này cung cấp một cái nhìn tổng quan toàn diện về quét lỗ hổng bảo mật, nhấn mạnh sự kết hợp giữa các phương pháp tự động và thủ công, các cân nhắc chính và tập trung vào hai công cụ cụ thể: Nessus và Nmap.
Bài Giảng Theo Sách PreOSCP – Và Khóa Học Online Hacking Với Kali Linux 2025
1. Tổng quan và Các cân nhắc về Quét lỗ hổng bảo mật
Quét lỗ hổng bảo mật là một phần thiết yếu của bất kỳ đánh giá bảo mật nào. Mặc dù các tác vụ thủ công, chuyên biệt là quan trọng, “các máy quét lỗ hổng bảo mật tự động vẫn vô giá khi được sử dụng trong ngữ cảnh thích hợp.”
1.1 Cách hoạt động của Máy quét lỗ hổng bảo mật
Hầu hết các máy quét tự động tuân theo một quy trình làm việc tiêu chuẩn:
- Phát hiện mục tiêu: Xác định xem mục tiêu có đang hoạt động hay không.
- Quét cổng: Tiến hành quét cổng toàn bộ hoặc một phần.
- Nhận dạng Hệ điều hành (OS): Sử dụng các kỹ thuật lấy dấu vân tay để xác định OS.
- Nhận dạng dịch vụ: Cố gắng xác định các dịch vụ đang chạy thông qua lấy biểu ngữ, nhận dạng hành vi dịch vụ hoặc khám phá tệp.
- Đối sánh chữ ký: “Thực hiện quy trình đối sánh chữ ký để phát hiện ra các lỗ hổng.” Điều này dựa vào cơ sở dữ liệu các chữ ký lỗ hổng bảo mật duy nhất.
Kỹ thuật lấy biểu ngữ (banner grabbing) là một phần của quá trình đối sánh chữ ký, trong đó “các chuỗi văn bản được tạo ra trong quá trình tương tác ban đầu với một ứng dụng được thu thập và phân tích” để xác định phiên bản ứng dụng và phát hiện lỗ hổng.
Những lưu ý quan trọng:
- Một số máy quét có thể được cấu hình để khai thác lỗ hổng khi phát hiện, điều này có thể “làm giảm khả năng dương tính giả nhưng cũng làm tăng nguy cơ làm hỏng dịch vụ.”
- Ngay cả một sự khớp chữ ký mạnh cũng không đảm bảo sự hiện diện của lỗ hổng. Máy quét tự động có thể tạo ra “khá nhiều dương tính giả và ngược lại, âm tính giả,” đặc biệt là do hiện tượng backporting. Do đó, cần “kiểm tra cẩn thận và xem xét thủ công các kết quả quét lỗ hổng bảo mật bất cứ khi nào có thể.”
- Để tối đa hóa hiệu quả, điều quan trọng là “cập nhật cơ sở dữ liệu chữ ký trước mỗi lần tham gia.”
1.2 Quét thủ công so với Quét tự động
Việc kết hợp cả hai kỹ thuật là lý tưởng.
- Quét thủ công:Nhược điểm: Tốn kém tài nguyên và thời gian, dễ xảy ra lỗi, đặc biệt đối với các mạng lớn.
- Ưu điểm: Cần thiết cho các tình huống “red-teaming” đòi hỏi độ chính xác phẫu thuật và dấu vết mạng tối thiểu. Cho phép phát hiện “các lỗ hổng logic và phức tạp mà khá khó phát hiện bằng cách sử dụng bất kỳ loại máy quét tự động nào.”
- Quét tự động:Ưu điểm: “Vô giá khi làm việc trên các cam kết lớn với các giới hạn thời gian điển hình.” Giúp thiết lập một đường cơ sở nhanh chóng để xác nhận các lỗ hổng dễ phát hiện hoặc hiểu tình hình bảo mật chung.
- Nhược điểm: Cấu hình có thể rộng và phức tạp; “các giá trị mặc định có thể gây hại cho mục tiêu,” ví dụ, việc cố gắng ép buộc mật khẩu yếu có thể dẫn đến khóa tài khoản và thời gian chết.
- “Công việc của chúng tôi với tư cách là người kiểm tra khả năng thâm nhập là cung cấp giá trị cao hơn và xa hơn đầu ra của bất kỳ công cụ nào.”
1.3 Quét Internet so với Quét Nội bộ
Vị trí mạng của máy quét liên quan đến mục tiêu ảnh hưởng đến kết quả quét:
- Tốc độ kết nối: Tốc độ cao hơn đối với các máy chủ được kết nối cục bộ cho phép quét toàn diện và xâm nhập nhanh hơn. Cần điều chỉnh tốc độ quét và giá trị thời gian chờ.
- Quyền truy cập và nhiễu giao thông: Tường lửa hoặc Hệ thống ngăn chặn xâm nhập (IPS) có thể chặn quyền truy cập hoặc giảm lưu lượng, che giấu các lỗ hổng.
- Khả năng hiển thị mục tiêu: Các mục tiêu kết nối Internet có thể chặn các yêu cầu ICMP (ping) hoặc không nhận lưu lượng ARP từ các mạng con bên ngoài, khiến máy quét bỏ lỡ các mục tiêu.
1.4 Quét được xác thực so với Không xác thực
Hầu hết các máy quét có thể được cấu hình để chạy quét đã xác thực:
- Quét được xác thực: Máy quét đăng nhập vào mục tiêu bằng thông tin xác thực hợp lệ (thường là tài khoản người dùng đặc quyền).
- Linux: Bật dịch vụ SSH và cấu hình máy quét với thông tin đăng nhập hợp lệ. Máy quét sẽ xem xét các phiên bản gói và cấu hình.
- Windows: Yêu cầu WMI và thông tin xác thực cho miền hoặc tài khoản cục bộ có quyền quản lý từ xa. Máy quét sẽ phân tích cấu hình hệ thống, cài đặt sổ đăng ký, cấp bản vá ứng dụng/hệ thống và các tệp có khả năng bị tấn công.
- Ưu điểm: “Tạo ra vô số thông tin bổ sung và tạo ra kết quả chính xác hơn.” Giảm dương tính giả.
- Nhược điểm: “Với chi phí là thời gian quét lâu hơn.” Thường được sử dụng trong quản lý bản vá, nhưng cũng có thể được sử dụng trong kiểm tra thâm nhập với sự cho phép rõ ràng do nguy cơ gián đoạn cao.
2. Quét lỗ hổng bảo mật với Nessus
Nessus là một trình quét lỗ hổng phổ biến, hỗ trợ hơn 130.000 plugin. Ban đầu là mã nguồn mở, sau đó đã trở thành mã nguồn đóng, dẫn đến sự ra đời của OpenVAS. Phiên bản “Essentials” miễn phí cho phép quét tối đa 16 IP.
2.1 Cài đặt Nessus
- Yêu cầu kết nối internet để kích hoạt và tải xuống plugin.
- Yêu cầu tài nguyên hệ thống đáng kể (ví dụ: ít nhất 2 lõi CPU và 8GB RAM).
- Quy trình cài đặt bao gồm: cập nhật Kali, tải xuống tệp .deb từ trang web Tenable, xác thực tổng kiểm tra SHA256, cài đặt gói, khởi động dịch vụ nessusd, truy cập giao diện web (https://localhost:8834), chấp nhận chứng chỉ tự ký, chọn “Nessus Essentials”, yêu cầu và nhập mã kích hoạt, tạo tài khoản người dùng cục bộ, và chờ Nessus tải xuống và biên dịch tất cả các plugin.
2.2 Xác định mục tiêu và Cấu hình quét
- Để bắt đầu quét, nhấp vào “New Scan”.
- Nessus hỗ trợ nhiều loại quét, bao gồm “Basic Network Scan”, “Credentialed Patch Audit”, “Web Application Tests” và “Spectre and Meltdown”.
- Basic Network Scan: Yêu cầu tên và danh sách các mục tiêu (địa chỉ IP, dải IP, hoặc danh sách IP/FQDN được phân tách bằng dấu phẩy).
- Cấu hình quét: Cần xem xét môi trường, giới hạn thời gian và mục tiêu. Các cân nhắc bao gồm: mục tiêu nằm trên mạng nội bộ hay công khai, liệu máy quét có nên ép buộc thông tin đăng nhập, quét tất cả các cổng TCP/UDP hay chỉ các cổng chung, và loại kiểm tra nào nên chạy.
- Thay đổi cấu hình cổng: Để quét tất cả các cổng, thay đổi “Scan Type” từ “Port scan (common ports)” thành “Custom”, sau đó trong “Port Scanning”, đặt phạm vi cổng thành “0-65535”.
- “Trong quá trình tham gia, chúng tôi phải cân nhắc tính ổn định của mạng mục tiêu, phạm vi mục tiêu, thời lượng của tương tác và nhiều yếu tố khác khi định cấu hình các tùy chọn quét cổng của chúng tôi.”
2.3 Quét không xác thực với Nessus
- Sau khi cấu hình, nhấp vào “Launch” để chạy quét.
- Trạng thái quét sẽ thay đổi từ “Running” sang “Completed”.
- Kết quả hiển thị danh sách các máy chủ được phát hiện và các lỗ hổng tiềm ẩn.
- Có thể lọc lỗ hổng theo mức độ nghiêm trọng, khả năng khai thác, CVE, v.v. Để xem các lỗ hổng có khả năng dẫn đến thỏa hiệp mục tiêu cao nhất, lọc theo “Exploit Available” = “true”.
- Kết quả có thể được nhóm hoặc hiển thị trên một trang duy nhất, sắp xếp theo mức độ nghiêm trọng. “Tất nhiên, một số mục nhập có thể thể hiện dương tính giả, đó là lý do tại sao việc xem xét dữ liệu quét và kiểm tra kết quả quét theo cách thủ công là rất quan trọng.”
2.4 Quét được xác thực với Nessus
- Để có thông tin chi tiết hơn và giảm dương tính giả, hãy thực hiện quét đã xác thực.
- Sử dụng mẫu “Credentialed Patch Audit” được cấu hình sẵn để thực hiện kiểm tra bảo mật cục bộ.
- Thiết lập thông tin đăng nhập SSH (ví dụ: tên người dùng “root”, mật khẩu).
- Kết quả quét được xác thực hiển thị các lỗ hổng kèm theo số bản vá và có khả năng hiển thị các ứng dụng dễ bị tấn công không được tiếp xúc từ xa (ví dụ: Firefox).
2.5 Quét với các Plugin Nessus riêng lẻ
- Có thể tinh chỉnh Nessus để chạy một plugin duy nhất để xác thực phát hiện hoặc nhanh chóng tìm kiếm các lỗ hổng cụ thể.
- Sử dụng mẫu “Advanced Scan” cho phép lựa chọn các plugin riêng lẻ.
- Để tiết kiệm thời gian và quét yên tĩnh hơn, có thể tắt “Host Discovery” (ví dụ: bỏ chọn “Ping the remote host”).
- Có thể thu hẹp phạm vi quét cổng nếu biết dịch vụ chạy trên cổng nào (ví dụ: chỉ quét cổng 111 cho dịch vụ RPC).
- Chọn plugin bằng cách vào tab “Plugins”, “Disable All”, sau đó kích hoạt plugin mong muốn (ví dụ: “NFS Exported Share Information Disclosure” trong danh mục “RPC”).
- “Mặc dù chúng tôi đã định cấu hình máy quét để chỉ quét cổng 111, việc chạy chụp gói trong quá trình quét sẽ cho thấy rằng vẫn còn lưu lượng truy cập đến các cổng khác.” Điều này là do máy quét chạy các dịch vụ và plugin bổ sung. “Không có cách nào đơn giản để kiểm soát hoàn toàn tất cả lưu lượng do máy quét tự động tạo ra. Mức độ kiểm soát này chỉ đến thông qua các nỗ lực thủ công.”
3. Quét lỗ hổng bảo mật với Nmap
Nmap Scripting Engine (NSE) có thể được sử dụng để thực hiện quét lỗ hổng bảo mật tự động thông qua thư viện tập lệnh. Các tập lệnh NSE được viết bằng Lua và có thể được sử dụng cho nhiều chức năng, từ phát hiện và khai thác lỗ hổng đến bạo lực và xác thực.
- Danh mục tập lệnh: Tập trung vào các tập lệnh trong danh mục “vuln” (phát hiện lỗ hổng) và “exploit” (cố gắng khai thác).
- Phân loại bổ sung: Tập lệnh cũng được phân loại là “safe” hoặc “intrusive”. “chúng ta nên hết sức thận trọng khi thực hiện các tập lệnh sau vì chúng có thể làm hỏng một dịch vụ từ xa hoặc hạ gục mục tiêu.”
- Luôn thận trọng: “Không bao giờ chạy tập lệnh NSE một cách mù quáng. Dành thời gian kiểm tra chúng để hiểu những gì chúng làm trước khi chạy chúng và kiểm tra các mục tiêu của riêng bạn bất cứ khi nào có thể.”
- Vị trí tập lệnh: Các tập lệnh NSE nằm trong /usr/share/nmap/scripts/. Tệp script.db đóng vai trò là chỉ mục và phân loại các tập lệnh.
- Ví dụ sử dụng: Chạy sudo nmap –script vuln 10.11.1.10 sẽ thực thi tất cả các tập lệnh trong danh mục “vuln” chống lại mục tiêu. Ví dụ trong tài liệu cho thấy tập lệnh http-vuln-cve2010-2861.nse đã phát hiện thành công lỗ hổng Adobe ColdFusion.
- Vai trò của Nmap: “Mặc dù Nmap không phải là một trình quét lỗ hổng theo nghĩa truyền thống, nhưng nó có thể rất hữu ích cho các tác vụ tương tự.” Nó có thể được sử dụng để xác minh kết quả quét lỗ hổng bảo mật, làm bản sao lưu cho các máy quét chuyên dụng và giúp giảm dương tính giả.
- Cảnh báo tương tự: Nmap cũng yêu cầu sự thận trọng tương tự như các máy quét lỗ hổng truyền thống, bao gồm hiểu rõ chức năng, lượng lưu lượng và rủi ro tiềm ẩn của mỗi tập lệnh.
4. Kết luận
“Quét lỗ hổng có thể rất hữu ích trong giai đoạn đầu của thử nghiệm thâm nhập.” Khi được cấu hình đúng cách, các công cụ quét có thể cung cấp nhiều thông tin và tiết lộ các lỗ hổng nghiêm trọng. Tuy nhiên, điều quan trọng là phải nhớ rằng “việc xem xét thủ công vẫn được yêu cầu và các máy quét chỉ có thể phát hiện ra các lỗ hổng bảo mật mà chúng được lập trình.” Cuối cùng, “chúng ta nên luôn nhớ rằng các công cụ quét lỗ hổng bảo mật có thể thực hiện các hành động có thể gây bất lợi cho một số mạng hoặc mục tiêu, vì vậy chúng ta phải thận trọng khi sử dụng chúng.”




Bình luận về bài viết này